40
TypeScript+AngularJS作るFirefox OSアプリ @vvakame 関東Firefox OS勉強会 2nd goo.gl/j0PJo

Firefox OS勉強会 2nd TypeScript+AngularJS

Embed Size (px)

DESCRIPTION

Firefox OS勉強会 2nd http://atnd.org/events/40742 の発表資料。 TypeScriptとAngularJSを使ってFirefox OSアプリを作成する。

Citation preview

Page 1: Firefox OS勉強会 2nd TypeScript+AngularJS

TypeScript+AngularJSで作るFirefox OSアプリ

@vvakame関東Firefox OS勉強会 2nd

goo.gl/j0PJo

Page 2: Firefox OS勉強会 2nd TypeScript+AngularJS

TypeScript+AngularJSで作るFirefox OSアプリおっ俺の思ってたFirefox OSと違う!

前段階で時間かかりすぎた…

Page 3: Firefox OS勉強会 2nd TypeScript+AngularJS

わかめ まさひろGAE

Android

TypeScript

AngularJS

@v vakame

Page 4: Firefox OS勉強会 2nd TypeScript+AngularJS

俺「独自FWなんでしょ?」

Page 5: Firefox OS勉強会 2nd TypeScript+AngularJS

そんなことはなかった

ていうか完全にタダのWebアプリだった

Page 6: Firefox OS勉強会 2nd TypeScript+AngularJS

俺「専用マークアップなんでしょ?」

Page 7: Firefox OS勉強会 2nd TypeScript+AngularJS

そんなことはなかった

Building Blockは使った方がよさげ

Page 8: Firefox OS勉強会 2nd TypeScript+AngularJS

俺「ドキュメントないんでしょ?」

Page 9: Firefox OS勉強会 2nd TypeScript+AngularJS

日本語まである

しかしHyperLinkが残念で辿り着きたいものに全然たどり着けない(無いわけではない)

Page 10: Firefox OS勉強会 2nd TypeScript+AngularJS

俺「開発大変だったりしない?」

Page 11: Firefox OS勉強会 2nd TypeScript+AngularJS

シミュレータが高速!Chromeでもできる!

ひどい!><;

Page 12: Firefox OS勉強会 2nd TypeScript+AngularJS

俺「端末出まわってない」

Page 13: Firefox OS勉強会 2nd TypeScript+AngularJS

Firefoxアプリになるよ

Remote Install欲しい

Page 14: Firefox OS勉強会 2nd TypeScript+AngularJS

Firefox OS(KEON)

Android(GalaxyNexus)

Android(Nexus7)

Mac OS X(PC)

Page 15: Firefox OS勉強会 2nd TypeScript+AngularJS

俺「既存Webアプリ移植は大変?」

Page 16: Firefox OS勉強会 2nd TypeScript+AngularJS

とりあえずそのままでよくね?

manifestすこし書くJavaScriptすこし書く

ちょっと対応を入れたほうが良くはなるぽい

Page 17: Firefox OS勉強会 2nd TypeScript+AngularJS

俺「Firefox OSってめちゃ簡単!?」

Page 18: Firefox OS勉強会 2nd TypeScript+AngularJS

そんなことはないorz

この辛み for you

Page 19: Firefox OS勉強会 2nd TypeScript+AngularJS

謎ぽよい• アプリインストールボタン出したい

• インストール済なら当然出さない

• navigator.mozApps.checkInstalled(url) 

• navigator.mozApps.getSelf() 

• 両方挙動が安定しない…やりたいことは単純なはずなんだけどなぁ

Page 20: Firefox OS勉強会 2nd TypeScript+AngularJS

未インストールブラウザ内

インストール済ブラウザ内

インストール済アプリ内

期待通りの動作をしない→×

期待通りの動作しなさすぎでしょ!もっと素直に動いてください頼む!

○ getSelf× checkInstalled

○ getSelf○ checkInstalled

× getSelf× checkInstalled

Desktop版はまた別の結果に…

Page 21: Firefox OS勉強会 2nd TypeScript+AngularJS

襲い来る謎のエラー

アプリを起動しようとすると死ぬ

Page 22: Firefox OS勉強会 2nd TypeScript+AngularJS

開発サーバのせい!

• python -m SimpleHTTPServer 8989

