harukazepc’s blog

インターネッツとAndroidなどが大好きです。あとは日々のことなど。

Ti.Developers.meeting Vol 0.3 in Kyoto に参加してきました&各セッションメモ #titaniumjp #TDm03

9/17に「Ti.Developers.meeting Vol 0.3 in Kyoto」へ参加してきました。from 川崎。

はっきりいって、セッションのメンバー・内容が濃くて、カンファレンスといってもよかったんではないかと。行くことを速攻きめてよかった。(そして会社のみなさまありがとうございます。)

自分も主催者様に無理をいいまして、弊社事例を共有させてもらいました。
ぜひ今後とも、いろいろ情報交換させていただければ、と思っています。

思ったことベスト3:
 ・Titaniumおもしれー!
 ・Androidやる人(やったことある人)少ねー!
 ・雨すげー!(大雨)

みなさんのtweetについてもまとめておきました。
Ti.Developers.meeting Vol 0.3 in Kyoto - Togetter

以下、各セッションメモと感想?です。

      • -

★ご挨拶 〜 上野 正大(Ueno Masahiro)@astronaughts

上野さんのご挨拶。人柄最高です。

  • 「「勉強会」ではなく「イベント」ですよ」。実際そんな感じの温かさがありましたね。
  • 「たのしい雰囲気をtwitterでおねがいします」>twitterで発言増えるw

Android バットノウハウつめあわせ 〜 twingo_b @twingo_b

chatworkのandroidアプリ by Titanium。でのAndroidバッドノウハウたっぷり。大変勉強になったなぁ。。。
Titaniumに限らず、iPhone版作成→Android版作成ってのは、かなり危険だという個人的認識。
アプリ自体の作りの話しかり、開発の話しかり。

  • マインドマップでプレゼン(!!!)
  • 普段はサーバ屋。ECStudio。ex) chatwork, webanalyst。titanium歴: 4month.
  • TitaniumでiPhone版作った。そこからAndroid版を作ろうとした。
  • 開発スタイルは、komodoeditで、app.jsからTi.include()。tweetaniumのような感じ。
    • Studioつかわない。のも問題があったから(後述)
  • viewだけ直せばいけるっしょ→そう思っていた時期があった。www
  • バッドノウハウ
    • 環境
      • 起動時にエラーで落ちる->スタック足りなくてjsパースできない->rhinoの問題?->tiapp.xmlでti.android.threadstacksizeで増やす
      • model変->オブジェクトプロパティが未定義のとき、iOS:undefined, Android:null->両方対応->if (sample == undefined)
      • 縦固定にしたい->1.7.2以降?で設定変わった->createWindow後にorientation設定
      • cookieが共有されない->HTTPClient同士、WebViewとcookieを共有できない->モジュール作るか無理矢理
    • view
      • レイアウトがたがた->iphoneにあわせると小さくなる->anyDensity="false"
      • 特定のView開くと落ちる->分けた->svn外部参照で一部共有
      • scrollviewでscrollしない->iphoneと同じイベントがでない
      • evaljs動かない->androidで複数行実行ができない->一行づつやる
    • リリース
      • dstributeでエラー->svn作業ディレクトリの中だとスプラッシュやメニューアイコンの生成に失敗->git推奨
      • webviewおちる->webviewで利用しているjsがapkに含まれない!?->拡張子をjsにしない
    • あとね
    • 結論

★Window.urlを使わないプログラミング 〜 ふるかわだいすけ@mogya

モバイラーズオアシスの人。セッションタイトル的に一番気になっていました。
なーんとなくだったシングルコンテキストとマルチコンテキストのメリット・デメリットが明確になったかな?

  • シングルコンテキストvsマルチコンテキスト
  • マルチコンテキスト
    • window.urlなタイプ
    • 例:キッチンシンク
    • メソッドやオブジェクトの共有ができない
    • マルチコンテキストは大規模に向かない
    • 各ウィンドウの独立性が高かったり、データはクラウド経由で共有ならいいのかも。
  • ので、シングルコンテキストスタイル
    • ファイル一個、、、でもいいけどさ
    • Ti.include()も、変数名が衝突する
    • ブロックスコープ。ブロックコンテキストなら中から外が見られる。
    • 自前グローバル変数がいい。mo.ui, mo.model とか。それで共有する。
    • requireはAndroidではまるからどうよ?
  • Q: currentWindowどこ指すの?
    • A: currentWindow意識しない
  • Q: グローバル変数ってどうよ?
    • A: 大規模ならちゃんと設計しないとだけど。

★ないなら作ってみなよ、iPadアプリ 〜 いしもとこうじ(t32k) @t32k

