【NEW】iOSアプリリリース【TIPS】

| 0件のコメント

新アプリとお手軽SPI(Ver1.4.2)リリース


「いまさら聞けない! 常識クイズ」をリリースしました!
あなたの常識力をチェック!
問題ごとの全国平均正解率を表示。正解できればあなたは常識人!?
シンプルなアプリなのでご意見次第でいろいろと変更していきますので、以下からダウンロードして使ってみてください♪

それから! iOSアプリお手軽SPI対策ver1.4.2をリリースしました!

○ iPhone5に対応しました
○ モード変更をサイドビューに変更しました
○ エントリーシート文字カウンター機能を追加しました
○ 問題のアップロードが可能になりました
(Ver2.0では問題のダウンロードに対応予定です)

ダウンロードはこちらです。

記事が短いので少しTIPSを書きます。

jQueryVisualizePlugin & jQueryTimer

jQueryVisualizePluginはHTML5のcanvasによってグラフを描画します。(canvas対応のためenhance.jsが必要)
線,円,棒グラフは簡単に描画できます。
データ参照元はtableの要素なので簡単にjqueryのDOM操作で変更できます。

オススメはjQueryTimerを使って、リアルタイムセンシングサービスのクライアントとして使う方法です。

MITライセンスなのもうれしいところです。

jQueryのBindでTouchイベントは反応するのか。

bindはイベントに対してコールバック関数を紐づけることができます。


$("要素").bind("イベント", ハンドラー);

通常はJS標準のaddEventListenerとか書くよりも楽です。
ただ、スマホなどのtouchイベントの場合は、少し事情が違うみたいです。
指の位置をとりたいとき event.touchesがダメみたいなので「originalEvent」内から取得する必要があります。

(参考)


$("#touch").bind("touchstart", touchHandler);
function touchHandler( event ) {
	alert( event.originalEvent.touches[0].pageX );
}

JOSN変換時にエスケープ文字を混ぜない対策


var obj = (new Function("return " + str ))();

文字列を連結してJSONとして送信しようとするとエスケープ文字が入ってしまいますが、
上の魔法の言葉を唱えるとオブジェクトにしてくれます。

ドット演算子と[]演算子

基本的なことですが、ヘッポコなので忘れないようにメモっときます。
ポストされたオブジェクトのプロパティを参照するとき、何のプロパティがあるかわかる時はドット演算子でOKです。

{height;168,weight:58} なら req.body.height

でも文字列と番号を含む場合などで調べる時はドット演算子でなく[](鍵カッコ)演算子を使います。
ドット演算子だと右側のオペランドは識別子(id)に限定されるためです。
鍵カッコは限定されないので文字列を使えます。

var key = “str_” + i;
key in req.body でプロパティがあるか確認した後に req.body[key] みたいに使います。

アプリのデプロイ

開発というより配置について。
HTTPリクエストを減らす工夫(リダイレクト含む)
– CSSスプライトで画像を分割する
– 描画に関係ないスクリプトにdefer 属性をつける
– Expiresヘッダに遠い未来の期限日をつけて静的ファイルをキャッシュに保存させる

[[amazon2][487311554X]]

続いてiOS関連です。

plsit(XML)の実機でのパーミッションについて

シミュレータではplsit(XML)は読み書き可能ですが、実機での保存先は書き込み禁止になります。
どうせならシミュレータでも書き込み禁止にしてくれた方が、開発が後戻りすることもないと思うのですが…

書き込み可能な領域にコピーして使うことはできます。
こちらを参考に。

状態管理などで頻繁に書き換えたり,短い文字列ならUDで充分ですが、plistで一元管理したい場合は使えるテクニック。

ちなみにシミュレータ上ではビルドごとにデプロイ先が変わるみたいです。
アプリ上でplistを書き換えた場合(writeToFile)、次回のビルドには反映されません。
Resourceに追加しているplistが変更されたわけでもないので少し気持ち悪い感じもしますね。

 purgeIdleCellConnections: found one to purge conn というエラー

これも実機のみで確認。
どうやら3G回線でアクセスした時に発生するみたいです。
このエラーが出る状態でもアプリ申請は通過するようなので気にしなくても良いかもしれません。

EXC_BAD_ACCESS (Thread1 > libobjc.A.dylib`objc_msgSend:)でクラッシュ

初回起動時だけ入力フォームを設けるためにviewDidAppearのタイミングでモーダルビューを表示しようとしたら,上記メモリエラー。
(viewDidLoadではmodalviewの呼び出しは書けない)

-(void)viewDidAppear:(BOOL) animated{
// here
[super viewDidAppear:animated];
}

発生タイミングはmodalview側のviewDidLoad当たりだと思うけどそこには何も書いてない。
起動時にView関連のコードを書きすぎてどこか解放された領域にアクセスしてしまっているかもしれないけど、シミュレータ上でのクラッシュ頻度は3回に1回程と不規則なので原因が特定しづらい。入力フォームはゲーム終了時に変更した。(逃げたようで悔しい…)

コメントを残す

必須欄は * がついています