"A Personal Computer for Children of All Ages" Alan Kay 1972
パーソナルコンピュータの歴史は、タブレットの構想とともに始まりました。
UIデザインの方針です。
Macintosh
Windows
Excel
Lotus1-2-3
Microsoftは追いかける競合製品がある時、しっかり研究して成果を出して来ることが多いです。
Internet
Explorer
Netscape
Navigator
?
今回も研究し、切り札を用意してきました。
http://www.flickr.com/photos/69628725@N00/4310564864/
iPad
XBox
PlayStation
SkyDrive.com
SkyDriveのWebアプリ版
WebページをModern UIにする
オープンソースのCSS
Zune
Modern UIのもととなった
Microsoft製デスクトップアプリ
パーソナルコンピューターというものを提案した最初の論文です。
ビル・ゲイツも
スティーブ・ジョブズも
間違いなく熟読していると思います。
GitHub for Windows
2010年
Windows Phone 7
オープンソースで有名なGitHubの公式クライアントツール
Windows
Phone 7
すでに
タブレットPCの歴史
Modern UI
(Metro)採用
Windows CEベース
1991年
2010年
Windows for
Pen Computing
AndroidをModern UIにする
iPad
GitHub for Windows
ビル・ゲイツ悲願のタブレットPCは、Appleが販売するまで普及しませんでした。
http://www.flickr.com/photos/69628725@N00/4310564864/
2002年
Windows XP Tablet PC Edition
あくまでUIデザインの方針なので、MicrosoftのWindows8という枠にとどまらず、デスクトップやWeb、Androidまで、様々な環境で、またオープンソースなどでも利用されています。
Silverlightを採用し、先進的な開発環境
まあそうかもしれませんが、Microsoftもまだあきらめるには早い。
タブレットPC
もともとは
MetroスタイルUIと言われていました。
Apple
タブレットのみならず、デスクトップPC+マウスでもちゃんと使いやすいです。
これまでのパソコンと同じUIですますなんて我慢できない。
これまでのパソコンと同じプログラム、同じ操作性。
失敗
大成功
Windows Phone 8
Windows8ベース
Windows Phone 7のアプリはすべて使えます。
新しいアプリはWindows8用の開発環境で
昔から重い処理を行うとUIが固まるのは普通でしたが、よく固まるアプリケーションは、あまり使いやすいものではありません。
WinRTは全く新しく再設計されましたが、元の.NETの発展形もちゃんと作られています。
非同期の重要性
ModernUIでは
とはいえ今まで難しかったから非同期は避けられてきたわけで、絶対やれとただ言われても困りますよね。
WinRT
50ms以上画面を固めるのは禁止です。
ARM対応のWindows8です。
iOS
Android
Windows APIは動きません。
非同期
Mac OS X
使いやすい
UI
Windows8で、OSのAPIは一新されました。
高い
生産性
.NET Framework2.0
.NET Framework1.1
EAP
.NET Framework4.0
APM
Task
新しい構文では非同期処理を普通の同期処理と同じようにかけるため、普通にプログラムを書くことができ、バグも少なくできます。
.NETの歴史
WinRT
WindowsAPI
.NET Framework4.5
async/await
WinRTでは、非同期をわかりやすく書くために、構文の追加まで行われています。
.NET Framework 4.5
現代的なAPI
です。
新APIはWindows8に間に合いました。
そのほかにも全体的に粒度の高い使いやすいAPIになっており、そのためModern UIなど高機能な機能も実装が実現可能となっています。
現在のところはWinRTより機能が多く、機能追加もちゃんとされているため、デスクトップアプリ用にはまだつかわれ続けるでしょう。
WinRTアプリは、Windows Storeでしか配布できません。ですから、WinRTアプリは必ず、審査を通っているということです。ユーザーとしては安心できることでしょう。
Windows Store
Windows APIも基本的には消えたわけではないので、デスクトップアプリなら選択肢に含まれます。
古いWinAPIも使えますが、同一アプリケーション内では片方しか使えません。
動的な画面の書き換え
Ajax
入力チェック
HTML
JavaScript
Microsoftのアプリ販売サイトです。
Webページ
非同期通信
動くページ
Web技術
今の時代、Web技術者はクライアントアプリの製作技術は身に着けてしまっています。
凝った動的画面
高度なレイアウト
ファイルAPI
jQuery
HTML5
アニメーション
Windows API
ローカルストレージ
マルチプロセス
Visual Studio
また、ここで公開しているアプリはすべて審査後のものであるため、安心です。
JavaScript
Microsoftは開発者を含むエコシステムを重視しており、サードパーティーを含めて効率的にアプリケーション開発ができる仕組みを整えています。
HTML5+JavaScriptは、Windowsのネイティブ言語の一つです。
WinRTの時代には、Web技術者は慣れた技術を使ってWindowsネイティブアプリを作れます。
開発エコシステム
ここで公開したアプリは、Microsoftに料金の30%を取られますが、その代わり販売サイトとか小売店は必要ありません。
現在
誕生
1985年
技術者の大幅増加が見込めます。
2012年
Windows1.0
これまでの歴史
APIの保守はいよいよ限界で、背水の陣です。
WinRTでは、3種類の言語がネイティブに使えます。
Team Foundation Server
Expression Blend
もうすぐ30歳。保守はもう無理、という状態だそうです。
Appleと比較して、審査の結果は丁寧に教えてくれるということです。
Longhorn発表時にWindowsAPIを置き換える.NETベースの新APIとして発表されました。
2003年
WinRTは改良したCOMであり、仮想関数程度のオーバーヘッドC++から利用することができます。
COM
完全に中間言語ベースのAPIは時期尚早だったのか、徐々に発言がトーンダウンしAPI置き換えの話はなかったことになりました。
WinRTのクラス構成は。NETを基にしており、ほぼSilverlightとおなじです。
.NETのような中間言語を利用するわけではないので、C++からもパフォーマンスを心配することなく呼び出すことができます。
WinFX
Silverlight開発者に朗報です。あなたはすでに、Windows8開発者です。
そして、WinRTのクラスは、.NETからは.NETクラスと同じように呼び出せます。
その残りが、.NET Framework 3.0です。WPFやWCFが含まれます。残ったものだけでも結構なものですが、置き換えには失敗しました。
C++
.NET
C++を拡張した、C++/CXという言語を利用すると、WinRTオブジェクトが簡単に扱えます。
Microsoft独自拡張を使いたくないなら、テンプレートライブラリを使うこともできます。
C++/CX
.NETと同じ設計のクラスを、.NET.NETと同じように呼び出せるのですから、それはもう.NETのクラスと同じです。
それだけ同じならノウハウもほぼ同じなので、これまで通りに開発ができます。