Titanium Mobile のバックアップ(No.74)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Titanium Mobile へ行く。
- 1 (2012-11-25 (日) 14:40:49)
- 2 (2012-11-29 (木) 12:07:37)
- 3 (2012-11-30 (金) 07:46:39)
- 4 (2012-12-02 (日) 19:22:28)
- 5 (2012-12-04 (火) 12:57:18)
- 6 (2012-12-08 (土) 05:59:46)
- 7 (2012-12-25 (火) 05:11:22)
- 8 (2012-12-25 (火) 05:31:36)
- 9 (2012-12-28 (金) 16:15:44)
- 10 (2013-01-14 (月) 10:15:00)
- 11 (2013-01-17 (木) 15:51:42)
- 12 (2013-01-26 (土) 04:23:45)
- 13 (2013-02-03 (日) 06:11:26)
- 14 (2013-02-03 (日) 08:10:24)
- 15 (2013-02-06 (水) 09:14:24)
- 16 (2013-02-09 (土) 09:11:49)
- 17 (2013-02-18 (月) 22:56:25)
- 18 (2013-02-21 (木) 01:43:23)
- 19 (2013-02-28 (木) 14:48:51)
- 20 (2013-03-01 (金) 11:45:48)
- 21 (2013-03-02 (土) 17:35:49)
- 22 (2013-03-03 (日) 13:17:33)
- 23 (2013-03-22 (金) 02:35:10)
- 24 (2013-03-22 (金) 05:18:13)
- 25 (2013-03-22 (金) 06:08:02)
- 26 (2013-04-04 (木) 00:30:49)
- 27 (2013-04-08 (月) 22:37:45)
- 28 (2013-04-10 (水) 02:52:50)
- 29 (2013-04-13 (土) 18:56:40)
- 30 (2013-04-23 (火) 17:52:30)
- 31 (2013-04-27 (土) 01:44:47)
- 32 (2013-04-29 (月) 00:28:44)
- 33 (2013-05-14 (火) 10:11:20)
- 34 (2013-06-05 (水) 11:55:42)
- 35 (2013-06-09 (日) 00:14:36)
- 36 (2013-06-12 (水) 18:31:30)
- 37 (2013-06-14 (金) 12:03:46)
- 38 (2013-06-21 (金) 15:22:43)
- 39 (2013-06-21 (金) 23:36:10)
- 40 (2013-06-25 (火) 11:21:01)
- 41 (2013-06-27 (木) 22:07:57)
- 42 (2013-06-29 (土) 15:09:22)
- 43 (2013-07-05 (金) 07:17:49)
- 44 (2013-07-12 (金) 04:28:53)
- 45 (2013-07-14 (日) 09:16:06)
- 46 (2013-07-17 (水) 15:23:18)
- 47 (2013-07-17 (水) 21:26:39)
- 48 (2013-07-28 (日) 21:40:13)
- 49 (2013-07-29 (月) 03:57:33)
- 50 (2013-07-30 (火) 23:18:57)
- 51 (2013-07-31 (水) 06:40:19)
- 52 (2013-08-08 (木) 16:17:23)
- 53 (2013-08-10 (土) 17:59:40)
- 54 (2013-08-14 (水) 06:56:18)
- 55 (2013-08-17 (土) 02:51:09)
- 56 (2013-08-17 (土) 08:31:09)
- 57 (2013-08-18 (日) 12:44:35)
- 58 (2013-08-18 (日) 16:00:03)
- 59 (2013-08-25 (日) 10:55:19)
- 60 (2013-08-31 (土) 14:18:51)
- 61 (2013-09-01 (日) 10:41:40)
- 62 (2013-09-13 (金) 02:22:13)
- 63 (2013-09-19 (木) 16:04:42)
- 64 (2013-10-21 (月) 08:15:31)
- 65 (2013-10-23 (水) 03:52:17)
- 66 (2013-12-31 (火) 03:28:33)
- 67 (2014-01-21 (火) 03:15:03)
- 68 (2014-02-05 (水) 13:45:23)
- 69 (2014-02-06 (木) 01:17:56)
- 70 (2014-02-06 (木) 11:49:05)
- 71 (2014-02-06 (木) 23:58:45)
- 72 (2014-02-07 (金) 09:50:43)
- 73 (2014-02-25 (火) 08:23:54)
- 74 (2014-03-02 (日) 09:32:32)
- 75 (2014-03-06 (木) 00:38:50)
- 76 (2014-03-06 (木) 14:01:07)
- 77 (2014-03-09 (日) 08:51:16)
- 78 (2014-03-11 (火) 13:36:14)
- 79 (2014-03-13 (木) 11:15:29)
- 80 (2014-03-18 (火) 13:22:07)
- 81 (2014-03-19 (水) 01:52:24)
- 82 (2014-03-19 (水) 07:26:07)
- 83 (2014-03-26 (水) 10:05:22)
- 84 (2014-04-24 (木) 05:03:14)
- 85 (2014-04-30 (水) 00:52:57)
- 86 (2014-05-13 (火) 04:49:06)
- 87 (2014-06-26 (木) 00:24:50)
- 88 (2014-06-27 (金) 18:27:15)
- 89 (2014-06-30 (月) 23:49:35)
- 90 (2014-07-02 (水) 06:12:14)
- 91 (2014-07-19 (土) 21:58:37)
- 92 (2014-09-25 (木) 23:28:58)
- 93 (2014-09-29 (月) 03:03:29)
- 94 (2014-10-04 (土) 21:26:41)
- 95 (2014-10-11 (土) 00:57:03)
- 96 (2014-11-01 (土) 03:19:39)
- 97 (2014-11-08 (土) 04:12:06)
- 98 (2014-11-18 (火) 21:27:28)
- 99 (2014-11-21 (金) 14:36:54)
- 100 (2014-11-27 (木) 04:40:19)
- 101 (2014-12-07 (日) 15:43:01)
- 102 (2014-12-09 (火) 08:21:51)
- 103 (2014-12-15 (月) 03:39:17)
- 104 (2015-08-02 (日) 05:22:26)
- 105 (2015-09-26 (土) 04:41:04)
- 106 (2015-09-30 (水) 02:49:40)
- 107 (2015-10-05 (月) 01:22:47)
- 108 (2015-10-07 (水) 02:01:43)
- 109 (2015-10-07 (水) 06:17:42)
- 110 (2015-10-08 (木) 00:54:10)
- 111 (2015-10-17 (土) 02:28:10)
- 112 (2015-11-24 (火) 01:05:54)
- 113 (2015-11-28 (土) 02:55:07)
- 114 (2015-12-14 (月) 11:43:05)
- 115 (2015-12-19 (土) 07:46:55)
- 116 (2015-12-21 (月) 14:53:43)
- 117 (2015-12-27 (日) 02:48:30)
- 118 (2016-01-07 (木) 20:39:10)
- 119 (2016-01-19 (火) 02:38:11)
- 120 (2016-02-17 (水) 13:38:31)
関連ページ
- Titanium Mobile
- Titanium Mobile/ACS
- Titanium Mobile/Advent Calendar
- Titanium Mobile/Alloy
- Titanium Mobile/Alloy/Widget
- Titanium Mobile/Android
- Titanium Mobile/Apple Watch
- Titanium Mobile/fireEvent
- Titanium Mobile/Font
- Titanium Mobile/GitHub
- Titanium Mobile/iOS
- Titanium Mobile/jsライブラリ
- Titanium Mobile/ListView
- Titanium Mobile/TableView
- Titanium Mobile/TiFlatUI
- Titanium Mobile/UI
- Titanium Mobile/Web API連携
- Titanium Mobile/Web API連携/Webサービスと連携したアプリ作成講座
- Titanium Mobile/WebView
- Titanium Mobile/アニメーション
- Titanium Mobile/アプリ間連携
- Titanium Mobile/カメラ
- Titanium Mobile/コード分割方法
- Titanium Mobile/サンプル
- Titanium Mobile/データ保存
- Titanium Mobile/デバッグ
- Titanium Mobile/トラブル対応
- Titanium Mobile/プロジェクト新規作成
- Titanium Mobile/モジュール
- Titanium Mobile/課金
- Titanium Mobile/開発環境
- Titanium Mobile/学習動画
- Titanium Mobile/広告配信
- Titanium Mobile/地図
- Titanium Mobile/通信
- Titanium Mobile/通知
目次
Titanium Mobile自身の注意点主に(Titanium SDKのバージョン 2.1.2GA以降で試した情報です)
for (x in 配列名)でのハマリに注意
例えばviewが複数入った配列に対して個々のviewを処理するとき、「for (x in 配列名) ループ」を使うと次の警告が出て正常に動作しませんでした。
[WARN] Exception in event callback. { line = ???; message = "'undefined' is not a function (evaluating 'parts.getWidth()')"; name = TypeError; sourceId = ???; }
JavaScriptでは問題ないのでTitanium Mobile自身の不具合のようです。次のようにすれば回避できました。
// Titanium Mobileで不具合の起きたソース。 // 配列に入っている個数分ループするのですが、取得したviewをUIViewのオブジェクトとして使えません。 for (var view in viewArray) { Ti.API.info('width: ' + view.getWidth()); }
// Titanium Mobileで正常に動くソース。 // インデックスを使用したforループに変えれば治りました。 var view; for (var i = 0; i < viewArray.length; i++) { view = viewArray[i]; Ti.API.info('width: ' + view.getWidth()); }
TIPS
アプリ名設定方法
iOS
i18n/ja/app.xml, i18n/en/app.xmlで設定します。
<?xml version="1.0" encoding="UTF-8"?> <resources> <string name="appname">iOS アプリFoo</string> </resources>
Android
i18n/ja/strings.xml, i18n/en/strings.xmlで設定します。
<?xml version="1.0" encoding="UTF-8"?> <resources> <string name="appname">Android アプリFoo</string> </resources>
- Resourcesやbuildフォルダと横並びにplatformフォルダを作成
- platformフォルダの中にandroidフォルダを作成
- build/android/AndroidManifest.xmlをplatform/android/AndroidManifest.xmlにコピー
- android:label="プロジェクト名"となっている2箇所をandroid:label="@string/appname"に変更
備考:AndroidManifest.xmlの編集について補足情報です。Titanium側でいくつかパーミッションが設定されますが、余計なパーミッションは外しておいたほうが良さそうです。例えば筆者はSDカードにアプリ移動可能とするためと思って「android.permission.WRITE_EXTERNAL_STORAGE」を許可しておいたままにしていましたが、アンドロイダーにレビュー依頼したところ『アプリのSDカード移動には必要のない権限です。』とご指摘いただきました。
関連リンク:Androidのパーミッションを減らす | アプリ作家見習いメモ
注意:カメラを使用する場合はSDカードへの書き込み権限が必要なAndroid端末もあるそうで、「android.permission.WRITE_EXTERNAL_STORAGE」を許可しておいたほうがいいそうです。
関連リンク:AndroidでSDカード関連のエラー | Androidアプリ開発雑記
未確認情報:http://〜で画像を表示する場合は、「android.permission.WRITE_EXTERNAL_STORAGE」を許可しないといけないそうです。キャッシュの関係だそうです。
参考ページ:イガイトカンタン -PhoneGapからTitaniumMobileに乗り換えて10日くらいでアプリを作った話 | DASALOG
未確認情報:AdMobを使用する場合も「android.permission.WRITE_EXTERNAL_STORAGE」を許可しないといけないかもしれないです。
参考ページ: Titanium mobile で作ったAndroidアプリにadmobを入れる
シミュレータかどうか判断
if (Titanium.Platform.model === 'google_sdk' || Titanium.Platform.model === 'Simulator') { }
iOSのバージョンで分岐させる方法
// 「4.3.2」などといったバージョン文字列をパース var versionNumber = parseFloat(Ti.Platform.version); if (versionNumber >= 5) { // バージョン5以上 } else if (versionNumber < 5) { // バージョン5未満 } else { // エラー処理 }
WebViewで背景を透明にする方法
ネイティブに比べて遅いようです。
// Resources/file/foo.htmlのWebViewを作成 var fooWebView = Ti.UI.createWebView({ url: '/fle/foo.html', backgroundColor: 0 });
プログラムを複数のファイルに分割する方法
Resources/window1.js
var win = Ti.UI.createWindow({title:'window1'}); var label = Ti.UI.ceateLabel({text:'Say there'}); win.add(label); exports.window = win;
Resources/app.js
var win1 = require('window1').window; var tab = Ti.UI.createTab(window:win1); var tabGroup = Ti.UI.createTabGroup(); tabGroup.addTab(tab); tabGroup.open();
exportsを使ったCommonJSスタイルで記述し、require()で読み込みます。exportsで指定されたオブジェクトだけが公開され、しかもそれがサンプルの例でwin1に閉じ込められるのがポイント!
参考url: @IT QA
[1, 2, 3], [101, 2, 1, 10], [2, 1]といった3っつの配列で共通する要素の配列を取得する方法
Titanium Mobileに限った話ではありませんが、underscore.jsというライブラリを使用すれば、簡単に記述できます。underscore.jsファイルをResouces/vendor/以下に配置して、
_ = require('vendor/underscore')._ var arrayX = _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
共通項の[1, 2]を取得できます。 他にも配列操作などの便利な処理が沢山あります。ライブラリやAPIはhttp://underscorejs.org/ 参考url: @IT QA
メールダイアログ表示
#pre{{
var emailDialog = Titanium.UI.createEmailDialog();
emailDialog.setSubject('Hello from Titanium!');
emailDialog.setToRecipients(['foo@yahoo.com']);
emailDialog.setCcRecipients(['bar@yahoo.com']);
emailDialog.setBccRecipients(['blah@yahoo.com']);
if (Ti.Platform.name == 'iPhone OS') {
emailDialog.setMessageBody('<b>Appcelerator Titanium Rocks!</b>');
emailDialog.setHtml(true);
emailDialog.setBarColor('#336699');
} else {
emailDialog.setMessageBody('Appcelerator Titanium Rocks!');
}
// attach a blob
emailDialog.addAttachment(event.media);
// attach a file
var f = Ti.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory, 'cricket.wav');
emailDialog.addAttachment(f);
emailDialog.addEventListener('complete',function(e) {
if (e.result == emailDialog.SENT) {
if (Ti.Platform.osname != 'android') {
// android doesn't give us useful result codes.
// it anyway shows a toast.
alert('message was sent');
}
} else {
alert('message was not sent. result = ' + e.result);
}
});
emailDialog.open();
}}
引用元url: http://stackoverflow.com/questions/4407888/sending-email-using-titanium-developer-application
Titaniumのプロジェクトを削除する方法
- Titanium Studioで左上のProject Explorerを開く
- 消したいプロジェクトを選択
- [Project] - [Close Project]
- [Edit] - [Delete]
- Finderでプロジェクトのフォルダを削除
タブバーの背景色変更
Titanium SDK 3.0から可能になったそうです。
var self = Ti.UI.createTabGroup({ tabsBackgroundColor : 'red' });
また、画像設定など詳細に設定できるようです。詳しくはこちらまで。 TabGroupの外装を色々触ってみる | UCHiDAK.NET
オブジェクトの中身を表示する方法(PHPでいうところのvar_dump)
Ti.API.info(JSON.stringify(obj));
Titanium Advent Calendar
- Titanium Advent Calendar 2013
- Titanium Advent Calendar 2012
- Titanium mobile "early" Advent Calendar 2012
- Titanium Advent Calendar 2011
技術者ブログ
- Titanium Mobile勉強記
- アプリ作家見習いメモ
- MORILOG Titaniumカテゴリ ... commonJS記述方法などのサンプルソースがシンプルにまとまっていてわかり易かったです
- SE奮闘記 Titaniumカテゴリ
- Titanium Mobileでアプリ開発
- 竹本 浩氏のwiki Titaniumカテゴリ ... Interface Builderとの連携方法、テスト方法、DBなどの記事
- UCHiDAK.NET Titaniumカテゴリ
- もぎゃろぐ Titaniumカテゴリ
- harukazepcの日記 Titanium検索結果
- titanium.soracid.com Titanium Tips
- astronaughts.net Titaniumカテゴリ
- リア充爆発日記 Titaniumカテゴリ
- Titanium Mobileノート
TIPSリンク
- cathandnya / ScalableImageView.js ... ☆☆☆ImageViewでAspectFillする方法!
- カスタムタブバーの作り方 | kaz_konno's blog
- Ti.tokyo.GIG 2012 スライドショー 関数は変数に代入しないで普通に書く方が高速とのことです。
- Handling raw accelerometer data in Titanium apps ... 加速度センサーの値がブレ過ぎないように丸める方法
- Titanium MobileでiPhone&iPadの向きを変えた時の画面回転制御 | えすたくぶろぐ
- Calculate apps density pixel width & height using Titanium.Platform.DisplayCaps.dpi
- 別画面のメソッドを呼び出したい | http://www.fujimotohajime.net/ ... Tabに割り当てているテーブルに更新用のfireイベントを用意し、他のウィンドウから呼び出すというスマートな方法。他にもTitanium TIPS有り。
- MacでTitanium DeveloperのiOSエミュレーターのHTTP通信を覗いてみる。 | 車輪を再発明 / koba04の日記
- bongole / TiGPUImageView | GitHub
- Simple Layout Tricks with Titanium Appcelerator ... ログイン画面
- pickerの初期選択が効かない | Titanium Mobileユーザー会サポートBBS ... KitchenSinkでも動きません。時間差で設定する必要があります。
- Titanium Mobileアプリで起動時にURL Schemeを受け取る | Qiita
- Titaniumの標準APIのみで画像を正方形に切り抜いて表示する方法 | TitaniumMobile勉強記
- アプリで縦固定の方法 | LAJ技術ブログ
- Ti.SQ Squared Calendar Module | benCoding.com ... 縦にスクロールするカレンダー
- Titaniumで戻る/進む/リロード/アクションボタンがついたwebViewを作る | memo log
- webviewのリンク先をブラウザで開く | もぎゃろぐ
- TitaniumによるiPhone/Androidアプリ開発 スライドショー | はてなRyutaro Kurai氏 ... jsライブラリ利用によるTWitter OAuth認証方法の説明有り。
- Pull To Refresh for Android
- Fathm ライクな UI を Titanium mobile で実装してみた | astronaughts.net
- iOS 7 移行ガイド ダイジェスト | Ti Weekly Clips++
- Titanium MobileでSQLiteをDataMapperっぽく扱う | Selfkleptomaniac
- AppcodingEasy.com Titaniumカテゴリ ... 加速度センサーの値を丸める記事が良かったです。Handling raw accelerometer data in Titanium apps
- Understanding Titanium Views | Appcelerator Blog ... ☆色々な解像度の端末でフィットするアプリを作る方法
開発環境
Appceleratorリンク
- Titanium API 公式ドキュメント | Appcelerator
- Appcelerator ダッシュボード ... Documentation & Guides、Tutorial、サンプルなど色々辿れます。
- Titanium Documentation Guides
- Appcelerator Training
- Titaniumで作ったアプリのタブに使用できるフリー画像 | Appcelerator Developer Blog
ユーザー会リンク
- Titanium Mobile ユーザー会 Googleグループ
- titanium-mobile-doc-jaのTitanium Mobile API ☆☆☆
- Appcelerator Titanium Mobileに関するドキュメントを日本語でまとめていくプロジェクト
リンク
- Titanium SDKとiOS/Android SDKの関係 | もぎゃろぐ ... Titanium SDK, iOS SDK, Android SDKの対応表
- Titanium News
- @IT TitaniumカテゴリのFAQ
- Titanium もくもく会 #5 2013 Sublime Text and Grund for Titanium Development スライドショー
- TitaniumMobile_ModuleList
- Titanium Mobileに神の火を! - Prometheus.js
- Titanium もくもく会 Tokyo #9 に行ってきました | imthinker::net ... TiExtendWeb、TiTwilioなど
- Tutorial: Use Sublime Text for Appcelerator Titanium
- 【29日目】Titaniumで明示的にメモリを解放する方法 | masaplabs
- アプリ内の画面ページビューやボタンのクリック回数をGoogle Analyticsで計測する | memobits
- Titanium SDKとiOS/Android SDKの関係 | もぎゃろぐ
- TCAD Certification Trainingの閲覧方法 | Selfkleptomaniac
- Alfred と Dash の連携で Titanium API ドキュメントを見よう / Socketbase blog