StoreKitトランザクションとFast App Switching

久しぶりにStoreKitについての記事です。In-App Purchase Programming GuideStoreKit Framework ReferenceにはFast App Switchingやスリープに関する説明がありません。しかし、購入手続きの途中にアプリ切り替え(Fast App Switching)が発生すると、アプリケーションは正しくトランザクションの状態変化を把握できなくなってしまいます。そこで、この問題についての対策を考えます。
※2012/05/22追記 この部分の挙動が変更になったようです。再検証を行ったのでこちらの記事を参照してください。

注意

この記事は、Apple公式ドキュメント類では説明/推奨されていない実装方法についての考察です。挙動や実装は将来的に大きく変わる可能性があり、動作は一切保証できません。参考にする程度にとどめ、もし下記に書かれている内容を実装する場合は自己責任で行ってください。 “StoreKitトランザクションとFast App Switching” の続きを読む

TestLinkのイケてる点とイケてない点

2011年終盤の個人的な関心の一つは、テスト体制の強化でした。
自分の仕事/プライベートで関わったプログラムで今年一年の間に見つかったバグについて、「自動テスト/人力によるテストのどちらによって防ぐ事ができたか」という割合を考えてみると、自動テストでは対応できなかったと思われるケースが多かったように思います。特にiOS/Androidアプリケーション、MacアプリケーションのUI関連で発生するバグはやはり今の段階で自動テストで対応していくには難しい部分が多くあります。
自動テストに頼り始めると、人力でのテストはとても面倒に感じられるようになります。テストの手順/内容をわかりやすく説明しなければいけない、テストを実行してくれる人を募集/確保しなければいけない、自動テストに比べると圧倒的に時間がかかる…等。これらの要素は人力テストの実行に消極的になるには十分です。それを防ぐためには、人力でのテスト実行の効率化をしていく必要がありました。
その中の対策の一つがTestLinkを使ったテスト全体の効率管理でした。先日は設置方法についてのポストを書きましたが、しばらく実際に使ってみての実感を書きます。 “TestLinkのイケてる点とイケてない点” の続きを読む

Unity勉強会

突発的に会社内でUnity勉強会が開催されました。
元々ちゃんとした勉強会を開く予定ではなく、「明日、休日だしUnityの勉強でもしようぜ」という話を@NagaishiYuuki君(彼は飲み会オール明けで来た。若い)に話していただけなのですが、前日の企画、休日の朝集合、しかも僻地という条件にも関わらず、いつのまにか社内外から9人の参加者が集まり、ちょっとした楽しい勉強会になりました。
午前中に全員でチュートリアルの内容や仕様等を確認し、その後2時間で各自ゲーム開発、中間レビュー、最後の2時間で仕上げる、という勉強会というより、日帰り合宿みたいな流れだったのですが、普段社内でUnityを使ったゲーム開発をしているメンバー2人がお台場から駆けつけてくれた事もあり、僕を含めたUnity初心者7人もそれぞれ物理演算を使った3Dゲームをある程度形にすることができました。改めてUnityの学習コストと開発コストの小ささはすごいなあと感じました。
あとはライセンスがもう少し安ければもっと仕事以外でも個人でも積極的に使いたいんだけどなあ。

オープンソースのテスト管理ツール TestLinkをさくらのレンタルサーバーに設置する

全てのテストを自動化することはできないので、どうしても特にUI関連等は人の手でテストをやってもらうことが多くなってしまいます。前はGoogle Spreadsheetsを使ってテストを管理していたのですが、さすがにプロジェクトの規模が大きくなってきて項目/テストの回数が多くなってくるとSpreadsheetsでの管理は効率がとても悪くなってしまうので、テスト管理ツールを導入することにしました。 “オープンソースのテスト管理ツール TestLinkをさくらのレンタルサーバーに設置する” の続きを読む

Windows Phone 7 シミュレータ

IS12Tの発売前から、どうもWindows Phone 7のUIが良くできている、という噂が流れていましたが、先日パンカクに来ている学生の子が買った実機を触らせてもらったところ、実際のところiPhoneにも劣らない程によくできていた印象を受けました。近年のMicrosoft製品のUIはどうも首を傾げてしまうものが多かったのですが、Windows Phone 7のUIは素直に気に入りました。
そんなWindows Phone 7のUIをiPhone / Android上で体験できるWindows Phone 7シミュレータが公開されたという記事がTechCrunchで紹介されてました。実際に手元のiPhone 4Sでアクセスしてみたところ、ほぼWindows Phone 7実機と同じようにヌルヌル動く。Safariで開いて実行するのでHTML/JS/CSSだけで実装されているのですが、よくJSでこれだけのものを再現できるなと感動します。もしかして、Windows Phone 7自体のUIもJSでできているのだろうか??ちなみにAndroidでも試してみましたが、一応動作はするもののブラウザの機能的な制約からか、画面効果はiPhoneに比べると地味なものになっており、また動きもAndroid特有のカクカクした感じになってしまっていました。
アプリのお試しの機構も面白そうだしXNAが使えて、しかも実機/OSの品質も良い、ということで結構Windows Phone欲しいなと思うのですが、ネックはアプリ開発がWindowsでしかできない点だなあ。
参考
マイクロソフトがiPhone/Androidユーザーのために、Windows Phone 7シミュレーターを作った

良いコードを書く技術を読んだ


本屋で偶然見かけたので買って読んでみました。保守性の高いコードを書くためのポイントが色々説明されている本です。小さい版で200ページ程度、内容もテンポが良いので半日〜一日もあれば一通り読めると思います。
内容は、質の悪いコードを書かないための割と広く知られている一般的/基本的な手法が紹介されていて、特筆するような目新しい内容は正直なところそんなにありません。が、基本をすべて網羅的に押さえるのは独学では時間がかかるものなので、初心者を卒業しようとしているような人にとっては、その後のステップアップにつながる良い本だと思います。あるいは、短い時間で読めるので、初心者が含まれるようなチームで開発をしていく際にメンバーで一通り読んでおくと「コーディング規約」以外の部分で哲学を共有していけてよいのではないかな、と思います。
残念な点は、ページ数が少ない点とタイポが結構多いこと。特に書籍内のサンプルコードでタイポが多いのは、「良いコードを書く」というタイトルからしてみると、直した方がよいような気が。

MacでopenFrameworksを使う(サンプルの構造を見てみる)

まず、サンプルとして配布されているwindowExampleの中身を読んでいきましょう。windowExampleはapps/examples/windowExampleにあります。windowExample.xcodeprojを開いて中を見てみましょう。 “MacでopenFrameworksを使う(サンプルの構造を見てみる)” の続きを読む

openFrameworksの基本

どうもOS XあるいはiOS用のプログラムをC++で書く、というのは邪道な感じがするので個人的にはopenFrameworksはそんなに好きではないのですが、作る内容によっては手間を最小化できるのは事実なので、前回のMakeから一年たった現在最新のopenFrameworksをもう一回勉強しておこうと思います。 “openFrameworksの基本” の続きを読む