titanium

java.lang.ArrayIndexOutOfBoundsException

とあるお客様のアプリデータの更新作業中、一定数以上のTableViewで画面遷移時にアプリがクラッシュするという現象が発生。 ランタイムがコケていて、エラーログからでは原因が細かく追えず、とりあえず運用で回避しておいた。その後公式の掲示板を丁寧に漁…

titaniumの例外処理

自分はよく try { ほにゃらら } catch(e) { 例外処理 } finally { 後始末 } という書き方をするんだけど、Titanium 1.7.3以降で上記のコードをDistributeコンパイルしようとすると java.lang.IllegalArgumentException: bad opcode とかいうエラーが(おそら…

C2DMの起動直後のreceiveに失敗する件

Titanium C2DM モジュールを手に入れてテスト中。 https://github.com/IGx89/titanium-c2dmアプリ起動後のC2DM配信には正常に応答するが、端末再起動後などにC2DM配信を受けると反応してくれない。動作ログを見たところ、C2DM受信には反応し上記Moduleは動作…

twitter_api.jsに悩まされる(続)

先日同タイトルで書いてた問題について、どうやら解決できた感じ。いろいろな場所で「http://」を「https://」にすれば解決、と言われていて、this.account_verify_credentials の部分は自分もhttps化していたんだけど、肝心な statuses_update をhttps化し…

twitter_api.jsに悩まされる

アプリにツイッターへの投稿機能を埋め込んでいるが、認証失敗になってツイートできない現象が発生。 調べまわったところ、同じ症状の人達がいるらしい。Twitter API statuses/update.jsonでツイートできない場合の注意点上記ブログや各所BBSの記事を参考に…

APNsのテスト

Titaniumでサクッと作ったアプリを使い、特定ターゲットに通知送るだけの単純なテストをやってみた。 デバイストークンの管理がなければ、通知自体は簡単。実装はほとんどWeb上のサンプルコードのコピペだけだったが、あっけなく動いてくれた。一点だけ引っ…

Windowの遷移

Titaniumのアプリの画面遷移を変更する必要があったんだけど、期待通りの動作が記述できずに半日悩んだ。結局setTimeoutを使うという荒業で対応。win1 win2 win3 と順に遷移する画面があったとして、win2からwin3を表示したあと、戻るキーで戻るときはwin2で…

Titaniumのモジュール作成の基礎を知りたい

モジュールの根本的な作り方がなかなか理解できない。 BBS等で「モジュールの作り方」的な話題を見つけると食いついているんだけど、大抵http://wiki.appcelerator.org/display/guides/Module+Developer+Guide+for+iOS http://wiki.appcelerator.org/display…

突然出現するSystemExit: 65

Titaniumアプリに純正admobモジュールを追加する作業をしていたら、突然こちらとまったく同じエラーが発生。ハッとして探してみたところ、「新規テキストドキュメント.txt」が。 おまえか!もうそろそろ2バイト文字に対応してくれないかなぁ・・・。 まあ、…

Titaniumのモジュール組み込みは丁寧に

アプリ内項目モジュールを作って組み込み中、AndroidとiPhoneの両方でビルドしていたら見慣れないエラーが発生。 調べてみたら、tiapp.xmlへのモジュール記述に問題があったみたい。まさにこちらと同じ状況だった。 Titanium mobile へのモジュールの読み込…

外部アプリへファイルを渡す

Titaniumアプリで作成した画像を一旦Filesystem上に保存し、それをインテントで外部アプリへ引き渡す場合、applicationDataDirectory や tempDirectory が使えない。これらの領域はTitaniumアプリからの読み書きはできるが、引き渡した先の外部アプリがアク…

Viewのlayoutについて(自分用メモ)

TitaniumのViewのlayoutパラメータは、公式ドキュメントに掲載されていないが画面構成設定上非常に重要なパラメータ。layout: 'vertical' の時 配置されるパーツが縦方向に配置される。 topやleftなどで指定された位置指定は相対的な座標として処理されるた…

TitaniumのRunConfigurationsでProjectが選べない

Browseボタンを押しても何も反応がない。 1.7.3を導入してからのような気もするが、正確なタイミングは把握していない。少なくとも1.7.2でモリモリ作業してた時点では特に問題が起きた記憶はない。コーディングは行えるけど、新規プロジェクトのデバッガが設…

Titaniumでのリソース配置についてのメモ

TitaniumでiPhone版アプリを作る場合、retina用に倍の解像度の画像を準備して使用する。hiresフラグを立てておけば、retina機で高解像度で表示(非retina機では半分の解像度に縮小表示)される。Androidの場合、複数の解像度(ldpi/mdpi/hdpi)毎の画像を準…

画面Viewのスクショを画像として取得する

Titaniumは画像を直接加工するAPIが無い代わりに、各主要な画面パーツにtoImage()という、見たままを画像に取り込む機能がある。 実際にどういう風になるか確認してみた。viewに背景画像を指定し、その上に文字をlabelで配置。 iPhoneの場合は、viewを生成し…

Titanium on Android で動画のストリーミング再生

タイトルのとおり、Titanium Mobile Android の環境で動画のストリーミングを行う必要があった。 Titanium自体にはvideoPlayerは内蔵されているが、各種イベントやエラー処理を実装しなければ実用のプレイヤーとしては使えないため、もともとAndroidが持って…

理屈が分からないと不安

昨日からごそごそしているモジュール絡みの調査、いろんなサンプル見ながらなんとかしてContextを取得しようと試行錯誤していたら、なんか動くようになったっぽい。ぽい、んだけど何がダメで何をしたから解決したのか、オプションを{}で渡すようにしたらなの…

Titaniumでインストールされているアプリのチェックをしたい

Titaniumからは、直接Android機にインストールされているアプリのリストを見に行けないっぽい。 つか、それが出来るならこんな苦労してない。ネイティブのコードでアプリのリストを取得しているサンプルはたくさん見かけるので、それを元に(Titaniumモジュ…

画面の縦方向固定にバグ・・・?

昨日うまくいっていた縦方向への画面固定だが、SDK1.7.2でコンパイル&実機転送して確認してたら回転固定が正常に機能していないことに気づいた。 コードは変更していないので不審に思い、一旦プロジェクトをクリーニングして再度フルビルドしてみるも、やは…

androidの画面方向固定で苦労してるなう

androidにおいて、画面を縦方向(portrit)に固定し実機をどういう方向に回転させてもホームボタンが下の状態で固定したかったので、幾つかのサイトを見て回って設定。 こことか。結果として設定方法は正解だったんだけど、そのコードをコンパイルすると画面…

Ti.Yahoo.yql のデバッグができない?

Ti.Yahoo.yql を使用しているプログラムをデバッグしようと、Debug モードでAndroidのエミュレータを呼び出したところ、該当処理の箇所で TypeError: Cannot find function yql in object [Ti.Yahoo]. というエラーが発生した。 要は Ti.Yahoo に yql なんて…

JSONの文字コード

iPhoneではjson文字列をeval関数に突っ込むだけでデータを取り出すことが出来、特に文字コードへの配慮はいらなかったのだが、android版への改造を進める中で、同じコードを通すと日本語が化けるという現象に突き当たった。単にhttpClientで取得したデータを…

Androidエミュレータを呼べない

WindowsでTitaniumからエミュレータを呼ぼうとしたら、 [DEBUG] AVD Skin: WVGA854 [DEBUG] SDK: C:\Android\android-sdk [DEBUG] C:\Android\android-sdk\platform-tools\adb.exe start-server [DEBUG] C:\Android\android-sdk\tools\emulator.exe -avd tit…

Android1.6向けの開発ができない?

Titanium Studio で色々アップデートがかかったので更新。 AndroidSDKも一応最新版を導入。で、ひと通りチェックのためにKitchenSinkや作成中のソースをコンパイルするテストを実施。結果。 TitaniumSDK 1.7.0 AndroidSDK1.6 InstallでINSTALL_FAILED_OLDER_…

Titaniumからメールを送らせる時

ボタンイベントで Ti.UI.createEmailDialog してメール送信画面を開くことは問題なくできるんだけど、送信をキャンセルしたとき、本来なら「下書きを削除」「下書きを保存」「キャンセル」の3択ボタンがでるのだけど、そこが英語になってしまう。「Delete D…

iOSの動画再生イベントについて

自分用メモ的な何か。creativeMoviePlayerで生成したプレイヤーの、再生時イベント。 あくまでも動作をモニタしながら類推したもの。どこかに公式ドキュメントはあると思うけど。「playbackState」イベント e.playbackState = 0 :再生前、もしくは再生終了…

scrollViewのscrollToがヌルい

画面最下部に横スクロールするボタン群を並べたメニューを作成している。動きや機能についてはscrollViewを使うことで容易に実現できたが、画面遷移の際の挙動が問題に。 メニューを少しスクロールさせた状態で画面遷移をした際、UI的にはメニューの位置は維…

WebViewのインジケータ

WebViewを生成する際、width:300, height:200 などと実数指定していたら、初回ページ読み込み時のインジケータ(くるくる回るアレ)が左上の隅っこに表示されてかっこわるい感じに。くるくるの中央がWebViewの(0,0)に相当する位置に固定され、くるくるの右下…

TitaniumでYoutubeRSS取得から再生まで

YoutubeのチャンネルRSSを受信し、YouTubeプレーヤーで再生するまで。 YQL(Ti.Yahoo.yql)で 'SELECT * FROM feed WHERE url="'+youtubeRSSURL+'"' みたいなクエリをキックする。 コールバックの中でrssitems = d.data.entryみたいな感じで取り出し、rssite…

アメブロのRSS取得に挑戦

TitaniumでアメブロのRSSを取得しようと試行錯誤。 KitchenSinkなどを参考に、HTTPClientでXMLとして取得・展開しようと考えていたのだが、なぜか他のブログなどのRSSは取得できるのにアメブロだけでレスポンスがNULLになるという現象が。色々調べた結果、こ…