A Day In The Life

とあるプログラマの備忘録

iphone

ゲーム開発初心者がはじめて2Dゲームを作ってみてわかったこと

こちらの記事にも書きましたが先日「Hedgehog Drive」という2Dのゲームをリリースしました。 ハリネズミと遊ぼう!指でなぞるだけのシンプルな2Dゲームをリリースしました アプリと違ってゲーム開発は初めてということもあり、苦労したところが多かったので…

ハリネズミと遊ぼう!指でなぞるだけのシンプルな2Dゲームをリリースしました

先日、iOS向けの2Dゲーム「Hedgehog Drive」をリリースしました。 画面を指でなぞって丸いセルを消していくシンプルなゲームです。アプリは無料で広告表示もありません。 4才の娘がルールを理解して遊べるようにゲームのバランス調整をするのが大変でした。…

新作アプリ即興ピアノをリリースしました。

昨日2月14日に新作iPhoneアプリ「即興ピアノ」をリリースしました。 即興ピアノは音階を固定(例えば C Major とか G Major とか)してピアノを弾くことができます。音階が固定されているので適当に弾いても音がにごらず即興演奏で弾いたかのように聴こえます…

CLLocationManagerDelegate のメソッド内で CLLocationManager インスタンスを release すると EXC_BAD_ACCESS で落ちる

CLLocationManagerDelegate の didUpdateToLocation メソッド内で CLLocationManager のインスタンスを release すると EXC_BAD_ACCESS が発生してアプリが落ちるという現象にハマったのでその対処方法をまとめます。 @interface HogeController : UIViewCon…

iPhoneアプリ開発時のメモリ管理で気をつけること(マルチスレッド編)

以前iPhoneアプリ開発時のメモリ管理で気をつけることという記事を書いたのですがマルチスレッド時のメモリ管理に関して全く触れてなかったのでまとめてみました。 NSAutoreleasePool はスレッドごとに作成する 処理を別スレッドで実行する場合、スレッドご…

iPhone/iPad & Androidプログラミング入門

iPhone/iPad&Androidプログラミング入門 (日経BPパソコンベストムック) 去年の12月に日経ソフトウェアに書いた記事「16個のサンプルで一目瞭然高度な機能がすぐ使える!」がiPhone/iPad & Androidプログラミング入門に再掲載されました…

知識ゼロからはじめるiPhoneアプリ開発

iPhone アプリ開発を初めてはや2年。わけわからんレベルからなんとかアプリをリリースするところまでこぎつけました。もともと趣味ではじめた事ですが今は仕事でも iPhone アプリ開発をしています。ここに至るまで自分が調べたことや参考にした文書をアプリ…

マルチタスキング対応後のアプリのイベントフローをまとめてみた

※iOS 5の登場でこの記事の内容は古くなりました。最新の情報は以下の記事をご覧ください。 iOS のイベント駆動をライフサイクルイベントとユーザアクションイベントにわけて理解する iOS4で導入されたマルチタスキングですが便利な反面イベントの発生順序が…

iPhone の地図上に簡単に図形を書く方法

以前は MKMapView 上に線を引いたり四角形を書いたりするのに自前で View を作成しないといけませんでしたが iOS4 になって地図上に図形を書くためのクラスが追加されました。使い方がわりと簡単なので紹介したいと思います。 地図に線を引く 地図に線を引く…

iPhoneとAndroidでちょっとしたデータの保存方法を比較してみる

データベースを使うほど大げさなものじゃなくて、ちょっとしたデータを保存したいときって結構あると思います。 そんな時iPhoneはNSUserDefaultsクラス、AndroidはSharedPreferencesクラスを使います。両者ともにKey-Value形式でデータを保存できます。ただ…

タイマーを使って電子コンパスの動きを滑らかに見せる方法

iPhone 3GSの電子コンパスは角度が変わったときに値を取得することができます。AR系アプリや地図アプリなんかでコンパスの値と連動させてUI部品の位置を変更する場合、角度が変わるタイミングでUI部品を動かすとどうしても動きが「カク」っとなってぎこちな…

iPhoneとAndroidのアプリケーション間連携方法を比較してみる

アプリAとアプリBがあり、アプリAでテキストボックスに文字を入力しボタンを押すとテキストボックスの内容をアプリBの画面に表示するサンプルを使って説明します。 iPhoneの場合 iPhone では UIApplication クラスの openURL メソッドを使うと他のアプリを起…

Podcast「Apple News Radio ワンボタンの声」の特番で本ブログ記事が紹介されました。

Podcast「Apple News Radio ワンボタンの声」の特番で本ブログ記事iPhoneアプリの販促活動に関してまとめてみたが紹介されました。おかげさまでブログのアクセス数とLinkedWordの売り上げが増えました。本当に有り難うございました。 特番には「そら案内」の…

LinkedWordのアイコンを変更しました。

英英辞書アプリLinkedWordのアイコンを変更しました。言葉のつながりを木で表してみました。 変更前 変更後 Processingを使って木を描き、それをベースにInkscapeで葉っぱと文字を追加しました。 関連記事 ビジュアル英英辞書LinkedWordをリリースしました

