これ(Ti.Developers.meeting Vol 0.3 in Kyoto,公式?サイト)に行ってきた。
サンプル動かしたぐらいのちょー初心者でしたが、勢いで参加したので、内容まとめ。
会場は、はてな本社。発表会場とオフィスが透明の壁で仕切られてたので、オフィスをちら見しながら聞く!
進行:上野 正大さん(@astronaughts)
Android バットノウハウつめあわせ
EC studioの@twingo_bさん、メインはインフラ。見たことあるなーと思ったら、jaws-ugの大阪支部長でした。
- チャットワークのandroid対応をTitaniumで(すでにあったiOS版をベース)
- コードの書き方:app.jsから各WindowごとのコードをTi.include()でinclude、参考サンプルtweetanium
- 起動時に落ちる。app.xmlに追記で対応
- 未定義プロパティはiOSはundefined、Androidはnull。if(sample==undefined) で対応。
- createWindowのあとに、各windowのプロパティを設定しないといけない
- cookieが共有がされない。モジュール作るしか無い。(なんと!
- レイアウトがガタガタ
- 特定のビューでおちる。iOS専用のコードがある。コード分離して対応
- ScrollViewでScrollしない
- WebViewのevalJSが動かない。androidでは、evalJSで複数行の実行ができない。
- リリース時、.svnが原因でDistributeエラー。
- リリース時、WebViewで落ちる。jqueryなど、jsファイルは消える!jsを別拡張子にする。
結論:TitaniumMobileのソースコードをGitHubからとってきて、ソースコードを見ながら開発する
だそうでw
基本、androidつくってios作ったほうがいい、という意見も。
「問題にぶつかったときの解決方法は?」という質問したのですが、「やはりソースコードを見る」だそうですw
window.urlを使わずにプログラミング
ふるかわだいすけさん。なんと!モバイラーズオアシス開発者。今日もお世話になってました!
- マルチコンテキストの問題、コンテキスト間での共有が難しくなる。例えば、変数の共有はハマりどころ。解決方法はいくつかある。
- シングルコンテキストで解決させる方法の紹介
- Ti.include + ブロックスコープ((function());)で、ファイルの分割と親変数の参照が可能
- 共有したいオブジェクトはグローバルに宣言
requireはお勧めしない?ハマりどころらしい・・・
ないならつくってみなよ、iPadアプリ
いしもとこうじ(@t32k)さん
- モテたい→お金稼ぎたい→売れるアプリ作りたい→売れるアプリ難しい→タイマーアプリ欲しい→デザインで差別化
- 既存アプリはボタンが多い(less is more)タッチジェスチャーだけ、するとフォントが重要なのでオリジナルで
- 結果、タブ・ボタンの無いデザインに→http://ticktock.t32k.me/
はまりtips
- 背景画像の繰り返し→モジュールあり
- ボーダーもモジュールあり
- 上下のフリックは標準に無く、endies editionのサンプルコードにある
木曜(2日前)公開で、販売個数は18(うち7は海外)だそうです。
はてなカウンティングアプリの裏側
id:chris4403 栗栖さん(@chris4403)。webサービスで開発したはてなカウンティングをiPhoneアプリ化。
- アプリ前とアプリ後で大きくユーザ層が変化。ギークからライトに、かな。
- 開発環境:Vim,Git,Xcode。最終Xcodeで実機確認
- viewとlogicに分けて作成
- 解析:titanium-google-analytics.js というのがある
- ブログにも書いてるとのこと
「analyticsはアクション毎に毎回通信?」という質問したところ「まとめてバッチ処理的にしてる。通信の有無の影響はほとんど受けてない。」とのことでした。
こんどこそTitaniumでアプリをリリースしてみた
倉井龍太郎(@kurain)さん、はてなのアプリエンジニア、gihyo.jpも書いてる。
- facemashの猫版。ero ratingでランキング化
- データはサーバ、アプリ側はviewer 。json apiはcontent typeを指定しないと、androidで動かない
- サーバどうするか。VPS、Iaas、Paas。
- 結論:さくらVPS
TitaniumでiOS/Android同時リリース:NIFTY-Serveの事例
成田 智也(@harukazepc)さん。ニフティ株式会社、システム開発部。
- Nifty-serveのスマホ版(iphone/android 両方)をつくろう
- ワンソース、マルチユース、体感40%〜15%減
- javascriptでwebデベロッパになじみがあって運用しやすい
- 全ソースの15%がiOS/androidの振り分け
MogSnap 開発秘話&すぐに使えるTitaniumaアニメーションテク
コバヤシトールさん(@toru0325)。MogSnap開発者。
- グラフィック担当、有限会社リズムタイプ。
- トータルDL3万6千。ユーザ数2万。投稿数40万件。7000件/日。
- サーバサイドGAE/Python
困ったこと
- Titaniumの仕様が分からない。今は、TitaniumMobile(amazon)あるからいいよね!
- マルチコンテキスト問題。グローバルオブジェクト生成で対応。
- 戻る問題。透明のwindowをかぶせて対応
- カメラ問題、メモリが800MB以下だと真っ白に。見えないウィンドウにテキスト80MB分生成→解放で強制メモリ確保。
- HHTPClient、URL2重エンコード。Obj-Cのソースをコメントアウト。
- サウンドがキャッシュされない。stop()をやめて、pose()&rewind()
- 邪悪なプチゲームを忍ばせた。(デモ見たけど、これはなかなか邪悪・・・w)
- 新作アプリ!OpenGL使わず!その名も「MogSmash」。アルカノイドに似てるミニゲームでした。ソース公開予定!9末リリース予定。
アニメーションの話。Androidは休憩w
- transform というどのviewにも存在するプロパティ。テキスチャみたいなことが可能。
- テキストの上下や、+透明になるデモ
- キーフレームアニメーション、Titaniumではできない
- モジュール作成した。(github)
モクモク開発タイム
やばい!何作ろうか考えてない!(今ここ)ということで、まずこのエントリー公開〜
雑感
Titaniumを使ってるからといって、必ずiOS/Android 両対応してるわけじゃないんだなーと。あくまでjavascriptで書けるから、という理由でもTitaniumというのもあるんだなー、と。
細かいtipsは全部拾いきれませんでしたが、これから開発するに当たってぶつかるであろう壁を先に知ることができて良かったです。早く一つでもアプリつくらねば!