• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Titanium Development
 

Titanium Development

on

  • 1,492 views

今年はじめにTitaniumにて開発する人に行った資料を公開します。

今年はじめにTitaniumにて開発する人に行った資料を公開します。

Statistics

Views

Total Views
1,492
Views on SlideShare
1,400
Embed Views
92

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 92

http://www.johnnydaisuke.info 83
http://www55.jimdo.com 6
http://www13.jimdo.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Cut and paste wsdl path into browser window Right click and select view source
  • Cut and paste wsdl path into browser window Right click and select view source

Titanium Development Titanium Development Presentation Transcript

  • 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] 本日は、 ありがとうございました