2012/09/24

iPhoneアプリからPOSTしたデータの確認

iPhoneアプリからサーバへ画像をPOSTする機能を実装しているとき、サーバサイド(今回はPHP)の出力(printやechoなんか)がXCode側で見られなかったので(俺がやり方をしらないだけ?)、サーバ側のテストプログラムでファイルを出力して確認してた。

一応インターフェースは決まっているが、名前ぐらいなので、POSTができない場合に問題を切り分ける必要があった。
つまり、アプリからはちゃんと送れてるぞという主張の根拠を提示したかったわけだw

ネットでvar_dump()をファイル出力する方法を見つけたので、$_REQUESTと$_FILESの情報をそのままvar_dump()してファイルに書き出してみた。拡張子が.htmlなのは、var_dump()して出力される内容がhtmlだったから。ブラウザからも確認しやすくてスゲー便利。var_dump()サイコー!

<?php

/**
 ■POSTサンプル
 
*/ if (isset($_FILES['file_data']['tmp_name'])) { // リクエスト情報 $filename = '_REQUEST.html'; ob_start(); echo "var:\n"; var_dump($_REQUEST); $out = ob_get_contents(); ob_end_clean(); file_put_contents($filename, $out); // ファイル情報 $filename = '_FILES.html'; ob_start(); echo "var:\n"; var_dump($_FILES); $out = ob_get_contents(); ob_end_clean(); file_put_contents($filename, $out); // ファイルを移動 copy($_FILES['file_data']['tmp_name'], getcwd( )."/".$_FILES['file_data']['name']); }
※うーむ。SyntaxHighlighterがおかしいなぁ。コードの後に謎の空行がたくさん…

2012/07/23

文字実体参照を記号(文字)に置き換える

JSONやXMLデータを表示するクライアントを作った時などに、文字実体参照になっている記号がそのまま &amp; とか表示されたりする。
パーサがお利口な場合はよしなに記号に置き換えてくれたりするけど、そうじゃない場合もあるので、その場合は自前で文字列置換を行ってあげる必要がある。

自前のアプリでは今のところ下記について対応していて、必要があれば適宜追加していっている。

&quot;"
&#34;"
&amp;&
&#38;&
&apos;'
&#39;'
&lt;<
&#60;<
&gt;>
&#62;>

てなことを &amp; が表示されちゃってるTwitterアプリを見て思ったりしたw

2012/06/30

Corona SDKにもNativeExtentionがキター!?

6月はこのネタでブログ書けるなと思っていた申請中のアプリがIn Reviewのまま持ち越しとなってしまって、アプリ・リリースのエントリが書けないので別ネタを滑り込みでw

http://docs.coronalabs.com/native/enterprise/
というページがあるという情報を受け見に行ってみると、やっとCorona SDKを拡張できる仕組みが提供されるみたい。\(^O^)/
(Titanium Mobileでいうところの“Module”、AIRでいうところの“NativeExtention”みたいなものらしい)

そもそも私がCoronaを気に入っている理由はOpenGLベースの描画を使ったアプリをOpenGLの知識無しに比較的簡単に開発できる点にある。
本来Corona SDKは2Dゲーム用のミドルウェアなのでこういった作りなんだけど、ゲーム以外のアプリでも凝ったUIを作ろうとしていくと、結局のところ標準UIの設定をちょっと変えたぐらいでは実現できないという状況になり、ツール系アプリなんだけどOpenGLで作るか?という選択肢も出てきたりするのが実情である。(でもcocos2dにしろ生OpenGLにしろ敷居高いよね)

そんな時Corona SDKのようなツールだったら、画像ベースのパーツを組み合わせて動かすことによって、オリジナルのUIを作り易く速度も遅くない。(デザイン・ガイドラインに沿った上でのオリジナリティか、完全にオリジナルな世界観を持ったUIにするかは別問題なのでここではおいといて(/^^)/)
ただツール系アプリでは、提供されるSDKを利用するという場合も多いので、なかなか悩ましい状況であった。
※もしCorona SDKのようなツールでネイティブ拡張が可能なツールが出てくれば乗り換えてもいいと思っていたw

ここにNativeExtentionの登場である。

まだ動かして試してないし、ざっと見ただけなので勘違いもあるかもしれないが、Luaで書くCoronaのアプリに、自分でObjective-C(iOS)またはJava(Android)で書いたコードを使ったり、開発者向けに提供されているWebサービスや広告のSDKを組み込んだりできるようになるものらしい。

これでCorona SDKがかなり強力なツールになったといえる。
そしてObjective-Cを仕込んどいてよかったと本当に思う。

なんか動かせたらまた記事にします。