Appleのアプリの審査の早さ

最近アップデートしたアプリの、審査に入るまでの時間がかなり早かったです。 3、4日かかったアプリもありましたが、あるアプリはその日に審査に入って次の日にはリリース出来ました。 何故なのかは正確にはわからないですが、 どうやら昔から何度もアップデートしているアプリは審査が早いというのがあるらしいです。 それなら納得です。  

UIPickerViewの(ドラムロール?)ループについて

iPHoneで時計アプリのアラーム設定などで時や分の入力で使われているUIPickerViewですが、 例えば分だと59の次は0になるように、 値がループしていますが、 これは、ドラムのように本当にループしているわけではないようです。 0から59の配列のセットを何セットか設定して、 ドラムが止まった時に真ん中のセットの同じ値のところに瞬間移動させて、 ループがずっと続いているようにしているみたいです。 問題は、スワイプをし続けてドラムを止めないでずっと回し続けると真ん中に戻すタイミングが無いため、 最後の値に行き着いてドラムがそこで止まってしまいます。 止まればまた中央に戻されますので問題という問題にはならないですが、 最初からインストールされている時計アプリでさえそうなのだから、 このUIPickerViewにはループの機能が最初から無いようですね。

SpriteKitでスクロールビューを作る

SpriteKitにはスクロールビューはありませんので、 自作する必要があります。 rootViewContorollerにUIKitのスクロールビューを乗せるというのもありますが、 SpriteNodeもそのまま使いたいのでどうにか自作しようと試行錯誤したところ、 SKCropNodeを使うとうまく出来そうです。 スクロールビューの枠の外に出るビューはSKCropNodeのマスクで透明にする事で UIKitのスクロールビューのように表示のサイズとコンテントサイズを設定出来るスクロールビューが 作れそうです。 ページングやバウンド、スクロールバーなどまだまだ機能を作らないといけませんので、 ソースはまだまだ公開出来るものではありませんが、スクロールビューは作る事が出来ました。 あらためて、UIKitのスクロールビューは優秀だなと思いましたね。

SpriteKitでクリッピングマスク

SpriteKitでクリッピングマスクをするときは、 SKCropNodeを使います。 setMaskNodeメソッドでSKSpriteNodeをセットし、 そのスプライトのサイズと位置を指定する事でマスクをかけることができます。 SpriteKitは簡単にマスクをかける事ができるものもちゃんと用意されていました。

ライブラリのパス

x-codeでライブラリ(.aのファイル)を追加したとき、Build SettingのSearch PasthsにあるLibrary Search Pathsにそのライブラリファイルのパスが追加されるのだが、なぜか絶対パスで追加されるようだ。 なので、このLibrary Search Pathsの値の場所をダブルクリックして(そのほうが編集しやすいので)、各パスの編集で、絶対パスになっているものはプロジェクトの手前までのアドレスを消して相対パスにしないといけません。 ちょっと面倒です。

アイコンとスプラッシュ画像

x-code5になってから、アプリ開発の際のアイコンとスプラッシュ画像の登録がかなり楽になりました。 iOS7になってアイコンのサイズが変更になり、管理するアイコン数が増えましたが、 .xcassetsディレクトリ内で管理され、x-codeでわかりやすくGUIでドラッグアンドドロップで 設定できます。 この.xcassetsディレクトリの中を見て見ると、 例えばアイコンは、 アイコン画像とjsonファイルがあり、 このjsonファイルにx-codeが書き込んで設定情報を保持しているようです。 iOS5の実機で動くのか試したところ、 問題なくアイコンもスプラッシュ画像も表示されましたので、 ターゲットiOSに依存することなく使えるようです。

既存のEclipseにTitanium Studioをインストールする方法(for windows)

Titaniumは、iPhone , iPad , Android, さらには、BlackBerry, TizenといったスマートフォンのアプリをJavascript(若干拡張)言語で作ることのできるツールです。開発するにはTitanium StudioというGUI開発ツールがあり、無料で公開されています。(利用するにはユーザ登録が必要) これは、Eclipseをカスタマイズしたもので、実態はEclipseです。 なのでEclipseを入れておいて、あとからTitaniumをセットアップする方法を調べてみました。 日本語環境で使いたい場合にはこの方法がいいですね。 Eclipse日本語化 pleiades http://mergedoc.sourceforge.jp/index.html#/pleiades.html ということで、実際にやってみましたが、若干不都合な点があります。先に説明 […]

SpriteKitのパーティクル

iOS7から追加されたSpriteKit。 コードの単語を見る限り、使い方はcocos2dとさほど変わらないのかなと思いますが、 SpriteKitの良い所は、 X-codeにパーティクル作成ツールが最初から入っているところです。 newFile→Resource→SpriteKitParticleFile でパーティクルの変化を見ながら数値を変更出来るので、 簡単に面白いパーティクルが作れるのではと思っています。

Excelからjson形式へ変換 by Mr. Data Converter

Mr. Data Converter ウェブシステムを作っていてサンプルデータを作ってモック作りたい!ということありませんか? そんなとき、2,3件のデータを用意するのは手作業が早いけど、もっと10件とか20件のデータを扱う場合、json形式だったりxmlだったり用意するのが大変です。 そんなときに便利なサイトがありました。 Mr. Data Converter http://shancarter.github.io/mr-data-converter/ すばらしいです。 XMLやJSON形式以外にももっとあります。ASP/VBScriptやphpの場合は、言語の配列Arrayに入れてくれます。 Actionscript ASP/VBScript HTML JSON – Properties JSON – Column Arrays JSON – Row […]

URLスキーム(URL scheme)って

URLスキームって知ってますか? iPhone(iOS)アプリってアプリ間の連携って難しいです。そりゃそうです。簡単に他のアプリ内にアクセスできてしまっては、セキュリティ上よくありません。 ただ、完全にアクセスできないわけではありません。URLスキームという仕組みを使ってアクセスすることができます。 これは、当たり前ですが、アクセスされる側が許可している場合です。許可、ではないですね。そういう設定を入れているか、です。 書き方は、HTTPのURLを書くときと似ています。HTTPでなないものを指定することになります。 アプリ側の設定次第ですが、httpと同じくパラメータを引き渡すことができます。?key=value&…という形です。 appStoreの場合は以下です。 そのほか以下の通りです。 「ミュージック」アプリ 「Google Maps」 ただ、このURLスキーム […]

アプリ申請時のバリデーションエラー This bundle is invalid. The key UIRequiredDeviceCapabilities in Info.plist may not contain values that would prevent this application from running on devices that were supported by previous version.

iOSアプリを申請する際にバリデーションしますが、そのとき以下のメッセージが表示されるようになりました。 This bundle is invalid. The key UIRequiredDeviceCapabilities in Info.plist may not contain values that would prevent this application from running on devices that were supported by previous version. こんなエラーメッセージが出るようになった。 これは、古いバージョン対応させるなら、armv7が現在だと指定されていて、armv6を追加しろとメッセージがでていたのが、そもそも「UIRequiredDeviceCapabilities」こいついらないんじゃねぇ?ということのようです。 plistか […]