プレゼンたのしかったっす。やっぱデザイナーさんだなぁ。がんばって売りまくってください!!
内容も細かく深いチューニングまで。そして人間的本能大切。
MarionnetteBy ★ Alex---D ★

  • もてたい!のでアプリ作った(重要)
    • 「彼女のためにはお金貢ぐといい」らしい、けどお金ない。だからアプリを売ってみる。
      • 売れるアプリって、、、ソーシャル?ゲーム?わからん
    • それなら欲しいの作るか。タイマーが欲しい。
  • ticktock
    • はまったこと
      • バックグラウンド画像が引き延ばされる問題。titaniumのソースいじった。モジュールもあるよ。
      • ボーダー使いたい→1pxViewを使う・・・
      • ボタンの押下時のハイライト。ボタンの上にラベル。そのラベルでハイライト指定。ボタンは透過に。
    • JSSはだめ。
    • マルチコンテキストでパフォーマンスでなかった。遷移・描画遅れ。
      • シングルコンテキストにすることで解決した!
    • デザイナーとの協業。css3で作り込みたい。割り切ってwebviewで作る、もありかも。

はてなカウンティングアプリの裏側 〜 栗栖 義臣@chris4403

はてな栗栖さん。はてなカウンティングのアプリについて。
提供する場所(AppStore)および利用者(iPhoneユーザ)によって、サービス自体の使われ方が変わる、っていうのは、サービス提供者的にはすごい納得だしおもしろい結果でした。
analytics使ってます!

  • ObjC苦手。JSでできるのでやってみた。
    • はてなラボ、だし。
    • アプリリリースの成果として、本体の作成ペースが増えた!
      • 利用者層も変わった!(つきあった日、とか。iPhone2年縛りまで、とか。)
    • Android版は、分岐が多くなって結局別で作る予定・・・
    • ソース構成:viewとlogicで分けた
    • 聞きたいこと(知りたいこと)
      • tableView+sectionでのrow追加方法のいいやり方
      • windowの裏で別windowを再描画
      • (忘れた・・・)
    • アプリで分析したいポイント
      • Viewの閲覧数
      • ボタン押下数
      • エラーの検知、発生箇所
    • で、google analytics。analytics.js。
    • 今後やりたいこと:プライベート対応, push notification
    • 人力検索はてな関連アプリ
    • Titaniumをプロト開発で使う(その後はネイティブも選択肢に入れる)、もありかも。

★こんどこそ Titanium でアプリをリリースしてみた 〜 倉井 龍太郎@kurain

gihyo.jpのTitanium連載を書いている、倉井さんです。
ごめんなさい。サーバ・クラウドのお話が主だったので、ほぼ割愛いたします。。。

  • アプリケーションエンジニアです
  • こんどもリリースできませんでしたwwww

★TitaniumでiOS/Android同時リリース:NIFTY-Serveの事例 〜 成田 智也(nari) @harukazepc

モデム音でウケたので満足?割愛!

★MogSnap 開発秘話&すぐに使える Titanium アニメーションテク 〜 コバヤシトール @toru0325

MogSnap開発者。MogSnapの開発にいたる道のりと、アニメーション系のtips。
前半は僕の話の流れに似てたかな?参考になりました。
後半は宝石箱状態。

  • Mac/Winのソフトウェアクリエイター
    • デジタルステージ製品など。MiNDPiECEなど。
  • MogSnapを、リズムタイプ(デザイン)と作った。
    • 3万6千DL、2万ユーザ、40万件投稿、7000アクション/日
    • 4ヶ月で開発
    • Titanium Mobile SDK 1.4〜1.5のころに作った
    • Tiは選んだのではなく、ObjCがわからんから。
      • Airは重そう。Coronaは言語がいやだ。PhoneGapはサンプルが微妙。で、Titaniumどうなの。
      • titanium-mobile-jaを発見、KitchenSinkにであう。
      • ネイティブだし、カメラもマップもいける。
    • MogShare(プロト)→1週間→リズムタイプに見せた
      • 1週間でプロトができた。
      • ObjCと勘違いされた。
      • アニメーションが使える
      • そこそこ安定していた
  • 困った問題
    • オンラインに載ってない
      • Ti本最高
    • マルチコンテキスト問題。マルチコンテキストです。
      • include試行錯誤
      • Ti.App.g()
    • 戻るボタン問題
    • カメラ問題
  • よい点
    • アニメーションすばらしい
    • Push Notification(urban airshipとGAEを利用)
    • プチゲームを忍ばせられる(広告の下からなんかでる。押すと反応。以下略)
  • 新作アプリできました MogSmash
    • 標準Viewだけでアクションゲームを作ったよ
    • Mogスピンアウト
    • 3週間でできたらしい。
      • ソース公開予定?
  • Tiでアニメ
    • パターン1:画面遷移
    • パターン2:Mogのコインとか
    • パターン3:全面アニメ->Haiclock
  • ここだけ押さえればおっけー
    • view.transform
      • viewプロパティ
      • 2D/3DMatrix
  • サンプル集公開しました
      • -

とりいそぎ以上な感じで。

とにかく、たのしかったー!

© harukazepc️