document

TitaniumとBaaSを組み合わせたpush機能付きのAndroidアプリを作ろうと思って、環境構築をしたメモ

以下の環境でテストした。

   Mac OS X 10.8.4
   Android SDK Tools ver:22.0.5
   Titanium SDK 2.1.2 or 3.1.3(Titanium Studioに同梱)
   Titanium Studio 3.1

0.前提:Titaniumでiphoneエミュレーターが動く

Titaniumはiphoneと親和性が高いので、まずはiphoneで動くことを確認。 (Xcode入れたり手順はいくつかあるけど、ググればいっぱいできてます。)

KitchenSink?
Titaniumを開発している会社が提供しているBaaSのACS(Appcelerator Cloud Services) 版KitchenSink?が動くことを確認

ACS(Appcelerator Cloud Services) 版KitchenSink?についてはこちら:log/2013-08-05 - weiki (作業ログやそのまとめ) <http://www.goto.info.waseda.ac.jp/~wei/weiki/index.php?log%2F2013-08-05>

BaaSは当初はparseを使おうと思ったが、parseのpush notification機能をクライアントのTitaniumに組み込むのが大変そうだったので、とりあえず、Titanium Studioからワンクリックで使えるACSを採用した。

1.Android SDKのインストール

こちらのサイトを参考にAndroid SDKを入れた:Titanium Studio導入〜Mac OS X編〜 - 日本Androidの会新潟支部 <https://sites.google.com/site/jagniigata/article/workshop/tiworkshop-doc/for-mac>

1.1 Android SDK Managerをダウンロードする

Android SDK | Android Developers <http://developer.android.com/sdk/index.html>

からDLする。最新版はADT Bundle for Macという重いパッケージがデフォルトだが、「USE AN EXISTING IDE」のリンクを選ぶと、SDK Manager単体をDLすることができる。

DL後、解答して、どこかのPATHに置く。例えば

/Developer/Android/android-sdk-macosx

1.2 Android SDK ManagerでSDKをダウンロードする

/Developer/Android/android-sdk-macosx/tools/android 
をダブルクリックで、もしくはコマンドラインから実行します。

そうするとダウンロード選択画面が立ち上がる。

デフォルトでチェックされたパッケージはすべてインストールして、追加として下記のSDKプラットフォームを入れた。

Android 4.0.3(任意)
Android 2.3.3(任意)
Android 2.2(Titaniumで動かすには必須)

なぜかTitaniumは2.2のSDKがないと動かない。

インストールに結構時間がかかった。

パッケージを選んだときの画面

https://lh6.googleusercontent.com/-ZN1hlyV4VMc/UgOsMi_E2bI/AAAAAAAALvg/SL2zCbX1248/s640/2013-08-08%2520android_sdk.jpg

2.Titanium Studioの設定変更

2.1 Titanium StudioでSDKのPATHを登録

Android SDKがインストールされたので、Titanium StudioでそのPATHを登録する必要がある。

Titanium Studio 3からは設定画面が少し変わったので、設定はこのサイト

開発環境をつくるべし! - Titanium StudioではじめるAndroidアプリ開発 <http://titanium-mobile.jimdo.com/titanium-studio%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8Bandroid%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%82%92%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%B9%E3%81%97/>

の中盤辺りの、「Studio>Platforms>Androidをクリックよ。」からが参考になった。

実際PATHの設定も

Preference>Studio>Platforms>Android

にある。

[Android SDK Home]の欄に、SDKのPATHを入力すればOK

/Developer/Android/android-sdk-macosx/

エラーが出たときにこの動画も役に立つ:http://www.youtube.com/watch?v=INrdTyylTdU#at=33

2.2 Android エミュレーター起動

新しくプロジェクトを作るか、既存プロジェクトのtiapp.xmlを変えて、Androidのチェックを入れる。

iPhoneだとスムーズにエミュレーターが起動するのだが、Androidのエミュレーターはいくつかの問題を解決しないと動かない。(Androidのエミュレーターはとても遅いです)

Error generating R.java from manifest

最初に起動すると、このエラーが出てきた。(コンソールで追えない場合は、プロジェクトのbuild.logを見る)

いくつか解決方法があるようだが、下記のサイトの方法で解決した。

Error generating R.java from manifestというエラーがTitanium mobileで発生する場合の対処法|WEBデザイン Tips <http://blog.digital-squad.net/article/367087767.html>

http://stackoverflow.com/questions/16843621/error-generating-r-java-from-manifest

