2013/1/21に行ってきた第35回HTML5とか勉強会-「Web+OS最前線!」-に参加してきました。そのメモ書きです。
- いろいろなところで話題に出ている、NTTソフトウェアさんの縦書きテキストレイアウトの公募。
- WebKitの縦書き周りのバグのFIXとテストスイートの作成を公募している。
- 公募締め切りは2/28で、応募があったものから順次クローズ。最終の報告書の締め切りが3/15。
- W3CのMLにも流れてきたので、割と切羽詰まっている感が。興味のある方は是非。
- Tizenの概要(今村さん @himamura)
- Tizenの成り立ちとしてMeeGoとLiMoが上げられるが、MeeGoとLiMoがTizenへ合流した……という簡単な話ではない。
- Tizenは2つの派閥がある。つまり、MeeGoの1.2からTizen IVI(車載向けTizen)へ向かった流れと、SLP(Samsung Linux Platform)からTizen Mobileという流れの2つ。
- SamsungとIntelがそれぞれTizenのロードマップを公開しているが、これらは別の内容。例えばIntelのロードマップ(Tizen IVI側)は「Tizen 2.0」が出てこない。現在「Tizen 2.0」と呼ばれているのはTizen Mobileの方のバージョンで、最新はSamsungが出している2.0α。このことからも、Tizen IVIとTizen Mobileは分けて考えるべき。
- Tizenの前世は忘れて今後を見てほしい。
- 今村さん個人的にはTizen Mobileの国内での普及はなさそう。Blackberry程度になるのでは。
- 但し国内でなく海外市場を見た時には可能性がある。HTML5アプリを作る暁には海外を視野に、というよりむしろ最初から海外市場を視野に入れてHTML5アプリを作るべき。
- Tizen IVIの普及はあるかもしれない。名古屋地区でかなり動きがある。
- Tizen APIの概要(高橋さん @TNaruto)
- 資料はこちら→「HTML5とか勉強会で Tizen API について発表しました。」。細かいAPIについてはメモしていないので、こちらの資料を直接参照のこと。
- TizenのApp Typesは3種類、Tizen Web AppとTizen Native App、そしてTizen Hybrid App。
- Tizen Web AppはHTML5+JavaScript+CSS3で作る。Web APIは、標準のHTML5とTizenデバイスAPIから成る。デバイスに依存するAPIはTizen固有。
- Tizen Native AppはC/C++で作る。AndroidでいうNDK的な位置付け。
- Tizen Hybrid Appは、Web AppとNative Appの両方の言語を併用する。一例として、バックエンドの処理をC/C++で、フロンドエンドをWeb周りの言語で作るイメージ。
- Tizen Native Appのドキュメントはいまだにtizen.orgに存在しない。現時点で事実上作ることができるのはTizen Web Appのみ。
- 開発環境はEclipseベースのTizen SDK。WinXP/7の32bit版、Win7の64bit版、Ubuntuの32/64bit版。Mac OS向けは未提供。
- Tizen SDKの機能は、HTML5コーディングのサポート、wgtパッケージ(Tizen Web Package:Androidのapkみたいなの)のビルドとデバイスへの転送、デバッグ、そしてTizen Devie EmulatorとTizen Device Simulator。
- wgtパッケージは、W3CのPackaged Web Apps (Widgets)に準拠している。wgtは、ファイルをzipで固めて拡張子をwgtに変えただけ。Appのアイコン(<icon>)、アクセス許可URL(<access>)、アクセスを許可するTizen Device API(<feature>)といった情報をXML Configurationに埋め込む。
- Tizen Device EmulatorはQEMUにTizenを嵌めたイメージ。メリットはTizenデバイスとTizenプラットフォームを完全にエミュレートできること、つまりデバイスの全機能にアクセスできること。デメリットは、エミュレータなのですごく遅いこと。
- Tizen Web Simulatorは、Chrome上で動くSimulator。フルのHTML5コードで作成されている。SMSを投げたりCallイベントを発生させたり、大抵のことをシミュレートできる。メリットは動作が早いことで、デメリットはTizen Bluetooth APIがサポートされていないこと。(他にはない??)
- 開発中はSimulatorを使い、最後の動作確認でEmulatorを用いるのが効率がよい。
- AndroidやiOSはWebアプリのサポートが不十分。また、Webアプリからデバイスをどこまで触れるようにできるのかという疑問がある。Tizenはデバイスアクセス用のAPIを用意しているし、一方でNativeのアプリも作ることができる。
- (補足:Webアプリからデバイスのクリティカルな機能、例えば電源等のハード周りや連絡先等の個人データ周りにアクセスできてしまうと、その辺のWebに置いてある悪意あるWebアプリが悪いことをできてしまうので危険。ユーザが権限の承認を行える形式でないといけないし、PCのブラウザもモバイルOSのブラウザも、「Packaged Apps」=「ユーザの承認を経て初めて使えるようになるアプリ」でないとそうしたAPI使えない)
- サプライズゲスト
- KDDIの田中社長降臨。直接お目にかかったのは初めて。
- Firefox OSについて(浅井さん @dynamitter)
- 資料はこの辺→ http://www.slideshare.net/dynamis/firefox-os-html5j
- http://FxOS.org →Googleグループ「Firefox OS (Boot to Gecko)」への短縮URL。
- Firefox(OSじゃないほう)は30億回以上のダウンロード。メモリ消費が昔に比べて1/4に減るなど、改善を重ねている。
- Android版のブラウザを企画してみるとわかるが、Chromeはプロセス毎に30MB〜40MB使うのが当たり前。Firefoxのほうは一度マルチプロセスで開発したが、メモリを食いすぎると言うことでメモリを食わないように最適化した。Android版Firefoxのメモリ要件は512MBまで下がっており、384MB、更に256MB(これは厳しい数字)まで下げるのを狙っている。
- HTML5的な観点で考える。HTML5の目的は、いわゆる「アプリ」をすべてをWeb技術で実現するため、またブラウザに依存しない互換性を確保するため=標準化。どのブラウザでも単一のソースでアプリが動く。
- ……というのは昔からあるWebの世界の理想。
- モバイルは、いくつかのプラットフォーム(OS)の寡占状態にある。また機能も速度もWebアプリよりネイティブアプリのほうが上であり、Webは「WebView」の形で中に取り込まれている。その一方で、アプリのエコシステム、つまり専用のストアや課金システムまでプラットフォームの縛りが入っている。
- 同一の機能なのに、寡占状態にあるそれぞれのプラットフォーム毎にアプリを作らなければならない。
- 独占プラットフォームの問題は、例えばアプリがプラットフォーム依存になること。古くは、ActiveXのサイトがある時から使えなくなったりとか。(マークアップレベルでの)HTMLは、昔作られたページも今なお閲覧することができる。これがつまり囲われていないということ。
- HTML5への期待。Webが共通プラットフォームであり、多少互換性の違いがあってもちょっと弄るだけで吸収できる。(←少し気になる言い回し)
- Firefox OSは、Webさえ見ることができれば行ける世界。マーケットも課金システムもオープンである。
- Webで可能になったのは、例えばマルチメディア、アプリケーション、高度な通信制御。逆に未だにできないのは、システムステータス(Wi-Fiとかモバイル通信)、各種センサ、低レベルのハードウェア制御(USBとか)。
- 昔のWebに比べてAPIも増えて、できること・覚えることが増えている、一人で全部の仕様を追うのが難しい。このことに不安を感じるかも知れないが、Win32APIだってすべてを知らなくても開発できた。同じこと。
- mozillaが作るWeb APIは、mozilla独自のAPIとして終わらせるのでなくWHATWGで議論、またW3Cで標準化していく。
- Firefox OSは、既存のOSから「OSとして」大きく変わったものはない(補足:Firefox OSのベースはAndroidのICSらしい)。但し、あらゆるアプリケーション、ステータスバーやマーケットプレイスや電話やSMSも含めてすべてをWeb技術で実現する。
- Firefox OSはWeb技術が「ネイティブ」。HTML5、JavaScript、Web API……。これらをJavaにも匹敵する処理速度に持っていこうとしている。GoogleやAppleもエンジンをどんどん開発して、オープンなところは取り込んで互いに加速している。
- OSとしてはVMのような中間レイヤがなくGeckoプラットフォームのみ。デバイスの上にシンプルなカーネルを載せて、その上でWeb Engine/Standard Device APIsが処理を最適化しながらガシガシ動く。
- Firefox OSではWebアプリケーションをインストールする。ブラウザで開くとすぐ使えるのがWebアプリ。マーケットでアプリをインストールするというのは、昔のYahooのディレクトリのような構成。かなり貧弱で、昔に比べて退化している。(あれ、これ既存OSとFirefox OSのどっちの話だ?)
- 今のモバイルOSでは権限を全てのんでインストールを許可するか、インストールしないかの2択。Firefox OSではいくつかの権限はインストール時に確認するが、プライバシーに関するものは都度ユーザへ確認する仕組み。
- Firefoxのエコシステム。ネイティブに匹敵する速度とスリムなHTML実行環境。
- Webは開発者が圧倒的に多い。iOSの10万人、Androidの45万に対してHTML(5)は800万人。
- 開発パートナーと製品化。Telefonicaが最初に製品化する。最初はブラジルで発売予定。Qualcommのローエンドチップを搭載しており、ハードウェア要件は高くない。
- スマホOSのWeb度は低い。iOSのWebViewは速度が1/3に絞られる制限があり、Mobile SafariでWebアプリを動かすのに比べて性能制限がきつい。Androidは制限はないが、アプリ内にWebViewを埋め込んでハイブリッドでやっていくという方向。Tizen、UbuntuはHTML5でも一応アプリ開発可能。
- Firefox OSはHTML5に最適化されたOSを志向している。両対応してしまうと重くなったり最大のパフォーマンスを発揮できなくなるという考え。
- Firefox OSには「Nativeアプリ」というものが存在しない。繰り返しになるが、Firefox OSではWeb技術がネイティブ。
- マーケットプレイスはモバイルでもPCでも動く。Firefox(PCブラウザの)からもインストールできるし、例えばMacでマーケットプレイスからアプリをインストールするとアプリケーションフォルダに登録される。こうなると、アプリがWebベースで作られているかどうかをユーザが意識することがなくなる。
- Firefox OSにも、PCにも、Androidにも、同じようにインストールすることができる。すべてWeb技術で作るので複数のプラットフォームで使える。マーケットプレイスや課金も。
- Firefoxのエンジンが入っているAndroid端末なら、インストールしたアプリをWebViewでなくFirefoxのエンジン上で動かすことができる。従って、WebViewで未サポートで最新のAndroid版FirefoxがサポートしているAPIもアプリから使うことができる。
- Firefox OSのアプリ開発=Webアプリの開発。IDEやエディタに縛りはないし、ライブラリもjQuery Mobileを使おうが何を使おうが自由である。
- 「Firefox OS Simulator」というFirefox用のアドオンがあり、PCでFirefox OSのシミュレータを動かすことができる。https://addons.mozilla.org/ja/firefox/addon/firefox-os-simulator/
- GAIA Building Block。Firefox OSのアプリ用のUIデザインテンプレ。Firefox OS専用というわけではないので、他の用途に適用してもいい。(補足:GaiaはFirefox OSのアプリのUI部分。(広義の)HTML5ベース)
- Firefox OSについてまとめたドキュメント。https://github.com/dynamis/firefoxos/wiki
- 既存のハードウェアにFirefox OSを焼けるか? 現行のサポートから外れているもの、パッチを集めないといけないものがあるが、動くハードはある。Galaxy NexusとかNexus7とかも。ビルドに関する要件はこの辺→ https://developer.mozilla.org/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites
所感は別エントリにて。
コメントを残す