2012年2月24日金曜日

iPhone7行砂嵐アプリ


今話題のgumroadを使って、せっかくなのでなんか売ってみたいと思い、
試しに作ってみました。たった7行(横幅は80文字)で書かれたiPhoneの砂嵐表示アプリの
ソースコードです。

https://gumroad.com/l/lJbk ($1)

アプリを起動すると、左にあるような砂嵐が画面に表示されます。

まぁそれだけっちゃそれだけですが、せっかくなので売ってみます。

大変だった点は、とにかくapplicationDidFinishLaunchingとか、CGBitmapContextCreate
などの長い名前のキーワードを、以下に1行の中に押さえるか、ということでした。

通常iPhoneアプリを作るときは、InterfaceBuilderを利用したりしますが、
このコードは純粋にmain.mの一つだけで、7行です。
ポイントは、UIApplicationDelegateをUIWindowのサブクラスに実装させることで、
クラスを一つだけにすることです。

しかし、そのままだとwindowの生成に失敗するので、windowの初期化コードを、
オーバーライドされたinitの中に記述し、正しく初期化されるようにします。

まぁ他にも省略可能なメソッドの型名やインスタンス変数の宣言などはとことん削り、
グローバルに全て持ってしまっています。

selfとかくのも長いので、一旦sなどの一文字の変数にとっておいて、
それを逐次参照しています。

バッドノウハウの塊ですが、以外と参考にはなるとおもうので、よければぜひ。