iPhone用にFlashっぽいライブラリつくるのはどうか

驚愕の規約改訂:
iPhone アプリ開発の制限強化、Flash他から変換を締め出し - Engadget 日本版

そしてその結果:
Adobe、iPhone向けFlashを断念 Androidにシフトへ - ITmedia NEWS

あーあーあー。なんとも酷いことに。

最初規約改訂のニュースを知ったとき、僕はとても愕然とし意気消沈ました。それはiPhoneにこれからコミットしようとしているたくさんのFlash開発者を含む開発者を敵に回し、iPhoneOSのプラットフォームの進歩がAppleの意図とはまったく逆で停滞し、開発者が離れてしまうと思ったからです。iPhoneがここまで成長したのも、かつてどのプラットホームも実現出来なかったほど多種多様なサードパーティによるアプリに支えられていると思っています。Appleは企業間戦争だけでなく、もっと開発者の方を向いてほしいです。

プラットフォームにおける開発者にとっての参入障壁は、低いにこしたことはないと僕自身は思っています。Flashの他にも、UnityやMonoTouchなどで、C#での開発もできなくなりました。僕自身もRubyCocoa for iPhoneをやっていましたが、今回の規定改正で、ついぞ日の目を見ることががなくその前途を絶たれました。まったくもって残念ですし、まさにオワタ感。

絶望して悶々としていても仕方がないので、ずっとあれこれ考えていました。そこで以前考えていたアイディアを思いだしました。Flashフレームワークにできるだけ近づけたObjCのライブラリをOpen Source (AppStore対応で、MITかBSD) で作る、というものです。これであれば、規約的に問題ないはずです。

ObjCという言語の障壁は残るものの、フレームワークの違いによっての参入障壁が多少なりとも低くなったり、純粋にObjCのプログラムとしても作りやすいものがでできるんではないかなと。

ちなみに、現状あるライブラリの中ではおそらくCocos2dが一番Flashフレームワークに近いと思われるのですが、まず座標系が大きく異ったりといろいろあったりします。

このライブラリの具体的な方針を考えるとすると、若干ぼんやりしてますが

  • OpenGLベースでフルスクリーンのiPhone/iPadアプリを対象とする(まずは)
  • できるだけ薄くコンパクトにする。よく使われる部分からまず実装
  • 最終的にもAS3 100%互換は目指さない。AS3がわかれば理解しやすいような形にもっていくのが理想
  • リテラルはできるだけAS3に近付けたい (preprocessor??)
  • ObjCの動的な特性もなにか生かせれば

という感じで、まずはFlashで得意とする所のアニメーションプログラムであったりゲームが、できるだけFlashライクに書けるようなのを目指して作ったら良いかなあとか。

需要ありそうで誰も作る人が居なそうであれば、挑戦してみたいです。

Twitterなどでご意見頂ければ幸いです。


(追記 4/26)

ここで始めました。とりあえず名前は仮でflalib(なんと安直な…)

http://github.com/takuma104/flalib/

つかいかたは、こんな感じに書けます。

http://github.com/takuma104/flalib/blob/2c4cd2eb1da9506013769cfa3880bd43856c6006/Classes/samples/TestSprite.m

現状ビルドするとできるのは、UIImageから生成したBitmapDataをBitmap で表示したりぐらい。まだまだだいぶこれからです。