0
2012/5/19            Titanium Mobile 実装最初の一歩            ∼CommonJS や公式英語版の Tips ポロリもあるかもよ∼                  Titaniumで作るiPho...
自己紹介(twitterID:leftyweapon)                         call me HIDARI !   エンジニア経験有りの前職人事です   Titaniumは、2月くらいから   名古屋グランパスのファンです
デモいる?Titaniumとは   JavaScriptでiOSやAndroidの    ネイティブアプリ書けるやつ                   http://vimeo.com/19890288
mogsnapも   Zaimも   ココログも   サイボウズLiveも他にもたくさんアプリがTitaniumで作られている
mogsnapも   Zaimも   ココログも   サイボウズLiveも他にもたくさんアプリがTitaniumで作られている多少、黒魔術あるけど実績十分
!
!
Titaniumのすごさはプロ生14回品川見るべし           http://www.nicovideo.jp/watch/1333931829他にも色々すごい所あるけど、僕でもiPhoneアプリが書けた所。今は使いやすさ改善のため、3...
更に学べる環境も整ってきた
最近2.0にバージョンアップ
クラウドとの連携が可能に! アプリに必要なサーバーサイドの処理      アカウントの作成・管理      データのストレージ        も、既にできるらしい http://d.hatena.ne.jp/donayama/20120325/...
書き方もCommonJSスタイルに
書き方もCommonJSスタイルにえ?CommonJS?
CommonJSって?  ブラウザ以外でJavaScriptが もっと活躍できるような標準規格を    作りましょうという話
書き方が大分変わります@donayamaさん 世界初のTitanium サンプル豊富の 無料のPDFです      書籍         電子書籍      そのままは使えない
CommonJSで書く必要性は?・これから出てくるドキュメントがそうなるので・より大規模なアプリが作りやすい
公式から無料の電子書籍が登場
Ti本著者の@donayamaさんによって日本語も整備中 http://code.google.com/p/titanium-mobile-doc-ja/downloads/detail?      name=TitaniumMobileFir...
そもそものTitaniumの書き方も知らん
電子書籍版、英語で分量たくさんあるよ  (iPhone版iBookで1600ページ!)
今日のアジェンダ  Titaniumでの簡単な実装の紹介   画面   イベント   メソッド  Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介      (時間無いかも)
Titanium学習のロードマップ
Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)
Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)
Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)titanium studio + kitchensinkを入れる(所要時間?時間)
Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)titanium studio + kitchensinkを入れる(所要時間?時間)ドットインストールを見る(所要時...
Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)titanium studio + kitchensinkを入れる(所要時間?時間)ドットインストールを見る(所要時...
Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)titanium studio + kitchensinkを入れる(所要時間?時間)ドットインストールを見る(所要時...
Titaniumでの簡単な実装の紹介画面   イベント   メソッド
Titaniumでの簡単な実装の紹介画面   イベント   メソッド
Titaniumでの簡単な実装の紹介画面   イベント   メソッドタブグループ
Titaniumでの簡単な実装の紹介画面   イベント   メソッドタブグループ
Titaniumでの簡単な実装の紹介画面   イベント   メソッドタブグループ >タブ
Titaniumでの簡単な実装の紹介画面   イベント   メソッドタブグループ >タブ
Titaniumでの簡単な実装の紹介画面   イベント   メソッドタブグループ >タブ >ウィンドウ
Titaniumでの簡単な実装の紹介画面   イベント   メソッドタブグループ >タブ >ウィンドウ >パーツ
Titaniumでの簡単な実装の紹介画面   イベント   メソッドタブグループ >タブ >ウィンドウ >パーツ
Titaniumでの簡単な実装の紹介画面   イベント   メソッドタブグループ >タブ >ウィンドウ >パーツ
Titaniumでの簡単な実装の紹介画面 画面についての作り方(従来の書き方) タブグループ>タブ>ウィンドウ>パーツ var tabGroup = Ti.UI.createTabGroup(); tabGroup.open();
Titaniumでの簡単な実装の紹介 画面 画面についての作り方(従来の書き方)    タブグループ>タブ>ウィンドウ>パーツvar tab1 = Ti.UI.createTab({    icon:icon_list.png,//画像    ...
Titaniumでの簡単な実装の紹介  画面 画面についての作り方(従来の書き方)     タブグループ>タブ>ウィンドウ>パーツvar win2 = Titanium.UI.createWindow({    width: 320,heigh...
Titaniumでの簡単な実装の紹介  画面 画面についての作り方(従来の書き方)     タブグループ>タブ>ウィンドウ>パーツvar label = Titanium.UI.createLabel({    height: 30,top: ...
Titaniumでの簡単な実装の紹介画面 画面についての作り方(従来の書き方)タブグループ>タブ>ウィンドウ>パーツ大きな物.add(小さいもの)で配置していく   他のパーツはどんな物があるの?
Titaniumでの簡単な実装の紹介乗っけられるパーツの種類mapview   テキスト   画像   ボタンWEBページ   レイアウト系のパーツ
Titaniumでの簡単な実装の紹介画面    イベント     メソッドaddEventListener( イベント名 , function(e) {         //ここで命令を呼び出す}
Titaniumでの簡単な実装の紹介   デモいる?イベント 呼び出せるイベント タップ、スワイプ、ダブルタップ、 タッチの開始、タッチ中、タッチ終了など ほぼ何でも
Titaniumでの簡単な実装の紹介画面   イベント      メソッドfunction methodName() {  //実装}JavaScriptって思ったよりはしっかり書ける言語だと思います(LL言語利用者にとって)
Titaniumでの簡単な実装の紹介メソッド   使えるAPIの例データベース:sqliteでCRUDできますプラットフォーム:IPアドレスやメモリ使用量、バッテリ残量などデバイス:GPS、コンパス、加速度センサー、音楽、アドレス帳、カメラ、ク...
Titaniumでの簡単な実装の紹介 titaniumの実装のフローまとめ
Titaniumでの簡単な実装の紹介 titaniumの実装のフローまとめ UI作って
Titaniumでの簡単な実装の紹介 titaniumの実装のフローまとめ UI作って イベント設定して
Titaniumでの簡単な実装の紹介 titaniumの実装のフローまとめ UI作って イベント設定して 命令を実行する
今日のアジェンダ  Titaniumでの簡単な実装の紹介   画面   イベント   メソッド  Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介      (時間無いかも)
今日のアジェンダ  Titaniumでの簡単な実装の紹介   画面   イベント   メソッド  Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介      (時間無いかも)
最近のTitaniumでの書き方
なんでこういう変化が起きたのか1.マルチコンテキストの弊害2.色んな物への対応3.より本格的になってきた
なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります2.色んな物への対応3.より本格的になってきた
なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります      引用:小さな Titanium Mobile の読み物2.色んな物への対応3.より本格的になってきた
なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります          引用:小さな Titanium Mobile の読み物2.色んな物への対応デバイスが増えて、このま...
なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります          引用:小さな Titanium Mobile の読み物2.色んな物への対応デバイスが増えて、このま...
なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります          引用:小さな Titanium Mobile の読み物2.色んな物への対応デバイスが増えて、このま...
titaniumの現在のベストプラクティス     シングル              CommonJS    コンテキスト
シングルコンテキストとは?commonjsで何を取り入れているの?
シングルコンテキストとは? 実行時に、全部app.jsにファイルが展開されるcommonjsで何を取り入れているの?
シングルコンテキストとは? 実行時に、全部app.jsにファイルが展開されるcommonjsで何を取り入れているの? module
変化を受けた部分その1
変化を受けた部分その1   ファイル構成
変化を受けた部分その1          ファイル構成    Resources  app.js  一番最初に呼ばれるファイル  db.js      データベースを呼ぶファイル    ui          common     共通    ...
CommonJS:module in Titanium モジュールの作り方 モジュールの呼び出し方
モジュールの作り方               作り方二通りモジュールの呼び出し方1.exports = function methodName(hikisuu) {     //実装}2.module.exports = methodName;
モジュールの作り方               作り方二通りモジュールの呼び出し方1.exports = function methodName(hikisuu) {     //実装}2.module.exports = methodName...
モジュールの作り方          引用:http://d.hatena.ne.jp/donayama/20111230/   定義     commonjs_modules_in_titaniumexportsモジュール内に存在する複数の変...
モジュールの作り方        leftyweapon的解釈exports メソッドや変数のみをモジュール化するのに 使っているmodule.exportsオブジェクトを生成するのに使っているコンストラクタのような役割(画面の生成とか)
モジュールの作り方        leftyweapon的解釈exports メソッドや変数のみをモジュール化するのに 使っている               険           !危                           る...
モジュールの作り方        leftyweapon的解釈exports メソッドや変数のみをモジュール化するのに 使っている               険           !危                           る...
モジュールの作り方   exports          実装例exports.selectListItems = function (_flg) {  var db = Ti.Database.open(DATABASE_NAME);  va...
モジュールの作り方    exports   実装例exports.selectListItems = function (_flg) {}
モジュールの作り方module.exports    実装例 function ApplicationWindow() { 	 var self = Ti.UI.createWindow({ 	 	 backgroundColor:#fffff...
モジュールの呼び出し方             下準備>呼び出しrequireして、外部のファイルのファイルを取り込む require( ui/handheld/startwindow ) 緑 の中は、ファイル名を書くけど.jsつけない
モジュールの呼び出し方               下準備>呼び出しexports1.var db =require( db );2.var selectListItems = db.selectListItems();module.expor...
CommonJSまとめCommonJSは、Moduleが実装されている モジュールを作る モジュールを呼び出す プログラマーにとっては、 気持ちよく書けるようになった いくつかの公式サンプルを写経すれば、 デザイナーでも怖くない
今日のアジェンダ  Titaniumでの簡単な実装の紹介   画面   イベント   メソッド  Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介      (時間無いかも)
今日のアジェンダ  Titaniumでの簡単な実装の紹介   画面   イベント   メソッド  Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介      (時間無いかも)
電子書籍版の中の面白いTipsだけ紹介Javascriptの書き方そのもののTipsDBについてTitatanium特有のTipsその他の仕組み
引用:JavaScript Developement Primer電子書籍版の中の面白いTipsだけ紹介Javascriptの書き方そのもののTips1.即時関数、三項演算子 (略2.for文の書き方でi<array.lentghを使わない3....
引用:JavaScript Developement Primer電子書籍版の中の面白いTipsだけ紹介 Javascriptの書き方そのもののTips2.for文の書き方でi<array.lentghを使わない     理由:毎回array....
引用:JavaScript Developement Primer電子書籍版の中の面白いTipsだけ紹介 Javascriptの書き方そのもののTips2.for文の書き方でi<array.lentghを使わない     理由:毎回array....
引用:JavaScript Developement Primer  電子書籍版の中の面白いTipsだけ紹介  Javascriptの書き方そのもののTips 3.if文の判定===を使うvar testme = 1;if(testme == ...
引用:JavaScript Developement Primer  電子書籍版の中の面白いTipsだけ紹介  Javascriptの書き方そのもののTips 3.if文の判定===を使う==を使うと型変換されてしまう!という衝撃の事実var ...
引用:working with a SQLite Database電子書籍版の中の面白いTipsだけ紹介 DBについて1.installを使う事2.データベースに初期データを詰め込みすぎない3.updateやinsertはトランザクション使うと...
引用:working with a SQLite Database電子書籍版の中の面白いTipsだけ紹介 DBについて1.installを使う事  テーブルが無ければSQLを流して作る  というのが本のサンプルに書いてある毎回起動時にSQLが走...
引用:working with a SQLite Database電子書籍版の中の面白いTipsだけ紹介 DBについて2.データベースに初期データを詰め込みすぎない  AppStoreのダウンロード時に大量の  データを配布しない3.updat...
引用:working with a SQLite Database 電子書籍版の中の面白いTipsだけ紹介 DBについて 4.iCloud対応         書き方によっては、リジェクトされるとりあえずの対応(iCloud使わないと明記する事...
引用:Best Practice and Recommendations電子書籍版の中の面白いTipsだけ紹介Titatanium特有のTips1.Titanium Prototypesを拡張しちゃダメ2.個人情報を.jsじゃないファイルに入れ...
引用:Best Practice and Recommendations電子書籍版の中の面白いTipsだけ紹介Titatanium特有のTips1.Titanium Prototypesを拡張しちゃダメ純粋なJavaScriptのオブジェクトじ...
引用:Best Practice and Recommendations 電子書籍版の中の面白いTipsだけ紹介 Titatanium特有のTips2.個人情報とか?.jsじゃないファイルに入れちゃダメ            (この辺は訳に自信...
引用:Best Practice and Recommendations電子書籍版の中の面白いTipsだけ紹介Titatanium特有のTips3.システムプロパティを頻繁に呼ぶとパフォーマンスが落ちる    ローカル変数に落とし込みなさい シ...
引用:Best Practice and Recommendations電子書籍版の中の面白いTipsだけ紹介その他の仕組みrequireするとキャッシュされるexportsすると変数がプライベートのスコープを持つようになる(具体的には書いてな...
終わり
まだ時間ある?
One more things
Xib2Js2.0and TiMockreleased http://blog.frogonmobile.com/2012/05/xib2js20-and-timock-released/
XcodeのStoryBoardで作ったソースファイルをTitaniumのJavaScriptへ変換  GUIでシャカシャカUIが作れる優れもの
XcodeのStoryBoardで作ったソースファイルをTitaniumのJavaScriptへ変換  GUIでシャカシャカUIが作れる優れもの  待望のCommonJS対応
著者は日本人なのでドキュメントもあるし、Twitterフォローするもよし           twitterID:@daoki2 TiMockというのも同時リリース      ですごいらしいよ
Titanium界からはこんなコメントがこのライトニングトークで一番かっこよかったのは @daoki2 さんの Xib2Js です。                                       小さな Titanium Mobi...
続きはWEBで   xib2js & Timockで検索
本当に終わり。ありがとうございました
Titanium実装最初の一歩.
Titanium実装最初の一歩.
Titanium実装最初の一歩.
Titanium実装最初の一歩.
Titanium実装最初の一歩.
Titanium実装最初の一歩.
Upcoming SlideShare
Loading in...5
×

Titanium実装最初の一歩.

7,186

Published on

プログラミング生放送名古屋で行われたセッションの資料です。
blogはこちら。http://blog.enzine-factory.net/archives/68

Published in: Technology
0 Comments
22 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,186
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
43
Comments
0
Likes
22
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Titanium実装最初の一歩. "

    1. 1. 2012/5/19 Titanium Mobile 実装最初の一歩 ∼CommonJS や公式英語版の Tips ポロリもあるかもよ∼ Titaniumで作るiPhoneアプリ の実装フローとCommonJSなどの話copyrightは無いよ
    2. 2. 自己紹介(twitterID:leftyweapon) call me HIDARI ! エンジニア経験有りの前職人事です Titaniumは、2月くらいから 名古屋グランパスのファンです
    3. 3. デモいる?Titaniumとは JavaScriptでiOSやAndroidの ネイティブアプリ書けるやつ http://vimeo.com/19890288
    4. 4. mogsnapも Zaimも ココログも サイボウズLiveも他にもたくさんアプリがTitaniumで作られている
    5. 5. mogsnapも Zaimも ココログも サイボウズLiveも他にもたくさんアプリがTitaniumで作られている多少、黒魔術あるけど実績十分
    6. 6. !
    7. 7. !
    8. 8. Titaniumのすごさはプロ生14回品川見るべし http://www.nicovideo.jp/watch/1333931829他にも色々すごい所あるけど、僕でもiPhoneアプリが書けた所。今は使いやすさ改善のため、30人くらいがお試し中 リリースしたら、 使ってください!
    9. 9. 更に学べる環境も整ってきた
    10. 10. 最近2.0にバージョンアップ
    11. 11. クラウドとの連携が可能に! アプリに必要なサーバーサイドの処理 アカウントの作成・管理 データのストレージ も、既にできるらしい http://d.hatena.ne.jp/donayama/20120325/cocoafish_de_lesstagram
    12. 12. 書き方もCommonJSスタイルに
    13. 13. 書き方もCommonJSスタイルにえ?CommonJS?
    14. 14. CommonJSって? ブラウザ以外でJavaScriptが もっと活躍できるような標準規格を 作りましょうという話
    15. 15. 書き方が大分変わります@donayamaさん 世界初のTitanium サンプル豊富の 無料のPDFです 書籍 電子書籍 そのままは使えない
    16. 16. CommonJSで書く必要性は?・これから出てくるドキュメントがそうなるので・より大規模なアプリが作りやすい
    17. 17. 公式から無料の電子書籍が登場
    18. 18. Ti本著者の@donayamaさんによって日本語も整備中 http://code.google.com/p/titanium-mobile-doc-ja/downloads/detail? name=TitaniumMobileFirstStepGuide_beta.pdf&can=2&q=
    19. 19. そもそものTitaniumの書き方も知らん
    20. 20. 電子書籍版、英語で分量たくさんあるよ (iPhone版iBookで1600ページ!)
    21. 21. 今日のアジェンダ Titaniumでの簡単な実装の紹介 画面 イベント メソッド Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介 (時間無いかも)
    22. 22. Titanium学習のロードマップ
    23. 23. Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)
    24. 24. Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)
    25. 25. Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)titanium studio + kitchensinkを入れる(所要時間?時間)
    26. 26. Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)titanium studio + kitchensinkを入れる(所要時間?時間)ドットインストールを見る(所要時間2時間)
    27. 27. Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)titanium studio + kitchensinkを入れる(所要時間?時間)ドットインストールを見る(所要時間2時間)作る
    28. 28. Titanium学習のロードマッププロ生14回品川の増井さんの発表を見る(所要時間1時間)今日の放送を見る(所要時間最大40分)titanium studio + kitchensinkを入れる(所要時間?時間)ドットインストールを見る(所要時間2時間)作る
    29. 29. Titaniumでの簡単な実装の紹介画面 イベント メソッド
    30. 30. Titaniumでの簡単な実装の紹介画面 イベント メソッド
    31. 31. Titaniumでの簡単な実装の紹介画面 イベント メソッドタブグループ
    32. 32. Titaniumでの簡単な実装の紹介画面 イベント メソッドタブグループ
    33. 33. Titaniumでの簡単な実装の紹介画面 イベント メソッドタブグループ >タブ
    34. 34. Titaniumでの簡単な実装の紹介画面 イベント メソッドタブグループ >タブ
    35. 35. Titaniumでの簡単な実装の紹介画面 イベント メソッドタブグループ >タブ >ウィンドウ
    36. 36. Titaniumでの簡単な実装の紹介画面 イベント メソッドタブグループ >タブ >ウィンドウ >パーツ
    37. 37. Titaniumでの簡単な実装の紹介画面 イベント メソッドタブグループ >タブ >ウィンドウ >パーツ
    38. 38. Titaniumでの簡単な実装の紹介画面 イベント メソッドタブグループ >タブ >ウィンドウ >パーツ
    39. 39. Titaniumでの簡単な実装の紹介画面 画面についての作り方(従来の書き方) タブグループ>タブ>ウィンドウ>パーツ var tabGroup = Ti.UI.createTabGroup(); tabGroup.open();
    40. 40. Titaniumでの簡単な実装の紹介 画面 画面についての作り方(従来の書き方) タブグループ>タブ>ウィンドウ>パーツvar tab1 = Ti.UI.createTab({ icon:icon_list.png,//画像 title:表示されるテキスト, window: win1 //実際の画面});tabGroup.addTab(tab1);//タブの数だけ繰り返す
    41. 41. Titaniumでの簡単な実装の紹介 画面 画面についての作り方(従来の書き方) タブグループ>タブ>ウィンドウ>パーツvar win2 = Titanium.UI.createWindow({ width: 320,height: 480, top: 0, left: 0, backgroundImage: background.png, url: window2.js,});
    42. 42. Titaniumでの簡単な実装の紹介 画面 画面についての作り方(従来の書き方) タブグループ>タブ>ウィンドウ>パーツvar label = Titanium.UI.createLabel({ height: 30,top: 20,left: 20, font: {fontSize: 14, fontFamily: Helvetica}, text: Titanium});win2.add(label);
    43. 43. Titaniumでの簡単な実装の紹介画面 画面についての作り方(従来の書き方)タブグループ>タブ>ウィンドウ>パーツ大きな物.add(小さいもの)で配置していく 他のパーツはどんな物があるの?
    44. 44. Titaniumでの簡単な実装の紹介乗っけられるパーツの種類mapview テキスト 画像 ボタンWEBページ レイアウト系のパーツ
    45. 45. Titaniumでの簡単な実装の紹介画面 イベント メソッドaddEventListener( イベント名 , function(e) { //ここで命令を呼び出す}
    46. 46. Titaniumでの簡単な実装の紹介 デモいる?イベント 呼び出せるイベント タップ、スワイプ、ダブルタップ、 タッチの開始、タッチ中、タッチ終了など ほぼ何でも
    47. 47. Titaniumでの簡単な実装の紹介画面 イベント メソッドfunction methodName() { //実装}JavaScriptって思ったよりはしっかり書ける言語だと思います(LL言語利用者にとって)
    48. 48. Titaniumでの簡単な実装の紹介メソッド 使えるAPIの例データベース:sqliteでCRUDできますプラットフォーム:IPアドレスやメモリ使用量、バッテリ残量などデバイス:GPS、コンパス、加速度センサー、音楽、アドレス帳、カメラ、クリップボード、キーボードリアルタイム系のゲームやお絵描き以外は、 標準APIで何とかなる
    49. 49. Titaniumでの簡単な実装の紹介 titaniumの実装のフローまとめ
    50. 50. Titaniumでの簡単な実装の紹介 titaniumの実装のフローまとめ UI作って
    51. 51. Titaniumでの簡単な実装の紹介 titaniumの実装のフローまとめ UI作って イベント設定して
    52. 52. Titaniumでの簡単な実装の紹介 titaniumの実装のフローまとめ UI作って イベント設定して 命令を実行する
    53. 53. 今日のアジェンダ Titaniumでの簡単な実装の紹介 画面 イベント メソッド Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介 (時間無いかも)
    54. 54. 今日のアジェンダ Titaniumでの簡単な実装の紹介 画面 イベント メソッド Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介 (時間無いかも)
    55. 55. 最近のTitaniumでの書き方
    56. 56. なんでこういう変化が起きたのか1.マルチコンテキストの弊害2.色んな物への対応3.より本格的になってきた
    57. 57. なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります2.色んな物への対応3.より本格的になってきた
    58. 58. なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります 引用:小さな Titanium Mobile の読み物2.色んな物への対応3.より本格的になってきた
    59. 59. なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります 引用:小さな Titanium Mobile の読み物2.色んな物への対応デバイスが増えて、このままだとソースが複雑に。(tablet、iPad、blackberry、mobile web対応が可能)3.より本格的になってきた
    60. 60. なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります 引用:小さな Titanium Mobile の読み物2.色んな物への対応デバイスが増えて、このままだとソースが複雑に。(tablet、iPad、blackberry、mobile web対応が可能)3.より本格的になってきた大規模化すると名前空間が汚染されていってしまう
    61. 61. なんでこういう変化が起きたのか1.マルチコンテキストの弊害異なる Window の間で情報のやりとりを行うときに大体ハマります 引用:小さな Titanium Mobile の読み物2.色んな物への対応デバイスが増えて、このままだとソースが複雑に。(tablet、iPad、blackberry、mobile web対応が可能)3.より本格的になってきた大規模化すると名前空間が汚染されていってしまう 引用:BNApp eBOOK(公式の電子書籍)
    62. 62. titaniumの現在のベストプラクティス シングル CommonJS コンテキスト
    63. 63. シングルコンテキストとは?commonjsで何を取り入れているの?
    64. 64. シングルコンテキストとは? 実行時に、全部app.jsにファイルが展開されるcommonjsで何を取り入れているの?
    65. 65. シングルコンテキストとは? 実行時に、全部app.jsにファイルが展開されるcommonjsで何を取り入れているの? module
    66. 66. 変化を受けた部分その1
    67. 67. 変化を受けた部分その1 ファイル構成
    68. 68. 変化を受けた部分その1 ファイル構成 Resources app.js 一番最初に呼ばれるファイル db.js データベースを呼ぶファイル ui common 共通 handheld スマフォ tablet タブレット
    69. 69. CommonJS:module in Titanium モジュールの作り方 モジュールの呼び出し方
    70. 70. モジュールの作り方 作り方二通りモジュールの呼び出し方1.exports = function methodName(hikisuu) { //実装}2.module.exports = methodName;
    71. 71. モジュールの作り方 作り方二通りモジュールの呼び出し方1.exports = function methodName(hikisuu) { //実装}2.module.exports = methodName; 違いは何?
    72. 72. モジュールの作り方 引用:http://d.hatena.ne.jp/donayama/20111230/ 定義 commonjs_modules_in_titaniumexportsモジュール内に存在する複数の変数に対して外部に公開されるインタフェイスを付与することができるmodule.exportsモジュール内に存在する単一のオブジェクトに対して外部に公開されるインタフェイスを付与することができる
    73. 73. モジュールの作り方 leftyweapon的解釈exports メソッドや変数のみをモジュール化するのに 使っているmodule.exportsオブジェクトを生成するのに使っているコンストラクタのような役割(画面の生成とか)
    74. 74. モジュールの作り方 leftyweapon的解釈exports メソッドや変数のみをモジュール化するのに 使っている 険 !危 る なmodule.exports 混 ぜオブジェクトを生成するのに使っているコンストラクタのような役割(画面の生成とか)
    75. 75. モジュールの作り方 leftyweapon的解釈exports メソッドや変数のみをモジュール化するのに 使っている 険 !危 る なmodule.exports 混 ぜオブジェクトを生成するのに使っているコンストラクタのような役割(画面の生成とか) 一つのファイルの中に2つの方式を 混ぜない(これ本当!)
    76. 76. モジュールの作り方 exports 実装例exports.selectListItems = function (_flg) { var db = Ti.Database.open(DATABASE_NAME); var rows =db.execute(select ROWID,* from list where flg = ?,_flg ); rowData = []; while (rows.isValidRow()) { rowData.push({ id: rows.fieldByName(ROWID), name:rows.fieldByName(list), }) rows.next(); } db.close(); return rowData;}
    77. 77. モジュールの作り方 exports 実装例exports.selectListItems = function (_flg) {}
    78. 78. モジュールの作り方module.exports 実装例 function ApplicationWindow() { var self = Ti.UI.createWindow({ backgroundColor:#ffffff }); return self; }; module.exports = ApplicationWindow;
    79. 79. モジュールの呼び出し方 下準備>呼び出しrequireして、外部のファイルのファイルを取り込む require( ui/handheld/startwindow ) 緑 の中は、ファイル名を書くけど.jsつけない
    80. 80. モジュールの呼び出し方 下準備>呼び出しexports1.var db =require( db );2.var selectListItems = db.selectListItems();module.exports1.var window = require( ui/handheld/window )2.new Window().open();
    81. 81. CommonJSまとめCommonJSは、Moduleが実装されている モジュールを作る モジュールを呼び出す プログラマーにとっては、 気持ちよく書けるようになった いくつかの公式サンプルを写経すれば、 デザイナーでも怖くない
    82. 82. 今日のアジェンダ Titaniumでの簡単な実装の紹介 画面 イベント メソッド Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介 (時間無いかも)
    83. 83. 今日のアジェンダ Titaniumでの簡単な実装の紹介 画面 イベント メソッド Common JSによって変わる部分 電子書籍版の中の面白いTipsだけ紹介 (時間無いかも)
    84. 84. 電子書籍版の中の面白いTipsだけ紹介Javascriptの書き方そのもののTipsDBについてTitatanium特有のTipsその他の仕組み
    85. 85. 引用:JavaScript Developement Primer電子書籍版の中の面白いTipsだけ紹介Javascriptの書き方そのもののTips1.即時関数、三項演算子 (略2.for文の書き方でi<array.lentghを使わない3.if文の判定===を使う
    86. 86. 引用:JavaScript Developement Primer電子書籍版の中の面白いTipsだけ紹介 Javascriptの書き方そのもののTips2.for文の書き方でi<array.lentghを使わない 理由:毎回array.lengthを実行するから for(var i=0,j=array.length; i<j; i++ { }
    87. 87. 引用:JavaScript Developement Primer電子書籍版の中の面白いTipsだけ紹介 Javascriptの書き方そのもののTips2.for文の書き方でi<array.lentghを使わない 理由:毎回array.lengthを実行するから for(var i=0,j=array.length; i<j; i++ { 僕はPython好きなので知らなかった } for x in iterator: (Pythonに閉じる}は無い!)
    88. 88. 引用:JavaScript Developement Primer 電子書籍版の中の面白いTipsだけ紹介 Javascriptの書き方そのもののTips 3.if文の判定===を使うvar testme = 1;if(testme == 1) {! // this will be executed because 1 isconverted to an integer!}
    89. 89. 引用:JavaScript Developement Primer 電子書籍版の中の面白いTipsだけ紹介 Javascriptの書き方そのもののTips 3.if文の判定===を使う==を使うと型変換されてしまう!という衝撃の事実var testme = 1;if(testme == 1) {! // this will be executed because 1 isconverted to an integer!}
    90. 90. 引用:working with a SQLite Database電子書籍版の中の面白いTipsだけ紹介 DBについて1.installを使う事2.データベースに初期データを詰め込みすぎない3.updateやinsertはトランザクション使うと処理速度が改善する4.iCloud対応
    91. 91. 引用:working with a SQLite Database電子書籍版の中の面白いTipsだけ紹介 DBについて1.installを使う事 テーブルが無ければSQLを流して作る というのが本のサンプルに書いてある毎回起動時にSQLが走るのでもったいない 事前にDB作って、パフォーマンスアップ
    92. 92. 引用:working with a SQLite Database電子書籍版の中の面白いTipsだけ紹介 DBについて2.データベースに初期データを詰め込みすぎない AppStoreのダウンロード時に大量の データを配布しない3.updateやinsertはトランザクション使うと処理速度が改善する
    93. 93. 引用:working with a SQLite Database 電子書籍版の中の面白いTipsだけ紹介 DBについて 4.iCloud対応 書き方によっては、リジェクトされるとりあえずの対応(iCloud使わないと明記する事で対応) db.file.setRemoteBackup(false);詳細に書いてくださっている日本語のページが。感謝! http://selfkleptomaniac.org/archives/1857
    94. 94. 引用:Best Practice and Recommendations電子書籍版の中の面白いTipsだけ紹介Titatanium特有のTips1.Titanium Prototypesを拡張しちゃダメ2.個人情報を.jsじゃないファイルに入れちゃダメ3.システムプロパティを頻繁に呼ぶとパフォーマンスが落ちる
    95. 95. 引用:Best Practice and Recommendations電子書籍版の中の面白いTipsだけ紹介Titatanium特有のTips1.Titanium Prototypesを拡張しちゃダメ純粋なJavaScriptのオブジェクトじゃないから拡張しちゃうとどうなっても知らないよ
    96. 96. 引用:Best Practice and Recommendations 電子書籍版の中の面白いTipsだけ紹介 Titatanium特有のTips2.個人情報とか?.jsじゃないファイルに入れちゃダメ (この辺は訳に自信がありません) 逆コンパイルされるとアウト。
    97. 97. 引用:Best Practice and Recommendations電子書籍版の中の面白いTipsだけ紹介Titatanium特有のTips3.システムプロパティを頻繁に呼ぶとパフォーマンスが落ちる ローカル変数に落とし込みなさい システムプロパティには、プラットフォーム だったり、ハードウェアの情報などが 入っている
    98. 98. 引用:Best Practice and Recommendations電子書籍版の中の面白いTipsだけ紹介その他の仕組みrequireするとキャッシュされるexportsすると変数がプライベートのスコープを持つようになる(具体的には書いてなかった)MVCフレームワークがある
    99. 99. 終わり
    100. 100. まだ時間ある?
    101. 101. One more things
    102. 102. Xib2Js2.0and TiMockreleased http://blog.frogonmobile.com/2012/05/xib2js20-and-timock-released/
    103. 103. XcodeのStoryBoardで作ったソースファイルをTitaniumのJavaScriptへ変換 GUIでシャカシャカUIが作れる優れもの
    104. 104. XcodeのStoryBoardで作ったソースファイルをTitaniumのJavaScriptへ変換 GUIでシャカシャカUIが作れる優れもの 待望のCommonJS対応
    105. 105. 著者は日本人なのでドキュメントもあるし、Twitterフォローするもよし twitterID:@daoki2 TiMockというのも同時リリース ですごいらしいよ
    106. 106. Titanium界からはこんなコメントがこのライトニングトークで一番かっこよかったのは @daoki2 さんの Xib2Js です。 小さな Titanium Mobile の読み物 著者さんよりxib2jsが便利そうだった。ただ変換するだけじゃなくて ∼一部略∼至れり尽くせり。 http://blog.makotokw.com/2012/04/21/titanium-mobile-2-0-%E3%83%AD%E3%83%BC%E3%83%B3%E3%83%81%E8%A8%98%E5%BF %B5%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%9F/ Titanium 2.0ローンチ記念イベントレポートより
    107. 107. 続きはWEBで xib2js & Timockで検索
    108. 108. 本当に終わり。ありがとうございました
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×