@thorikiriのてょりっき

@thorikiriがWebとかAndroidとかの技術ネタや本を読んだブログです

Titanium Mobileで作るiphone/Androidアプリ勉強会&ライブコーディングに行ってきました #titaniumjp #webcat

Titanium Mobileで作るiphone/Androidアプリ勉強会&ライブコーディング : ATND
先日に行われたローンチイベントにも行きましたし、何度かイベントに行ってるので、そこでメモってないこととか、忘れてたこととかをメモしておきます。

メモとか

  • 事例
  • Titaniumでグラグとか書きたい時どうするの?
    • Titaniumはグラフィック系をガリガリやるのは苦手です
    • HTML5使ってグラフ書いて、WebViewとかで表示する方法がある
    • Moduleを使う
      • 誰か一人がObjective-CとかJavaとかを書けるのであればOKで、プロジェクトメンバー全員が使える必要はない
  • どんな所でOS毎の書き分けするの?
    • 色を変えたりするので書き分ける。iOSだったら白ベース、Androidなら黒ベース。
    • iOSなら戻るボタンを左上につける。Androidならメニューボタンに対応する。
    • アニメーションとかつけすぎると、共有出来ないコードが3割位になってしまう
  • ライブコーディング
    • サンプルに含まれるTODO ListのアプリをTitanium2.0から使えるCloud Serviceと連携させるのをライブコーディングする
    • 2.0からtiapp.xmlにCloudServiceの項目が追加になっています。APIのキーを取得出来ます。
      • 現在はバグでインポートしたプロジェクトではうまく動作しないので、新しくプロジェクトを作って、コードをコピーしましょう。
      • ログインしてcloud servicesで作られているのが確認出来ます。
    • Go to Docsでドキュメントのページが見れます
      • 日本語化するかは今のところ検討中らしいです
    • var Cloud = require('ti.cloud');をコードに入れると使い始めることが出来る
    • ユーザ登録はこんな感じのコード → Titanium 2.X - Appcelerator Docs
    • 今回はFacebookで認証する。FacebookのアプリのIDが必要。 → Titanium 2.X - Appcelerator Docs
    • 汎用DBはObjectsを使う。 → Titanium 2.X - Appcelerator Docs
      • データを挿入するには、Cloud.Objects.create()にclassname(MongoDBのCollection名)とfieldsにJSONオブジェクトを入れる。あとはコールバックを指定する。
      • データを検索するには、Cloud.Objects.query()にclassname、page、per_page、whereとコールバックを指定する。
      • データを更新するには、Cloud.Objects.update()にclassname、id、fieldsとコールバックを指定する。
      • データを削除するには、Cloud.Objects.remove()にclassname、idとコールバックを指定する。
    • 今回はDBに登録する処理をクラウドに置き換えた。
      • DBに登録する処理は同期処理だが、クラウドへは非同期処理で行う必要があり、returnは使えないので、コールバックで表示制御を行う必要がある。
  • cloud serviceはまだ正式リリースされていません。
    • 6月に正式リリースされます。6月末までは無料で使えます。
    • 料金については、先日公開していたかもしれないが、今は非公開になっているみたいです。
      • 常識的な値段設定っぽいです。
    • バグってたら教えて下さい。
  • Q&A
    • cloud serviceはTitaniumからだけしか使えないの?
      • 使えます!Webからでも使えるようなAPI準備しています。
    • Androidの機種依存とかどうすればいいの?
      • Androidの機種依存の問題はTitaniumでも発生します。
      • Module等で対応するしかないと思います
    • mobilewebでのIE対応は?
      • mobileなので、webkitベースです。FFも対応してるかも。なのでIEはサポートしていません。
      • IE10になれば、それなりになるかも知れません。
      • windowsphoneは対応しないので、mobilewebで取り組む方針

以前に行ったTitanium関連のイベント

Titanium Mobile iPhone/Androidアプリ開発入門―JavaScriptだけで作る

Titanium Mobile iPhone/Androidアプリ開発入門―JavaScriptだけで作る

Titanium Mobileで開発するiPhone/Androidアプリ (Smart Mobile Developer)

Titanium Mobileで開発するiPhone/Androidアプリ (Smart Mobile Developer)

Appcelerator Titanium Smartphone App Development Cookbook

Appcelerator Titanium Smartphone App Development Cookbook