Your SlideShare is downloading. ×
Titanium mokumoku 20140319
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Titanium mokumoku 20140319

743

Published on

Titaniumもくもく会#17

Titaniumもくもく会#17

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
743
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. それでも TitaniumでiPhone,Android クロスプラットフォームを諦め ない 2014.03.19 日向強 @coffeegyunyu
  • 2.  このスライドはCoffeeScriptを多用してます。 CoffeeScriptアレルギーの人はご注意ください。  ここに出ているのはあくまで個人の用例ですので、 「100%こうしたほうがいいよ」というものでは ないのであしからず。 Caution
  • 3. 自己紹介 日向強 株式会社アールラーニング 開発事業部 モバイルのプロジェクト (iOS,Android)を主にやってます
  • 4. Titaniumでつくったも の Font Stamp 文字とフォントを組み合わせて各種SNSに 画像を送信するアプリ ダウンロード数は33,000 Titanium3.2.0 使用 https://play.google.com/store/apps/details?id =jp.coe.fontstamp https://itunes.apple.com/jp/app/fontosutanp u-wen-zisutanpuga/id687721425?mt=8
  • 5. Titaniumでつくったも の coe 声を使ったソーシャルレコーディングアプリ 声を録音し、現在位置に声を置いておくことで、 他の人が声を拾って聞くことができるアプリ 現在3000件ほど声が世界中においてあります Titanium 3.2.0使用 https://itunes.apple.com/jp/app/coe- shengdetsunagaruapuri/id367895344?mt=8 https://play.google.com/store/apps/details?i d=jp.coe.coe
  • 6. Titaniumの悪循環
  • 7. Titaniumの悪循環 Titaniumで両方作 れるらしいよ コストダウン できるのな ら・・・ iOSでは動かない Androidでもこの機能欲しい if(OS_IOS) If(OS_ANDROID) もっと もっと iOS、Androidの分岐がいたる ところに入ったメンテしづら いスパゲッティの出来上がり 各所各所でOSごとの分 岐を設けます 一時的に要件は満たさ れます
  • 8. プロジェクト作成編
  • 9.  新規プロジェクト作成時は、絶対にTitanium SDKを 3.2.1にしよう プロジェクト作成編
  • 10. なんで? Titanium 3.1.3 Android Titanium 3.2.1 Android
  • 11.  Titanium SDK 3.2.1だとデフォルトでAndroidの UIのサイズが最適化されるよ(<property name=“ti.ui.defaultunit” type=“string”>dp</property>)  Titanium SDK 3.2.1だと、Androidのデザインも かっちょよくなるよ(Theme.holo) なんで?
  • 12.  新規プロジェクトの 選択について 画面遷移が発生する アプリだとわかって いる場合、 タブを使わなくても Two-tabbed Alloy Applicationのほうが いい プロジェクト作成編
  • 13.  画面遷移の処理方法をiOS,Androidで統一できるから (iOSのNavigationWindowとか意識しなくていい) なんで? #グローバルに現在のタブを保持 $.index.addEventListener "open", (e) -> Alloy.Globals.currentTab = e.source.activeTab if e?.source?.activeTab? $.index.addEventListener "focus", (e) -> Alloy.Globals.currentTab = e.tab if e?.tab? clickMe = (e)-> nextwindow = Ti.UI.createWindow() Alloy.Globals.currentTab.open nextwindow #ここで画面遷移 $.index.open() app/controller/index.coffee
  • 14. 実際に画面遷移すると iPhone (前に戻るボタンが自動付与) Android (Backキーで戻れる)
  • 15. Controller編
  • 16.  Android,iOSで明確に異なる記述で処理をする場合、 CoffeeScriptのクラスの機能を使用したほうが見通しや すい Controller編
  • 17. Controller編 #共通機能クラス部分 class HogeWindowInplBase constructor:-> hello:(e)-> alert "hello" thankyou:-> alert "Thank you" #OSによって使用する継承クラスを決定 IMPL = if OS_IOS then class HogeWindowInplIos extends HogeWindowInplBase hello:(e)-> alert "hello iOS" else if OS_ANDROID then class HogeWindowInplAndroid extends HogeWindowInplBase hello:(e)-> alert "hello Android" #コントローラ実装部 impl = new IMPL() clickHello = (e)-> impl.hello() #ここはOSによって異なる clickThankyou = (e)-> impl.thankyou() #ここはOS共通 app/controllers/HogeWindow.coffee
  • 18. Controller編 iOS Android
  • 19. UI編
  • 20.  まずは、どのOSでも使える部品のみを使って画面 を組み立てる ドキュメントとにらめっこしましょ う  その上で、OS個別の部品を使いたくなったら、 app/view/{それぞれのOS}/{ファイル名}.xmlを作成す る UI編
  • 21. UI編 ファイル構成例 └── views ├── UIWindow.xml ←OS独自のビューが設定されていない場合 ├── index.xml └── ios └── UIWindow.xml ←iOS独自のビュー
  • 22. UI編 iOS/UIWindow.xml UIWindow.xml <Alloy> <Window> <View class="container"> <Button >hello</Button> <Button >thankyou</Button> </View> </Window> </Alloy> <Alloy> <Window> <Toolbar class="container"> <Items> <Button >hello</Button> <Button >thankyou</Button> </Items> </Toolbar> </Window> </Alloy> ※iOSなので、せっかくだからToolbarを使いたい!
  • 23. UI編 iOS Andoird
  • 24. 現在アールラーニング では技術者を募集して います TitaniumやAndroid,iOSに限らず、 Java,Ruby,インフラetc… 技術に自信のある方は、お気軽に t-hyuga@r-learning.co.jpまで!

×