iPhoneとAndroidで真北の取得方法を比較する

この前書いた日経ソフトウエア2010年1月の記事の中でiPhoneとAndroidの電子コンパスについて書いたのですが、紙面の都合上Androidで真北をとる方法を載せることができませんでした。せっかくなので補足の意味も込めてAndroidで真北をとる方法を紹介しiPhone…

日経ソフトウエア2010年1月号にiPhoneとAndroidの記事を書きました。

11月24日に発売された日経ソフトウエア2010年1月号に同僚の麻野さんと共著で「iPhone vs Androidプログラミング」という記事を書きました。 この記事の元ネタは以前このブログで書いた以下のブログ記事です。 開発者目線でAndroidとiPhoneを比較してみる こ…

i新幹線予約をリリースしました。

iPhone/iPod TouchでJR東海のエクスプレス(Express)予約サービスを使うためのアプリi新幹線予約をリリースしました。 現在、iPhoneの標準ブラウザでエクスプレス予約サービスを表示すると画面右端が切れてしまいサービスを使うことが出来ません。このi新幹線…

iPhoneアプリの販促活動に関してまとめてみた

ビジュアル英英辞書アプリLinkedWordをリリースして1週間ほど経ちました。色々と販売促進(プロモーション)活動をしてみましたがむやみやたらと告知をしても効果が出るわけではありませんでした。 次から効率よく販促できるように今回行った販促活動とその効…

ビジュアル英英辞書LinkedWordをリリースしました

8月からアップルに申請を出していた英英辞書アプリLinkedWordがやっと審査に通りました。 機能はとてもシンプルで英英辞書に画像検索と類義語、対義語検索機能を付けたアプリです。英語の学習にちょうど良いと思います。ちなみに辞書検索にはWordNet、画像検…

AVAudioRecorder の基本的な使い方

AVAudioRecorder クラスの日本語の情報があまりなくて実装するときに結構ハマったので実装方法をまとめておきます。 オーディオ情報の設定 まずアプリでオーディオのどのような機能(再生とか録音)を使うかを設定します。AVAudioSession クラスの setCategory…

iPhoneでGmailをプッシュ受信すると文字化けする

以下の記事でiPhoneでGmailをプッシュ受信する方法が紹介されていたので試してみました。 iPhoneの設定のみでGmailをPush受信する方法 うまくGmailをプッシュ受信できたのですが、ただ残念なことに携帯電話(確認したのはSoftBank)からメールを送ると日本語が…

iPod Touch卒業

休み中にiPhoneを買いました。auが好きだっただけにかなり迷いましたがiidaパッとしないしAndroid携帯もいつになるかわからないのでやめました。 ソフトバンクショップで買ったのですがなかば無理やりWホワイトと基本オプションパックに入らされ後々解約とか…

リジェクト2回目

昨日、Appleから2回目のリジェクト連絡がきました。理由は以下の通りです。 "Applications may be rejected if they contain content or materials of any kind (text, graphics, images, photographs, sounds, etc.) that in Apple's reasonable judgement …

iOSアプリ開発のメモリ管理で気をつけること

Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから…

In Reviewのまま2週間がたちました。

8月11日に再レビュー依頼をしてから2週間経ちましたがAppleからはなんの音沙汰もなく、不安になり以下のような問い合わせメールを出してみました(英語に自信がないので間違ってたらご指摘ください)。 Subject:When does the review end? Hello, App Review …

リジェクト1回目

8月9日に、申請していたiPhoneアプリの審査結果が出ました。結果はリジェクトでした。 理由は以下の通りです。 Our review indicates that the application content is not consistent with the current rating because it contains potentially mature cont…

アップルにアプリを申請しました。

昨日、iPhone/iPod Touchアプリを一つアップルに申請しました。今回作成したアプリは複数のWebサービスを使った英英辞書アプリです。土日と仕事終わってからの時間を使って約1か月ほどで作成しました(開発開始は7月7日ぐらい)。 以下開発にかかった工数(延べ…

複数のHTTPリクエストを投げるときはNSOperationを使おう

現在、iPhone SDKで簡単なマッシュアップアプリを作成中です。マッシュアップアプリなので一度の操作でいろんなところにHTTPリクエストを投げる必要があるのですが、そんな時にNSOperationを使うとものすごく便利です。NSOperationを使うことで複数のHTTPリ…

UINavigationBarにUISearchBarをセットする時に気をつけること

init系(initWithNibName:bundle:とか)メソッドで以下のようにUISearchBarをナビゲーションバーにセットするとナビゲーションバーのバックボタンを押したときに再びtableView:accessoryButtonTappedForRowWithIndexPath:メソッドが呼ばれてしまいます。 // 呼…

UIViewで2つ以上のアニメーションを同時に実行する方法

同時に2つ以上のアニメーションを動かす場合は以下のようにbeginAnimations: context:メソッドとcommitAnimationsメソッドをネストすると出来ます。 [UIView beginAnimations:nil context:NULL]; { // アニメーション1つ目 [UIView beginAnimations:nil con…