kanazawa.js v1.5 - Hello Titanium Mobile! -
http://togetter.com/li/165175
ハッシュタグなしでtudaった分はさすがに入ってないか。
というわけで、自前版。
- 入り口すぐの席を確保〜 #kanaj
- 心配するな、をれも間違えた(^^;。RT @mathme: 間違えた!今日はITプラザじゃなくて近江町の交流プラザ!きゃー
- ファーストのネタは、毎回やっているのと同じかな。 #kanaj
- おやつにおからドーナツ90円x2を確保したのだが、会場は飲食禁止だった。残念。 #kanaj
- を、名古屋のときより、ちょっとバージョンアップしているかな? #kanaj
- そっか、今日はハンズオンがないから、内容混ざっている感じになっているのね。 #kanaj
- あ、あと毒もない(^^;。 #kanaj
- つ http://bit.ly/nFCyJy RT @wtnabe: Android SDKそのものの準備じゃなくてAndroid SDKをTitaniumに認識させるところが分からないんだけど、なぜかビデオにもWikiにもその部分がない。
- 前回と比較すると、BOX2Dが動くようになっているみたい。安定度はまだまだ。#kanaj
- 有料でOpenGLサポートも。# kanaj
- もうじきモジュールストアがオープンする予定。#kanaj
- やばい、風邪薬が効いてきたのか、とても眠くなってきた...
- kanajって、まともにtudaるような人はいないのね。かなりマシン開いているのにな。
- @wtnabe シェア力の問題かな。
- @wtnabe 今日はあんまりブラックな笑いをとってない感じ。眠くなるのもわかる。長すぎかな。40分くらいの内容を引き伸ばしているから?
- 電源が微妙なので、盗電に参加すべきかな。 #kanaj
- ということで電源確保。後ろにAC来てるよ。> @mathme
- 「TitaniumでAndroidアプリをリリースまでやってみた」@kurain はじまった。
- 講師はふたりとも写真サギである。#kanaj
- はてなのTitanium:はてなカウンティング。ラボサービス。id:chris4403作。開発合宿は3日しかないので、Titaniumで作る人が何人か。
- Agenda: Androidアプリをリリースした事例、そもそもAndroidって、Androidの落とし穴とTips、Androidアプリをリリースした事例2(リリースが間に合わなかったので予定のものを)。会社のものではなく個人で作っているものを紹介。
- 事例紹介:作業を紹介して、苦労話をするスタイル。毎日面白画像。面白い画像をtwitpicから抽出して表示。着想は爆笑!!バカ画像100。エンターテイメント部門。有料一位!!!。似たようなものなら広告取れる? twitpicが面白いから。
- システム;さくらVPSでクロール、JSON生成, Ruby… まずiPhone版から、エミュが高速だから。Titaniumの不具合が少ない。一日でできたが、審査に落ちた… Webを表示しているようなシンプルなアプリはダメ。
- Android版:動かないはずはない。そうでもないorz 画像がでない。エラーログは出ていた。bitmapの変換に失敗しているようだ。結構たいへん?
- ImageViewは実はすごい。queue付きのダウンローダー。jpegmpng,gifに対応。twitpicは転送が途中に入るのでダメ?
- HTTPClientを使ってデータを先にダウンロード。responseDataでblobを取得。描画。画像毎にcreateした。メモリ不足で落ちた。クライアントx2にしてコンティニュアスにダウンロード。同期的に呼べないので再帰で。クライアントは限界数まで増やせる。
- 画像が並ばない… iPhoneはならぶ。Androidは歯抜けに。layout:holizontalを指定しておくと、同じ位置や位置指定のない要素の場合は自動で横に並べる。Androidではうまく動かない。明示で指定して画面を構成した。しかし、速度が出ない...
- 詰んだ… 裏技でWebViewとEvalJSを使う。Android Emu… エミュレータのバグが放置されている。onloadからecalJSが呼べない。GBからバグ。ASOPと書かれているが直っていない。実機なら問題ない。
- コードができたら。アイコンを準備。512x512でとりあえず。iPhone用。スプラッシュを用意。960x640で。これもiPhone用。結構難しい。一番時間がかかった。
- アイコン/Splash:default_app_logo.pngを変更。tiapp.xml変更でもよい。iPhoneは、57x57 114x114(@2x)で用意。Resources/iphone/... も書き換える。
- Androdiは512x512で適当にリサイズしてくれる。Resources/android/default.pngを変更。反映されない場合もある。対策...
- タイトル変更:アプリの表示名を変える。見た目重要。iPhoneだとおさまらないと省略される。国際化。ディレクトリを掘る。/i18n/ja/strings.xml。英語はen。
- AndroidManifest.xml:ビルドすると、/build/android/にできる。platform/androidの下にコピーしておく。
- 署名:keyはコマンドで作る。作成した鍵をTitaniumStudioで登録。
- サイレントリリース:検索による導線のみ。どのくらいダウンロードされる?どのくらい儲かる? AdMobとAdMakerはモジュールで利用できる。
- 売上:1.5Mで432DL、129がアクティブ(29%)。$11/4600request、ePCM $2.7。客単価は2-10円。
- 単純なアプリでも移植は油断できない。Android版はまだ罠多し。大変なのはコードだけじゃない。時間に余裕を持って。
- そもそもAndroidって?;復習。普及台数。端末。Market。まとめ。違うのは開発言語だけではない。端末の多さには注意をはらう。有料アプリを売るのは至難。
- Androidの落とし穴とTips:Bad know-howがいっぱい。
- デザイン:1.6まではオートスケール。1.7からはdpを使うのがよさそう。あとはdpi毎にデザイン設定を。dp(dip) device-independent pixcel 160dpi字の1pix。
- No Sample:サンプルがないのに使える機能。Activity。Intent。Javaの資料を読んでおこう。Titaniumの資料だけではわからない。
- HTTPClient:同時作成に上限。違うWindowでcallbackを受けようとすると死ぬ。同時実行できない。など
- JSON:evalしない! content-type付ける。日本語文字列はエスケープ。iPhoneは大丈夫だけど。
- TabGroup:これを使わないと問題が起きる。いまどきTabはダサい? TabBarが消せない。使わないと利用できないAPIがいっぱいある。iOSでも必ず使うべき。
- 広告:AdMobのモジュールがある。HTMLを貼ろうとしないこと。AdMakerも作ってみたいが… iPhone版はそこそこ使えるモジュールがあるが、Android版はない。
- 良いところも:レイアウトにXML書く必要がない。ロジックは再利用できる。うまくいくときは、案外うまくいく。
- Tips:Fastdev。高速開発ツール。Windowを開くたびにリロード。Androidのみ。エミュでしかできないが、実機でもできるようになりそう。
- DDMS:実機でもTi.API.debugが見える。エミュレータでも便利。スクリーンショットも取れる。
- まとめ。iOSではちゃんと動くのに… 細かいところで不自由が...
- アプリをリリースしようとした事例2:Cat of Cats(仮) ネコ写真、どっちがカワイイか入力。ランキングが出る。Instagram+facemash。映画Social Network。やってみたかった。女性版も作ったが面白くない。二番煎じはよくない。妻に怒られた。ネコに。
- Webアプリモデル:必要な情報はサーバーからJSON。アプリはViewer。画像先読みなどユーザー体験を向上。
- 開発手順:HTML5+JS。サーバーの実装を完璧に。アプリのリクエストを模擬的に実行するHTMLで完璧に動作するか確認した。これをアプリに移植。
- マーケティング:Facebook, Twitter連携。Titaniumのfb連携便利。10-20行で実装できる。™_twitter_api by mogyaさんも便利。AndroidでもiPhoneでも問題なく動作。
- iPhone版:ほぼ完成。Android版:ほぼ文句がないが、設計通りに動いていない。アニメーションがうまくいかない。Animation非対応(一部動く)。デザインが崩れる。dpでなんとか。HTTPClientまわりエラーが出ている。要解析。
- 全体まとめ:いろいろ大変なこともあるが、バッドノウハウをまとめればなんとかなる。一度に両方開発できる利点は大きい。学習コストも低め。やりたい事とうまくトレードオフ。
- 終わり。
- disったからか、@wtnabe さんが結構まじめにtudaっている(^^;。
- え?自前でふつーじゃないの? RT @t32k: @kinneko ネット環境ないですしね...
- あぢくなったのは、ドア開いたから?エアコン切れた? #kanaj
- あーあ、夜フクロウ落ちた〜。3.6kくらいのtimelineを失う。やっぱ自前アプリ書かないとダメだなぁ… orz
- たぶんこのネタも聞いたことあるやつだな。#kanaj
- Q:両対応は分岐地獄にならないか? Android用とiPhone用でクラスを分けておいて、最初に分岐させるといい。読み込むJSファイルの指定でも出来る。
- ロジックはNode.jsでテストしている。UIはユニットテストは書けないので、手でやっている。ドリルビットというUnitTest機能はある。
- Desktopは? 開発は続いている。1.2に上がった。比重はモバイルのほうが大きい。内生用のアプリを作っていたり、twitterクライアントを作っている方も。
- 家帰って、カレー作り中なう。