• →こいつが犯人だ!!!!

• npm install http-server &&./node_modules/http-server/bin/http-server

• →こいつは大丈夫…気がつくのに6時間くらいかかった

Page 23: Firefox OS勉強会 2nd TypeScript+AngularJS

pushStateェ…

誰か解決策知りませんか

• appcacheと相性が悪い…

• サーバの補助がないと404になりやすい

• /book/2001 にアクセス→offline…

• もちろん 404 そして復帰できない

• アプリとしてはめちゃ辛い

• hashbang復権の時!?

Page 24: Firefox OS勉強会 2nd TypeScript+AngularJS

戻る方法ないお…

標準Webとの互換性…

• ブラウザだとBackは必ずある

• Firefox OSとかFirefoxアプリはない

• 辛い…(´・!・`)

• Androidのようにハードキー欲しい…

• アプリがサポートしてない場合killって立ち上げ直し… わかるかっヽ(`"´)ノ

Page 25: Firefox OS勉強会 2nd TypeScript+AngularJS

TypeScript+AngularJSで作るFirefox OSアプリ

@vvakame関東Firefox OS勉強会 2nd

Page 26: Firefox OS勉強会 2nd TypeScript+AngularJS

TypeScriptとは

Page 27: Firefox OS勉強会 2nd TypeScript+AngularJS

JavaScriptなんてクソだ!• JavaScriptは確かに良い言語だよ• しかし腐ってる部分もたいへん多い• packageとかnamespaceとかない

• 綺麗なコード書ける=上級者• prototypeのOOP??ナニソレ• 型( ゚#゚)クレ 動的型付とかやだよ!• なのにブラウザ上で動くのはJSだけ

Page 28: Firefox OS勉強会 2nd TypeScript+AngularJS

TypeScriptは神• 可読性の高いJavaScriptに変換して実行

• ECMAScript6を意識

• 言語仕様的にはJSのSuperSet!

• moduleある!classもある!継承もある!

• 型もあるよ!

• 既存の資産も捨てなくて済むよ!

Page 29: Firefox OS勉強会 2nd TypeScript+AngularJS

結論:みんなやろう

詳細 goo.gl/eTLdo

型定義ファイル goo.gl/4HLSo pull req出した!

Page 30: Firefox OS勉強会 2nd TypeScript+AngularJS

AngularJSとは

Page 31: Firefox OS勉強会 2nd TypeScript+AngularJS

jQueryなんかいらない• JSのフレームワーク 重量級の選手

• MVCをキッチリ分けられる

• 双方向データバインディング

• 次世代を担うCOOLな仕様

• WebComponent (っぽい)

• Object.observe (的な)

Page 32: Firefox OS勉強会 2nd TypeScript+AngularJS

結論:みんなやろう

詳細 goo.gl/yjiqT

Page 33: Firefox OS勉強会 2nd TypeScript+AngularJS

TypeScript+AngularJS

Page 34: Firefox OS勉強会 2nd TypeScript+AngularJS

チョー最高! Q.E.D.

両者の共通点は将来の規格を先取りしていることただ単に便利だけど、その規格が実用化されたら…

今からやればいきなり新分野の第一人者になれる!?

Page 35: Firefox OS勉強会 2nd TypeScript+AngularJS

実際にやってみたれなかった

無理やりやっつけたw

れた

Page 36: Firefox OS勉強会 2nd TypeScript+AngularJS

感想

• 通常のAngularJSの開発手順と全く同じ

• 独自のAPIとか全然ないわー

• Building Block、Twitter Boostrap並にわかりやすい

Page 37: Firefox OS勉強会 2nd TypeScript+AngularJS

問題点• offline対応

• Firefoxでhashbangで動作させるのどうやるの…(´・!・`)

• 正しくインストールボタン出したい…

• 標準イディオム的なのがわからない…

• 標準アプリのコード読むの辛い…

Page 38: Firefox OS勉強会 2nd TypeScript+AngularJS

おわりに

Page 39: Firefox OS勉強会 2nd TypeScript+AngularJS

http://goo.gl/CglFP

夏のコミケ情報

Page 40: Firefox OS勉強会 2nd TypeScript+AngularJS

↓わかめも書いたよ!

内容すら知らないよ!↑