狠狠撸

狠狠撸Share a Scribd company logo
Titanium and  Intalio Version 1.0 .0 Last Changed on: 07.03.2011
Index Contents   : Titanium Development  Demonstration
Titanium
I and Titanium 何故、私は Titanium について、調査していたのか? 建前:技術的に、かつモバイル開発に興味があった為 本音:実案件の相談があった為 現在、コンテンツの開発を実施している為、詳細を述べる事ができませんが、今年中に Apple Store に申請し、皆さんに利用して頂く事が可能 Titanium の勉強会でも上記リリース後には一応発表予定(依頼あり) Titanium では事例募集中との事 Intalio の仕事とは関係がなく、ほぼ年末年始は Titanium の調査 + 要件定義書と基本設計書の作成を担当(以降は別の方が担当) 調査を行う時、 Titanium でデモンストレーション 用アプリケーションを構築
I and Titanium 当初( 2010 年 10 月)は、 Objective-C を利用する事を想定していたが、以下の問題が発生 知識不足 技術者不足 コスト高 Apple Store へ申請フロー不明 iPhone 開発を経験した人を見つける事が困難な上に、 Objective-C という新言語への対応 iPhone 開発の書籍を読みましたが、開発期間が想像以上にかかると判断
I and Titanium オフショア開発への依頼不可 困った時のオフショア頼み、と思い、相談しましたが、 iPhone の開発経験はなく、興味あるので、やりたい、という回答(距離的な問題より、不可) Apple Store へ登録する事が必須であり、画面サイズに合う HTML で構築した Web アプリは不可
I and Titanium 2 事件が発生 Windows から Mac へ移行 Titanium 発見 今までは Windows の PC を利用していましたが、完全に故障し、修理不可 上記を機に、 Mac Pro に変更し、かつ XCode を利用できる環境構築 実際に XCode で画面等を作成しましたが、想像以上に面倒で、かつデバック方法等が不明
I and Titanium スマートフォン開発の記事(@ IT )より Titanium の存在 Titanium が動く環境を作り、試した所、短期間での開発が可能と判断 開発コスト: JavaScript の知識があれば、対応可能、という事で敷居が低い 実績: Apple Store へ申請が完了したアプリケーションも存在 知識: Kitchen Sink があり、ソースコードを読む限り、対応可能 開発期間: IDE がないが、複雑な画面がない限りは問題なし 総合的に判断し、コストも先方が考えている範囲内での対応が可能
Titanium  提出したレポートより スマートフォンのアプリケーション開発環境 iPhone/iPod/iPad であれば Objective-C, Android であれば Java を用いて作成するネイティブアプリケーションが、 JavaScript のみで開発が可能 2010 年 9 月、 Apple 側のデベロッパーに対する規約の変更により、 XCode 以外での開発が解禁 Titanium を利用し、開発したアプリケーションが Apple Store に存在 メモリー管理を Titanium 側で吸収( Objective-C の場合、自ら対応) コーディング時、コードが非常に簡潔になり、開発効率は 10 倍以上
Titanium ブログ:  http://bulblub.com   より抜粋
Titanium  提出したレポートより Appcelerator (Titanium) and Aptana  IDE が 3 月下旬にリリース予定
Titanium Reports  提出したレポートより デモンストレーション用の画面を作成し、開発効率?ビジネスでの利用価値等を調査 有償のサポートは利用せず、全て独自に調査 有償のサポートは英語のみになり、サンプルのソースコードが無料で公開されている為、サンプルコードを参照 検証手順方法 要件に該当する画面イメージ作成 サンプルのソースコードから上記に該当するコンポーネント調査 該当のサンプルのソースコードを発見 デモンストレーション用の画面を実装 上記を作成する時の時間、プロトタイプレベル作成時の見積
Titanium Reports  提出したレポートより 長所: JavaScript で全てコーディングが可能 XCode を利用する場合と比較した場合、 10 倍以上 の開発効率化が可能 用意されたコンポーネント(定型フォーマット)を利用する事で開発効率を上げる為、 業務(ビジネス)向け のスマートフォン用のアプリケーションを構築する場合には最適 リッチクライアント系のアプリケーションの開発経験があれば、すぐに理解が可能 Titanium を利用したアプリケーションを一度経験すれば、次回から開発コストも下がる
Titanium Reports  提出したレポートより 短所: ドキュメントが少なく、全てソースコードを解読する能力が必須 ロードマップ等が不明の為、独自に拡張した機能を作成 リアルタイム性を求められるアプリケーションは厳しい パフォーマンスを求められるアプリケーションも厳しい(重い) US の OSS がベースである為、 US とのやり取りを行った経験が必須 結論: 短納期?低コストという条件が存在する場合、利用する価値はあると考えられる 自分で全て解決する能力が必須( XCode の解読力ではなく、問題に対して)
Development
Investigation Titanium 2011 年 1 月に開催された Titanium 新年会に参加し、話をした方、全員が同様 Mac が動く環境準備-> Mac の購入 iPhone 開発が可能な開発環境構築(数 GB の SDK のダウンロード) Titanium Developer をインストール 有志の方が作成した日本語版 Titanium の資料を参照 Kitchen  Sink のダウンロード、動作確認 アプリケーション作成 iPod Touch を使用し、実機確認
Investigation Titanium 日本語版 Titanium の資料(表紙がオライリー)の発見の有無がある意味、ポイント http://code.google.com/p/titanium-mobile-doc-ja/ Titanium も Intalio と同様 ドキュメントはない(存在する場合は英語のみ) 実案件では、 Kitchen Sink のソースコードをコピー&ベースし、動くデモプログラムを作成 同時に、技術的な調査も実施(この時、 Apple Developer ( 99 ドル)に登録) 登録時、日本語を入力すると、問題が発生し、結局 Apple 側とやり取りを行い、 2 日後
Trouble In Titanium 2011 年 1 月に開催された Titanium 新年会に参加し、話をした方、全員が同様 動かない場合、 Titanium 再起動 再起動した後も動かない場合、 Build フォルダー以下を削除( iPhone フォルダーは残す) SDK をバージョンアップする際、 SDK の上書きは不可 Android 版は動かない為、実案件で必要ではない場合、触れない 最近バージョンにて動かない場合、旧バージョンの SDK に戻し、実行 画像を表示する場合、 Windows で加工した画像は不可( Mac で再加工) Google で検索しますと、上記以外のトラブル対応方法が記載されています
Trouble In Titanium 各バージョンを用意
Trouble In Titanium build 以下のフォルダーにて、 android を削除 し 、 android は非表示 ビルド時にエラーが表示される等の現象が発生する場合、 iphone フォルダー以下を削除 Xcodeproj を選択した場合、 XCode にて詳細確認が可能
Technique In Titanium コンテンツダウンロード時の制約 20MB を超える場合、 WIFI のみ 画像ファイルの容量制約 GIF, PNG 3MB 以下 JPEG 32MB 以下 HTML, CSS, JavaScript 10MB 以下 指での操作 ボタンは大きいボタン 文字<アイコン 処理時間に依存する為、画像ファイルは多用不可 ローカルにデータベースがあり、 SQLite を利用( API を利用し、 CRUD 操作) iPhone と Android のソースコードは別に管理( IF 文で分岐しない)
Technique In Titanium ログレベル Debug デバックレベル(開発者が設定) Info 情報レベル(デフォルト) Warn 警告レベル Error エラーレベル(製品出荷時) 起動時にログレベルを設定する事が可能 ログを大量に出力すると、処理時間が遅延する為、最小限のみ Titanium.API.debug()  とコーディングする事でログ出力が可能
Technique In Titanium マルチ言语対応
Technique In Titanium マルチ言语対応
Technique In Titanium 画面サイズ 320×480 ピクセル ステータス 20 ピクセル 上記タイトル 44 ピクセル URL 付タイトル 65 ピクセル タブ グループ 48 ピクセル システムタブ 40 ピクセル
Technique In Titanium メイン画面 App.js コンテンツ Tab コンテンツ Tab コンテンツ Tab コンテンツ Tab コンテンツ Tab コンテンツ Tab コンテンツ Tab タブ TabGroup ウィンドウ Window ラベル Label テキスト Text ボタン Button
Technique In Titanium コンテンツ間のデータの受け渡し方法 Titanium.App.Properties を利用する事でも可能 保存する事が可能なタイプ  - boolean, int, double, array, string 設定: Titanium.App.Properties.setString(‘Key 名’ ,  変数名 ( 値 )); 存在チェック: if (Titanium.App.Properties.hasProperty('Key 名 ')) {    取得:     value = Titanium.App.Properties.getString(’ Key 名 '); }
Technique In Titanium  新年会より チームで共有 tabgroup tab tab tab チーム開発時の構成 個人開発時の構成 app.js common1.js common2.js common3.js tab tab tab tabgroup app.js tab tab tab Cache Ti.App.xxx に設定 変数の共有が可能
Technique In Titanium  新年会より Ti.App はグローバルなオブジェクト 上記に、メソッドとプロパティーを追加する事で、アプリケーション内のどこからでも使用する事が可能 Web アプリケーションにおいて、セッション変数的な利用方法 app.js Ti.App.sugai = “daisuke sugai”; test.js var data = Ti.App.sugai; 変数  var  には daisuke sugai  が保存
Technique In Titanium  新年会より UI とロジックの分離 styles.js barcodeAccessWindow.js macAccessWindows.js
Technique In Titanium  新年会より Aptana (version 2) + Titanium AutoComplete
Demonstration
Tabelog structure In Titanium tabgroup tab tab tab 構成 app.js タブグループ定義 store.js 店舗情報取得 食べログ API 呼出 storelist.js 特定の店舗情報取得  Intalio Cloud へ登録 kuchikomi.js 口コミ情報取得 食べログ API 呼出 commentlist.js 特定の店舗の口コミ情報取得  Intalio Cloud へ登録 task.js Intalio Cloud へ登録 constant.js 固定値設定 app.js store.js task.js storelist.js kuchikomi.js constant.js commentlist.js
Diagram 全体図は、以下の通りになります。 経営者 店長 食べログ パブリック Intalio Cloud プライベート 店舗、口コミ情報登録 店舗、口コミ情報参照 店舗、口コミ情報分析
RegGoods structure In Titanium tabgroup tab tab 構成 app.js タブグループ定義 macAccessWindow.js Mac カロリー定義 barcodeAccessWindow.js Google App Engine, Intalio Cloud へアクセス regGoods.js Goods 用オブジェクト定義  Get/Set の設定 constant.js 固定値設定 styles.js UI 定義 app.js macAccessWindow.js regGoods.js barcodeAccessWindow.js constant.js styles.js
Diagram 全体図は、以下の通りになります。 製品管理者 現場 製品マスター Google App Engine で実現(デモ用) Intalio Cloud プライベート バーコード + 製品マスターデータ登録 バーコードデータの存在チェック 製品情報分析 新規情報追加登録 製品情報出力
Google App Engine Web アプリケーションを Google のインフラ上に作成する事が可能 Google がインフラの構築、維持、管理等を行い為、インフラの知識は不要 Python と Java が現在はサポート( JVM で稼働する Jruby, Scala,Groovy も稼働) Google に登録した後、無料で利用する事が可能 ( 一定の基準以内) SI ユーザー Google
最後に Titanium は短期間でスマートフォンのアプリケーションを開発する時、非常に効率的です。特にモックアップであれば、すぐに可能です。 データベース、 HTTP アクセスにおいて、 Titanium が API を用意しており、開発スピードが上がります。 Titanium のサンプルでは、クエステトラさんのモバイルのソースコードが公開されており、今まで参照したソースコードでは一番再利用を考えた構成になっております。 Intalio は PhoneGAP を使用し、スマートフォンの Intalio Cloud 版を開発するという話は聞きましたが、詳細は不明です。 Titanium は勉強会等も実施され、 Twitter のハッシュタグにて質問する事が可能ですが、コミュニティーサイトに英語にて質問する方が早いと思います( Intalio 同様に)。
ご質問?リクエストがありましたら、 Intalio Cloud Expert にご連絡をお願いします mailto:  [email_address] mailto:  [email_address] 本日は、 ありがとうございました

More Related Content

Titanium Development

  • 1. Titanium and Intalio Version 1.0 .0 Last Changed on: 07.03.2011
  • 2. Index Contents   : Titanium Development Demonstration
  • 4. I and Titanium 何故、私は Titanium について、調査していたのか? 建前:技術的に、かつモバイル開発に興味があった為 本音:実案件の相談があった為 現在、コンテンツの開発を実施している為、詳細を述べる事ができませんが、今年中に Apple Store に申請し、皆さんに利用して頂く事が可能 Titanium の勉強会でも上記リリース後には一応発表予定(依頼あり) Titanium では事例募集中との事 Intalio の仕事とは関係がなく、ほぼ年末年始は Titanium の調査 + 要件定義書と基本設計書の作成を担当(以降は別の方が担当) 調査を行う時、 Titanium でデモンストレーション 用アプリケーションを構築
  • 5. I and Titanium 当初( 2010 年 10 月)は、 Objective-C を利用する事を想定していたが、以下の問題が発生 知識不足 技術者不足 コスト高 Apple Store へ申請フロー不明 iPhone 開発を経験した人を見つける事が困難な上に、 Objective-C という新言語への対応 iPhone 開発の書籍を読みましたが、開発期間が想像以上にかかると判断
  • 6. I and Titanium オフショア開発への依頼不可 困った時のオフショア頼み、と思い、相談しましたが、 iPhone の開発経験はなく、興味あるので、やりたい、という回答(距離的な問題より、不可) Apple Store へ登録する事が必須であり、画面サイズに合う HTML で構築した Web アプリは不可
  • 7. I and Titanium 2 事件が発生 Windows から Mac へ移行 Titanium 発見 今までは Windows の PC を利用していましたが、完全に故障し、修理不可 上記を機に、 Mac Pro に変更し、かつ XCode を利用できる環境構築 実際に XCode で画面等を作成しましたが、想像以上に面倒で、かつデバック方法等が不明
  • 8. I and Titanium スマートフォン開発の記事(@ IT )より Titanium の存在 Titanium が動く環境を作り、試した所、短期間での開発が可能と判断 開発コスト: JavaScript の知識があれば、対応可能、という事で敷居が低い 実績: Apple Store へ申請が完了したアプリケーションも存在 知識: Kitchen Sink があり、ソースコードを読む限り、対応可能 開発期間: IDE がないが、複雑な画面がない限りは問題なし 総合的に判断し、コストも先方が考えている範囲内での対応が可能
  • 9. Titanium  提出したレポートより スマートフォンのアプリケーション開発環境 iPhone/iPod/iPad であれば Objective-C, Android であれば Java を用いて作成するネイティブアプリケーションが、 JavaScript のみで開発が可能 2010 年 9 月、 Apple 側のデベロッパーに対する規約の変更により、 XCode 以外での開発が解禁 Titanium を利用し、開発したアプリケーションが Apple Store に存在 メモリー管理を Titanium 側で吸収( Objective-C の場合、自ら対応) コーディング時、コードが非常に簡潔になり、開発効率は 10 倍以上
  • 10. Titanium ブログ: http://bulblub.com より抜粋
  • 11. Titanium  提出したレポートより Appcelerator (Titanium) and Aptana IDE が 3 月下旬にリリース予定
  • 12. Titanium Reports  提出したレポートより デモンストレーション用の画面を作成し、開発効率?ビジネスでの利用価値等を調査 有償のサポートは利用せず、全て独自に調査 有償のサポートは英語のみになり、サンプルのソースコードが無料で公開されている為、サンプルコードを参照 検証手順方法 要件に該当する画面イメージ作成 サンプルのソースコードから上記に該当するコンポーネント調査 該当のサンプルのソースコードを発見 デモンストレーション用の画面を実装 上記を作成する時の時間、プロトタイプレベル作成時の見積
  • 13. Titanium Reports  提出したレポートより 長所: JavaScript で全てコーディングが可能 XCode を利用する場合と比較した場合、 10 倍以上 の開発効率化が可能 用意されたコンポーネント(定型フォーマット)を利用する事で開発効率を上げる為、 業務(ビジネス)向け のスマートフォン用のアプリケーションを構築する場合には最適 リッチクライアント系のアプリケーションの開発経験があれば、すぐに理解が可能 Titanium を利用したアプリケーションを一度経験すれば、次回から開発コストも下がる
  • 14. Titanium Reports  提出したレポートより 短所: ドキュメントが少なく、全てソースコードを解読する能力が必須 ロードマップ等が不明の為、独自に拡張した機能を作成 リアルタイム性を求められるアプリケーションは厳しい パフォーマンスを求められるアプリケーションも厳しい(重い) US の OSS がベースである為、 US とのやり取りを行った経験が必須 結論: 短納期?低コストという条件が存在する場合、利用する価値はあると考えられる 自分で全て解決する能力が必須( XCode の解読力ではなく、問題に対して)
  • 16. Investigation Titanium 2011 年 1 月に開催された Titanium 新年会に参加し、話をした方、全員が同様 Mac が動く環境準備-> Mac の購入 iPhone 開発が可能な開発環境構築(数 GB の SDK のダウンロード) Titanium Developer をインストール 有志の方が作成した日本語版 Titanium の資料を参照 Kitchen Sink のダウンロード、動作確認 アプリケーション作成 iPod Touch を使用し、実機確認
  • 17. Investigation Titanium 日本語版 Titanium の資料(表紙がオライリー)の発見の有無がある意味、ポイント http://code.google.com/p/titanium-mobile-doc-ja/ Titanium も Intalio と同様 ドキュメントはない(存在する場合は英語のみ) 実案件では、 Kitchen Sink のソースコードをコピー&ベースし、動くデモプログラムを作成 同時に、技術的な調査も実施(この時、 Apple Developer ( 99 ドル)に登録) 登録時、日本語を入力すると、問題が発生し、結局 Apple 側とやり取りを行い、 2 日後
  • 18. Trouble In Titanium 2011 年 1 月に開催された Titanium 新年会に参加し、話をした方、全員が同様 動かない場合、 Titanium 再起動 再起動した後も動かない場合、 Build フォルダー以下を削除( iPhone フォルダーは残す) SDK をバージョンアップする際、 SDK の上書きは不可 Android 版は動かない為、実案件で必要ではない場合、触れない 最近バージョンにて動かない場合、旧バージョンの SDK に戻し、実行 画像を表示する場合、 Windows で加工した画像は不可( Mac で再加工) Google で検索しますと、上記以外のトラブル対応方法が記載されています
  • 19. Trouble In Titanium 各バージョンを用意
  • 20. Trouble In Titanium build 以下のフォルダーにて、 android を削除 し 、 android は非表示 ビルド時にエラーが表示される等の現象が発生する場合、 iphone フォルダー以下を削除 Xcodeproj を選択した場合、 XCode にて詳細確認が可能
  • 21. Technique In Titanium コンテンツダウンロード時の制約 20MB を超える場合、 WIFI のみ 画像ファイルの容量制約 GIF, PNG 3MB 以下 JPEG 32MB 以下 HTML, CSS, JavaScript 10MB 以下 指での操作 ボタンは大きいボタン 文字<アイコン 処理時間に依存する為、画像ファイルは多用不可 ローカルにデータベースがあり、 SQLite を利用( API を利用し、 CRUD 操作) iPhone と Android のソースコードは別に管理( IF 文で分岐しない)
  • 22. Technique In Titanium ログレベル Debug デバックレベル(開発者が設定) Info 情報レベル(デフォルト) Warn 警告レベル Error エラーレベル(製品出荷時) 起動時にログレベルを設定する事が可能 ログを大量に出力すると、処理時間が遅延する為、最小限のみ Titanium.API.debug() とコーディングする事でログ出力が可能
  • 23. Technique In Titanium マルチ言语対応
  • 24. Technique In Titanium マルチ言语対応
  • 25. Technique In Titanium 画面サイズ 320×480 ピクセル ステータス 20 ピクセル 上記タイトル 44 ピクセル URL 付タイトル 65 ピクセル タブ グループ 48 ピクセル システムタブ 40 ピクセル
  • 26. Technique In Titanium メイン画面 App.js コンテンツ Tab コンテンツ Tab コンテンツ Tab コンテンツ Tab コンテンツ Tab コンテンツ Tab コンテンツ Tab タブ TabGroup ウィンドウ Window ラベル Label テキスト Text ボタン Button
  • 27. Technique In Titanium コンテンツ間のデータの受け渡し方法 Titanium.App.Properties を利用する事でも可能 保存する事が可能なタイプ - boolean, int, double, array, string 設定: Titanium.App.Properties.setString(‘Key 名’ , 変数名 ( 値 )); 存在チェック: if (Titanium.App.Properties.hasProperty('Key 名 ')) {   取得:    value = Titanium.App.Properties.getString(’ Key 名 '); }
  • 28. Technique In Titanium  新年会より チームで共有 tabgroup tab tab tab チーム開発時の構成 個人開発時の構成 app.js common1.js common2.js common3.js tab tab tab tabgroup app.js tab tab tab Cache Ti.App.xxx に設定 変数の共有が可能
  • 29. Technique In Titanium  新年会より Ti.App はグローバルなオブジェクト 上記に、メソッドとプロパティーを追加する事で、アプリケーション内のどこからでも使用する事が可能 Web アプリケーションにおいて、セッション変数的な利用方法 app.js Ti.App.sugai = “daisuke sugai”; test.js var data = Ti.App.sugai; 変数 var には daisuke sugai が保存
  • 30. Technique In Titanium  新年会より UI とロジックの分離 styles.js barcodeAccessWindow.js macAccessWindows.js
  • 31. Technique In Titanium  新年会より Aptana (version 2) + Titanium AutoComplete
  • 33. Tabelog structure In Titanium tabgroup tab tab tab 構成 app.js タブグループ定義 store.js 店舗情報取得 食べログ API 呼出 storelist.js 特定の店舗情報取得  Intalio Cloud へ登録 kuchikomi.js 口コミ情報取得 食べログ API 呼出 commentlist.js 特定の店舗の口コミ情報取得  Intalio Cloud へ登録 task.js Intalio Cloud へ登録 constant.js 固定値設定 app.js store.js task.js storelist.js kuchikomi.js constant.js commentlist.js
  • 34. Diagram 全体図は、以下の通りになります。 経営者 店長 食べログ パブリック Intalio Cloud プライベート 店舗、口コミ情報登録 店舗、口コミ情報参照 店舗、口コミ情報分析
  • 35. RegGoods structure In Titanium tabgroup tab tab 構成 app.js タブグループ定義 macAccessWindow.js Mac カロリー定義 barcodeAccessWindow.js Google App Engine, Intalio Cloud へアクセス regGoods.js Goods 用オブジェクト定義  Get/Set の設定 constant.js 固定値設定 styles.js UI 定義 app.js macAccessWindow.js regGoods.js barcodeAccessWindow.js constant.js styles.js
  • 36. Diagram 全体図は、以下の通りになります。 製品管理者 現場 製品マスター Google App Engine で実現(デモ用) Intalio Cloud プライベート バーコード + 製品マスターデータ登録 バーコードデータの存在チェック 製品情報分析 新規情報追加登録 製品情報出力
  • 37. Google App Engine Web アプリケーションを Google のインフラ上に作成する事が可能 Google がインフラの構築、維持、管理等を行い為、インフラの知識は不要 Python と Java が現在はサポート( JVM で稼働する Jruby, Scala,Groovy も稼働) Google に登録した後、無料で利用する事が可能 ( 一定の基準以内) SI ユーザー Google
  • 38. 最後に Titanium は短期間でスマートフォンのアプリケーションを開発する時、非常に効率的です。特にモックアップであれば、すぐに可能です。 データベース、 HTTP アクセスにおいて、 Titanium が API を用意しており、開発スピードが上がります。 Titanium のサンプルでは、クエステトラさんのモバイルのソースコードが公開されており、今まで参照したソースコードでは一番再利用を考えた構成になっております。 Intalio は PhoneGAP を使用し、スマートフォンの Intalio Cloud 版を開発するという話は聞きましたが、詳細は不明です。 Titanium は勉強会等も実施され、 Twitter のハッシュタグにて質問する事が可能ですが、コミュニティーサイトに英語にて質問する方が早いと思います( Intalio 同様に)。
  • 39. ご質問?リクエストがありましたら、 Intalio Cloud Expert にご連絡をお願いします mailto: [email_address] mailto: [email_address] 本日は、 ありがとうございました

Editor's Notes

  • #35: Cut and paste wsdl path into browser window Right click and select view source
  • #37: Cut and paste wsdl path into browser window Right click and select view source