トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Titanium Mobile のバックアップ差分(No.84)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
関連ページ
#ls2(Titanium Mobile)
----
目次
#contents



*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のパーミッションを減らす | アプリ作家見習いメモ>http://dokuwiki.eniblo.org/doku.php/titanium/remove_ad_permision]]~
~
注意:カメラを使用する場合はSDカードへの書き込み権限が必要なAndroid端末もあるそうで、「android.permission.WRITE_EXTERNAL_STORAGE」を許可しておいたほうがいいそうです。~
関連リンク:[[AndroidでSDカード関連のエラー | Androidアプリ開発雑記>http://blog.rmasco.com/archives/2013/05/22-110021.html]]~
~
未確認情報:http://〜で画像を表示する場合は、「android.permission.WRITE_EXTERNAL_STORAGE」を許可しないといけないそうです。キャッシュの関係だそうです。~
参考ページ:[[イガイトカンタン -PhoneGapからTitaniumMobileに乗り換えて10日くらいでアプリを作った話 | DASALOG>http://dasalog.eg2mix.com/tag/titanium/]]~
~
未確認情報:AdMobを使用する場合も「android.permission.WRITE_EXTERNAL_STORAGE」を許可しないといけないかもしれないです。~
参考ページ: [[Titanium mobile で作ったAndroidアプリにadmobを入れる>http://smahotab.blogspot.jp/2011/11/titanium-mobile-androidadmob.html]]



**シミュレータかどうか判断
  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>http://qa.atmarkit.co.jp/q/94]]



**[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>http://qa.atmarkit.co.jp/q/90]]
~参考url: 
-[[@IT QA>http://qa.atmarkit.co.jp/q/90]]
-[[JavaScriptで関数型プログラミングを強力に後押しするUnderscore.jsのおすすめメソッド12選(lodashもあるよ) | Qiita>http://qiita.com/takeharu/items/7d4ead780710c627172e]]



**メールダイアログ表示
#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>http://uchidak.net/titanium-tabgroup-1086/]]



**オブジェクトの中身を表示する方法(PHPでいうところのvar_dump)
 Ti.API.info(JSON.stringify(obj));



*Titanium Advent Calendar
-[[Titanium Advent Calendar 2013>http://www.adventar.org/calendars/78]]
-[[Titanium Advent Calendar 2012>http://atnd.org/events/34644]]
-[[Titanium mobile "early" Advent Calendar 2012>http://atnd.org/events/33731]]
-[[Titanium Advent Calendar 2011>http://atnd.org/events/21951]]



*技術者ブログ
-[[Titanium Mobile勉強記>http://h5y1m141.hatenablog.com/archive/category/Titanium%20Mobile]]
--[[Appcelerator Cloud Services(ACS)使ってみました | Titanium Mobile勉強記>http://h5y1m141.hatenablog.com/entry/2012/08/08/083820]]
-[[アプリ作家見習いメモ>http://dokuwiki.eniblo.org/doku.php/titanium/start]]
-[[MORILOG Titaniumカテゴリ>http://monoko.sakura.ne.jp/blog/archives/category/titaniummobile]] ... [[commonJS記述方法などのサンプルソースがシンプルにまとまっていてわかり易かったです>http://monoko.sakura.ne.jp/blog/archives/539#t6]]
-[[SE奮闘記 Titaniumカテゴリ>http://se-suganuma.blogspot.sg/search/label/Titanium%20Mobile]]
-[[Titanium Mobileでアプリ開発>http://sysxx.blogspot.jp/]]
-[[竹本 浩氏のwiki Titaniumカテゴリ>http://www.pwv.co.jp/~take/TakeWiki/index.php?cmd=search]] ... Interface Builderとの連携方法、テスト方法、DBなどの記事
-[[UCHiDAK.NET Titaniumカテゴリ>http://uchidak.net/tag/ti-recipe/]]
-[[もぎゃろぐ Titaniumカテゴリ>http://blog.mogya.com/cat38/titanium/]]
-[[harukazepcの日記 Titanium検索結果>http://d.hatena.ne.jp/harukazepc/searchdiary?word=titanium&.submit=%B8%A1%BA%F7&type=detail]]
-[[titanium.soracid.com Titanium Tips>http://titanium.soracid.com/]]
-[[astronaughts.net Titaniumカテゴリ>http://astronaughts.net/tag/titanium-mobile/]]
-[[リア充爆発日記 Titaniumカテゴリ>http://d.hatena.ne.jp/ria10/touch/searchdiary?word=%2A%5BTitanium%5D]]
-[[Titanium Mobileノート>https://sites.google.com/site/timobilenote/home]]
-[[Titanium &#187; pblo>http://blog.playispeace.com/category/titanium/]]
-[[AOILab Blog Titaniumカテゴリ>http://aoilabcom.blog.fc2.com/?tag=Titanium]]
-[[はなたんのブログ Titaniumカテゴリ>http://www.tdtsh.com/blog/archives/category/titanium]]
-[[Titanium Mobile | 株式会社インフィニットループ技術ブログ>http://www.infiniteloop.co.jp/blog/tag/titanium-mobile-2/]]
-[[メモ帳代わりのブログ Titaniumカテゴリ>http://www.absolute-keitarou.net/blog/?tag=titanium]]
-[[マナブ・イガラシ Titaniumカテゴリ>http://m-50.jugem.jp/?cid=7]]



*TIPSリンク
-[[cathandnya / ScalableImageView.js>https://gist.github.com/cathandnya/5028405]] ... ☆☆☆ImageViewでAspectFillする方法!
-[[カスタムタブバーの作り方 | kaz_konno's blog>http://kazkonno.hatenablog.com/search?q=%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0]]
-[[Ti.tokyo.GIG 2012 スライドショー>http://www.slideshare.net/mobile/ryugoo/titokyogig-2012]] 関数は変数に代入しないで普通に書く方が高速とのことです。
-[[Handling raw accelerometer data in Titanium apps>http://quidecco.com/cgi-bin/cgi_ref_by_path/referer/http_3a_2f_2fappcodingeasy.com_2fTitanium-Mobile_2fHandling-raw-accelerometer-data-in-Titanium-apps/url/http_3a_2f_2fappcodingeasy.com_2fTitanium-Mobile_2fHandling-raw-accelerometer-data-in-Titanium-apps/]] ... 加速度センサーの値がブレ過ぎないように丸める方法
-[[Titanium MobileでiPhone&iPadの向きを変えた時の画面回転制御 | えすたくぶろぐ>http://staku.designbits.jp/ti-ios-device-rotate-settings/]]
-[[Calculate apps density pixel width & height using Titanium.Platform.DisplayCaps.dpi>http://developer.appcelerator.com/question/125317/calculate-apps-density-pixel-width--height-using-titaniumplatformdisplaycapsdpi]]
-[[別画面のメソッドを呼び出したい | http://www.fujimotohajime.net/>http://www.fujimotohajime.net/pukiwiki/index.php?titaniumMobile%2F%E5%88%A5%E7%94%BB%E9%9D%A2%E3%81%AE%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%9F%E3%81%84]] ... Tabに割り当てているテーブルに更新用のfireイベントを用意し、他のウィンドウから呼び出すというスマートな方法。他にも[[Titanium TIPS>http://www.fujimotohajime.net/pukiwiki/index.php?cmd=list#top_8]]有り。
-[[MacでTitanium DeveloperのiOSエミュレーターのHTTP通信を覗いてみる。 | 車輪を再発明 / koba04の日記>http://d.hatena.ne.jp/koba04/searchdiary?word=%2A%5BTitanium%5D]]
-[[bongole / TiGPUImageView | GitHub>https://github.com/bongole/TiGPUImageView]]
-[[Simple Layout Tricks with Titanium Appcelerator>http://alexnaspo.com/blog/appcelerator-layout-tricks/]] ... ログイン画面
-[[pickerの初期選択が効かない | Titanium Mobileユーザー会サポートBBS>http://d.hatena.ne.jp/ninoseki/20110414/1302786001]] ... KitchenSinkでも動きません。時間差で設定する必要があります。
-[[Titanium Mobileアプリで起動時にURL Schemeを受け取る | Qiita>http://qiita.com/items/7c6fe62a89608a27fedc]]
-[[Titaniumの標準APIのみで画像を正方形に切り抜いて表示する方法 | TitaniumMobile勉強記>http://h5y1m141.hatenablog.com/entry/2013/04/16/075317]]
-[[アプリで縦固定の方法 | LAJ技術ブログ>http://www.la-j.com/tech-blog/?p=120]]
-[[Ti.SQ Squared Calendar Module | benCoding.com>http://bencoding.com/2013/06/23/ti-sq-squared-calendar-module/]] ... 縦にスクロールするカレンダー
-[[Titaniumで戻る/進む/リロード/アクションボタンがついたwebViewを作る | memo log>http://tech4403.hatenablog.com/entry/20120209/1328802761]]
-[[webviewのリンク先をブラウザで開く | もぎゃろぐ>http://blog.mogya.com/2012/09/titanium-webview-open-any-url-on-the-web-browser.html]]
-[[TitaniumによるiPhone/Androidアプリ開発 スライドショー | はてなRyutaro Kurai氏>http://www.slideshare.net/kurain/titanium-i]] ... jsライブラリ利用によるTWitter OAuth認証方法の説明有り。
-[[Pull To Refresh for Android>http://fokkezb.nl/2013/08/15/pull-to-refresh-for-android/?utm_source=buffer&utm_campaign=Buffer&utm_content=buffer56a84&utm_medium=twitter]]
-[[Fathm ライクな UI を Titanium mobile で実装してみた | astronaughts.net>http://astronaughts.net/fathm-like-ui-implementation-for-titanium-mobile/]]
-[[iOS 7 移行ガイド ダイジェスト | Ti Weekly Clips++>http://mobiletou.ch/2013/09/ti-weekly-clips-003/2]]
-[[Titanium MobileでSQLiteをDataMapperっぽく扱う | Selfkleptomaniac>http://selfkleptomaniac.org/archives/2181]]
-[[AppcodingEasy.com Titaniumカテゴリ>http://quidecco.com/cgi-bin/cgi_ref_by_path/referer/http_3a_2f_2fappcodingeasy.com_2fTitanium-Mobile_2fHandling-raw-accelerometer-data-in-Titanium-apps/url/http_3a_2f_2fappcodingeasy.com_2fTitanium-Mobile/]] ... 加速度センサーの値を丸める記事が良かったです。[[Handling raw accelerometer data in Titanium apps>http://quidecco.com/cgi-bin/cgi_ref_by_path/referer/http_3a_2f_2fappcodingeasy.com_2fTitanium-Mobile_2fHandling-raw-accelerometer-data-in-Titanium-apps/url/http_3a_2f_2fappcodingeasy.com_2fTitanium-Mobile_2fHandling-raw-accelerometer-data-in-Titanium-apps/]]
-[[Understanding Titanium Views | Appcelerator Blog>http://www.appcelerator.com/blog/2014/02/understanding-titanium-views/]] ... ☆色々な解像度の端末でフィットするアプリを作る方法
-[[Titaniumでmy365風なカレンダーアプリを作る(1) | Qiita>http://qiita.com/yonestra/items/8308a15fe2e0c3ebad76]]
-[[Titaniumで外部からロードしてきた画像を正方形にcropする | memo log>http://tech4403.hatenablog.com/entry/20120208/1328717561]]



*開発環境
-[[Titanium™ インストールガイド>http://titanium-install-guide-ja.github.io]]
-[[今更ながらTiShadowの便利さを実感したので利用イメージをまとめてみた | TitaniumMobile勉強記>http://h5y1m141.hatenablog.com/entry/2014/03/02/085706]]
-[[Titaniumもくもく会in関西vol0 (とTiShadowメモ) | はなたんのブログ>http://www.tdtsh.com/blog/archives/3206]]
-[[gitTio - Titanium用モジュール/Alloyウィジェット管理ツール - モバイル/タブレット向けオープンソース紹介 - Mobile Touch | モバイル/タブレット開発者およびデザイナー向け情報ポータル>http://goo.gl/9NxiU1]]
-[[GruntとTiShadowでTitaniumアプリのテストを自動化しよう(1/2) - 実務で使えるTitaniumテクニック - Mobile Touch | モバイル/タブレット開発者およびデザイナー向け情報ポータル>http://goo.gl/lkgm0s]]



*Appceleratorリンク
-[[Titanium API 公式ドキュメント | Appcelerator>http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI]]
-[[Appcelerator ダッシュボード>https://wiki.appcelerator.org/dashboard.action]] ... Documentation & Guides、Tutorial、サンプルなど色々辿れます。
-[[Titanium Documentation Guides>http://docs.appcelerator.com/titanium/latest/#!/guide]]
-[[Appcelerator Training>https://github.com/appcelerator-training]]
-[[Titaniumで作ったアプリのタブに使用できるフリー画像 | Appcelerator Developer Blog>http://developer.appcelerator.com/blog/2010/12/festivus-celebration-day-two-airing-of-grievances.html]]



*ユーザー会リンク
-[[Titanium Mobile ユーザー会 Googleグループ>https://groups.google.com/forum/#!forum/titanium-mobile-users-jp]]
-[[SIZE(30){titanium-mobile-doc-ja}>http://code.google.com/p/titanium-mobile-doc-ja/w/list]] ☆☆☆UIカタログの図が多くて参考になります!
-[[Appcelerator Titanium Mobileに関するドキュメントを日本語でまとめていくプロジェクト>https://github.com/titanium-mobile-doc-ja]]



*リンク
-[[Titanium SDKとiOS/Android SDKの関係 | もぎゃろぐ>http://blog.mogya.com/2013/09/titanium-sdkiosandroid-sdk.html]] ... Titanium SDK, iOS SDK, Android SDKの対応表
-[[Titanium News>http://ti-news.hatenablog.jp/]]
-[[@IT TitaniumカテゴリのFAQ>http://qa.atmarkit.co.jp/q/tagged/titanium]]
-[[Titanium もくもく会 #5 2013 Sublime Text and Grund for Titanium Development スライドショー>http://t32k.me/mol/log/grunt-scandium/]]
-[[TitaniumMobile_ModuleList>https://docs.google.com/spreadsheet/ccc?key=0Ap-hrxnRI5kpdHctX3NkTFdSSVVzSkRzc3Q3bDVNbEE&authkey=CKD1-coF&hl=ja&authkey=CKD1-coF#gid=0]]
-[[Titanium Mobileに神の火を! - Prometheus.js>http://0-oo.net/sbox/javascript/prometheus]]
-[[Titanium もくもく会 Tokyo #9 に行ってきました | imthinker::net>http://blog.imthinker.net/entry/2013/06/14/011503]] ... TiExtendWeb、TiTwilioなど
-[[Tutorial: Use Sublime Text for Appcelerator Titanium>http://www.dunkelgames.com/tutorials/use-sublime-text-to-code-for-appcelerator-titanium-platino]]
-[[【29日目】Titaniumで明示的にメモリを解放する方法 | masaplabs>http://www.masaplabs.com/titanium-memory-leak/]]
-[[アプリ内の画面ページビューやボタンのクリック回数をGoogle Analyticsで計測する | memobits>http://m.designbits.jp/12111909/]]
-[[Titanium SDKとiOS/Android SDKの関係 | もぎゃろぐ>http://blog.mogya.com/2013/09/titanium-sdkiosandroid-sdk.html]]
-[[TCAD Certification Trainingの閲覧方法 | Selfkleptomaniac>http://selfkleptomaniac.org/archives/2241]]
-[[Alfred と Dash の連携で Titanium API ドキュメントを見よう / Socketbase blog>http://blog.socketbase.co.jp/blog/2013/07/18/titanium-in-alfred-and-dash.html]]
-[[Tistudy>http://h5y1m141.github.io/ti-study/]]