サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
Titanium Mobile で Android, iOS 両対応のアプリを開発する際の注意点 大学生活にも慣れてきました。 18 歳の夏を満喫している take です。こんにちは! 会社では、 JavaScript を書くお仕事をしています。楽しいです! さて、 前回 は Titanium Mobile で Android アプリを書く際にハマるポイントをいくつか紹介しました。 最近、Titanium Mobile なのだから、1つのコードで Android, iOS 両対応するアプリを書こう!ということで、コードを書きながら、予め知っておくと開発が捗るポイントを何点か見つけましたので、ここで紹介したいと思います。 ※これから紹介する方法 (コード) は私個人が勝手に考えて実践しているものなので、ベストプラクティスであると保証することはできません。間違っている点や、さらに良い方法があれ
Androidでは、Eclipseを使用した開発用にADT(Android Development Tools)プラグインが用意されています。 Eclipseを使用して開発する場合、このADTプラグインをインストールする必要があります。Android SDKのインストールした後に、このADTプラグインをインストールしましょう。 まずはEclipseを起動します。 Eclipseが起動したら、「ヘルプ」メニューの中の「新規ソフトウェアのインストール…」を選択します。 以下の画面が表示されますので、「追加」ボタンをクリックします。 サイトの追加ダイアログが表示されますので、名前とロケーションにhttps://dl-ssl.google.com/android/eclipse/を入力し、「OK」ボタンをクリックします。 作業対象の選択リストから追加したサイトを選択します。 以下のように「Deve
Windowオブジェクトにイベントリスナを追加する。 var win = Ti.UI.createWindow(); win.addEventListener('android:back', function(){ //ここに処理を記述する }); 「android:back」はイベント名。「click」とかと同じ。Androidにしかないイベントなので、「android:」という前置詞がついているのだろう。 assets/Resources/android-keyboard.js at b078177e2386bf4149fb7f37b607147921eb21bf from donthorp/androidng - GitHub ↑誰か親切な人が書いてくださったサンプル。 サンプルによると、他にも「android:focus」「android:camera」「android:se
もう、昔にはもどれませぬ。fastdevの導入でビルドが劇的に早くなります。 OS:Windows7、CPU:Core2Duo2.50GHzのマシンで、1000行程度のアプリケーション。エミュレーターは既に起動している状態からのビルド時間は以下のとおり。 fastdev無 fastdev有 ビルド時間 1分16秒 10秒 まぁ今までがどうしようも無かったといえばそれまでだけど、夜中のコーディング中、ビルドしてるときに寝落ちするぐらいの遅さだったので、ようやっとまともに開発できる気がする速度になってきた。よっこらせ。 fastdevの入手 2011年5月22日時点で、titanium SDK1.7プレビュー版にはfastdevは含まれておりませぬ。なので、デイリービルドのこちらから入手して、以下のパスに格納します。 C:\ProgramData\Titanium\mobilesdk\
TitaniumでAndroidアプリを作っていますが、iPhoneアプリに比べて、動きがもっさりしています。性能面で気をつけた点を、まとめておきます。 外部のライブラリJSは、1回だけ読み込む各画面で使う共通の関数を、別のJavascriptファイルにしていて、個別の画面でそれらをTi.includeしていたのですが、余計なメモリを使っていた気がします。解決策として、app.jsで一回だけ読み込み、Ti.Appにグローバル的にぶらさげておくことにしました。■ common.js (共通関数Javascript) var CommonFunc = { func1: function() { // (中略) }; } ■ app.js Ti.include("common.js"); Ti.App.CommonFunc = CommonFunc; ■ 個別のJavaScript Ti.App
Titanium Mobileを使い、iPad上で動く業務アプリを作りました。Titanium Mobileを使う最初のアプリだったので、どのような内部構造にするか事前に調べました。出てきたキーワードが、シングルコンテキストです。シングルコンテキストながら、個々のプログラムが影響を及ぼしにくく作るのが、今後の主流になりそうだと感じました。何人もの人が主張しているほど、人気の作り方のようです。正しい起源は知りませんが、tweetaniumというサンプルがもとになっているようでした。 詳しい内容は、もう何人もの方が書かれているので、ここで書く必要はないでしょう。「Titanium Mobile」と「シングルコンテキスト」で検索してみてください。たくさんのページが出てきますから、その中から何ページかを読めば理解できるでしょう。いちおう簡単に説明すると、次のようになります。「Ti.include」
Titanium 1.8 では ImageView に表示したリモートの画像は自動的に Cache されて、オフラインでも閲覧できて、とても便利なのですが、致命的な欠点があります。 永遠に削除されない キャッシュをクリアするメソッドが提供されていない もしかしたらバグで今後直るかも知れませんが、現状は自力で対応しなければいけません。 画像のキャッシュなので起動時(もしくは終了時)に全部消してしまってもよいのですが、ある一定期間は保持したいという要望もあったので、指定期間更新が無い画像キャッシュファイルを削除するコードを書いてみました。 Titanium で ImageView のキャッシュを起動時に消す (for iOS only) — Gist /** * 指定した時間更新されていない画像キャッシュを削除する。 * iOS にのみ対応。 * * @param {Number} expir
Titaniumがあらかじめ解像度ごとに画像フォルダを用意してくれている。 res-long-land-hdpi res-long-land-ldpi res-long-port-hdpi res-long-port-ldpi res-notlong-land-hdpi res-notlong-land-ldpi res-notlong-land-mdpi res-notlong-port-hdpi res-notlong-port-ldpi res-notlong-port-mdpi 高解像度の縦画面用の画像だったら「res-notlong-port-hdpi」に保存する。 タブレット端末向けの低解像度の横画面用の画像だったら「res-long-land-ldpi」に保存する。 でも、僕の環境では画像を出し分けてくれなかった。 なのでフォルダ名を以下のように変えてみた。 res-h
TitaniumでiPhone版アプリを作る場合、retina用に倍の解像度の画像を準備して使用する。hiresフラグを立てておけば、retina機で高解像度で表示(非retina機では半分の解像度に縮小表示)される。 Androidの場合、複数の解像度(ldpi/mdpi/hdpi)毎の画像を準備しておくのが吉。 リソースや画面上の配置の調整をプログラム(Titaniumのランタイム?)に任せる場合は、TiAppを という感じにしておく。 上記の場合、画面のデザインは横幅320pxの画面を想定してプログラムを書いておけば、別な解像度でもそれに合った倍率に調整されるイメージ。 画像リソースを320px用で準備していた場合、自動的に伸縮されて表示されるが、それでは見た目が悪くなる。 Androidの場合は画像リソースをldpi/mdpi/hdpiの3パターン準備しておけば、ランタイムが(とい
アプリを縦向きのみで使用したいので デバイスの画面の自動回転を制限したいと考えています。 Titanium Mobile開発の参考書では、tiapp.xmlで制限できると書かれていたのですが 詳しい方法までは記載されていませんでした。 上記の解決方法について、ご存知の方がいらっしゃいましたらご教示願います。 宜しくお願い致します。
The Little Book on Titanium (Appcelerator Titanium) JavaScript を使って iOS/Android などマルチプラットフォーム対応のネイティブアプリケーションを構築することができる Appcelerator Titanium についてまとめた非公式サイトです。 ページ1 | はじめに Appcelerator Titanium Write Once, Adapt Anywhere 使えるの? 苦手なものは何? ページ2 | 開発ツール Titanium Studio Titanium CLI ページ3 | 開発スタイル JavaScript Titanium Classic Alloy ページ4 | アプリケーションの例 プロジェクトを作る レイアウトを考える 土台を作る 細かい機能を実装していく 終わりに ページ5 | Tita
UIの部品をたくさん追加するとコードの見通しが悪くなってくるので、なんとかしたいと思った。 そこでUIのプロパティを指定するオブジェクトを別の場所で定義して分離することにしてみた。 Ti.includeを使うとコードの分離は簡単なので、方法は至って単純。 styles.jsというファイルにプロパティの定義を追い出す。 2010/02/12追記 Titamium Mobile 1.5からJSSというものが使えるようになっていて、以下のstyles.jsでやっていることをCSSっぽく書ける。 ただ1.5の時点ではiOSで問題があり、JSSの更新が二度目以降のビルドに反映されず、更新を確認するためには都度build以下を削除しないといけないようなことになっているようだ。 元のコード まずは分離前。 hoge.js いたって普通に書いたコード。 UI部品が少ないうちは問題ないが、部品が増えてくると
ハンズオンに参加 先週の土曜日(6月18日)につ部(Android 名古屋 つくる部)の 第2回名古屋Android勉強会 Titanium Mobileハンズオンに参加しました。 https://github.com/masuidrive/TiWorkShopNagoya ハンズオンは6月16日発売のTitanium Mobileで開発するiPhone/Androidアプリ(通称:Ti本)に 沿ったかたちで進められ、数時間であっという間に簡易Twitterビュアーを作ることができました。 しかも1回書けば、iPhoneでも動く(UIまわり等、若干書きなおす必要はあります)のがとても魅力的でした。 世の中そんなに甘くない ここまでは良かったのですが、やっぱり世の中そんなに甘くない!!んですよね。 エミュレータで実行した場合と実機で実行した場合とでUIが異なるという問題にぶつかりました。 書
iPadでよくある、左側にリストメニュー、右側に詳細ページという画面。 Titanium Mobileでもバッチリ用意されています。 //左側のWindowを作成 var masterWin = Ti.UI.createWindow(); var masterView = Ti.UI.iPhone.createNavigationGroup({ window:masterWin }); // 右側のWindowを作成 var detailWin = Ti.UI.createWindow(); var deteailView = Ti.UI.iPhone.createNavigationGroup({ window:detailWin }); var splitWindow = Ti.UI.iPad.createSplitWindow({ masterView:masterView, //左
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く