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クライアントを作っている方も。
  • 家帰って、カレー作り中なう。