どうやらAndroid SDKの新バージョンが問題のようで
Android SDKディレクトリ内の
/build-tools/17.0.0/
ディレクトリ内のファイルを全て
/platform-tools/
にコピーすることで解決する。

App IDの設定

App IDの設定を

com.xxxx.projectname

としたらうまくいった。参考にしたサイトの例

Project name:testapp
App ID:com.任意のアルファベット.testapp

これが問題かは分からないが、当初 App IDを

com.testapp

としたらうまく動かなかった。

3.実機へインストール

MacでAndroid実機にアプリを転送するための準備|WEBデザイン Tips <http://blog.digital-squad.net/article/270267606.html>

を参考にPATHまで通した。以下の手順はサイトからのコピー

■実機の準備
「設定」 → 「アプリケーション」
「提供元不明のアプリ」をチェック
「開発」 → 「USB」デバッグをチェック
■adbのパスを通す 

ターミナルから~/.bash_profileに
export PATH=$PATH:/Android SDKまでのパス/platform-tools
を追加
変更を反映
 source ~/.bash_profile
パスが通ったか確認
 echo $PATH
追加したパスが表示されればOK

ただし、Xperiaの「提供元不明のアプリ」は場所が違う。設定セキュリティーに入ってた。提供元不明アプリ/デバッグモードの設定箇所を教えてください。(Android4.0.x/Android 4.1.x) - help <http://www.tapnow.jp/support/help/2012/09/android4.html>

それ以降の設定はせずに、

Android端末をUSBでMACにつなげた状態の時に、Titanium Studioの画面でプロジェクトを右クリックして、

Install to Android Device

を選んだら、インストールされてた。

ACSのユーザー認証完了後の画面。やっぱりTitaniumはiphoneに最適化されてて、Androidで動かすと、フォントが小さすぎたり不自然だった。

https://lh4.googleusercontent.com/-ia0c9LtKriE/UgO4kmfijtI/AAAAAAAALwI/jbnT8ccR7Qo/s400/acs.jpg

4.実機へPUSH通知

iOSはユーザー登録する必要があるので、まずはAndroidでやってみた。

下のサイト通りにやったらできた

Push Notification Using ACS (Appcelerator Cloud Service) | Appcelerator Tutorial <http://appceleratortutorial-innogang2.rhcloud.com/?p=162>

TiACSPushNotification?/Resources/ui/common/CloudPush4Android.js at master · uchidak1124/TiACSPushNotification? <https://github.com/uchidak1124/TiACSPushNotification/blob/master/Resources/ui/common/CloudPush4Android.js>

などを参考に

var CloudPush = require('ti.cloudpush');

でライブラリをインクルードして、いろいろやって、

どうにかできたと思う^^

ただし、ti.cloudpushはandroid用のモジュールなのでiOSの時にエラーがでる。if(Ti.Platform.osname == "android"){を使って条件分岐する必要がある

ACS : Push Notification (Module Not Found) » <https://developer.appcelerator.com/question/136385/acs--push-notification-module-not-found>

その後ACSのコンソールからpushして成功

5.別サーバーからACSへREST形式でPUSH命令を送る

appcelarator ACSのRESTをpush_notificationを行う - weiki (作業ログやそのまとめ) <http://www.goto.info.waseda.ac.jp/~wei/weiki/index.php?appcelarator%20%20ACS%A4%CEREST%A4%F2push_notification%A4%F2%B9%D4%A4%A6>

その他参考リンク

Titaniumの設定

MacOSX LionにTitanium Mobile(Studioも)をインストールしたときのメモ(2012-02-06時点) - iPhone/Android対応 at HouseTect?, JavaScript?な情報をあなたに <http://hisasann.com/housetect/2012/02/macosx_liontitanium_mobilestud.html>

Titanium - 実機で起動するまでに遭遇したエラー - | Learn iPhone, iOS, Objective-c, cocos2d and ....? <http://programming-ios.com/titanium-error-provisioning/>

第34回 Titanium 2.0とAppcelerator Cloud Servicesを使ったモバイルアプリの実行:本格派エンジニアの工具箱|gihyo.jp … 技術評論社 <http://gihyo.jp/dev/serial/01/engineer_toolbox/0034?page=2>

第35回 Appcelerator Cloud Servicesと連携するモバイルアプリの作成:本格派エンジニアの工具箱|gihyo.jp … 技術評論社 <http://gihyo.jp/dev/serial/01/engineer_toolbox/0035>


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-18 (水) 16:02:56 (2039d)