「Adobe AIRでスマートフォンアプリが簡単に作れるって聞いたんですけど、実際のところどうなの?」
について語り合いたかったので、今回はAIRをテーマにみなさんと勉強会をしました。
そういえばちょうど1年ぐらい前にも、モバイル開発についての勉強会やってましたね。
AIRでのアプリ開発は案外イケてるみたい
モバイルデバイス向けのFlashPlayerの開発終了が決まった、とのニュースを見て「Flashはオワコン・・」と決め付けるのはお待ちください。
まだまだアプリ開発等でもFlashで培った技術はそのまま活かせるよ!という期待を込めての発表がスタートしました。
発表者の @katapad さんのブログ&発表を要約すると、
「通常のFlashを作る感覚で問題なくサクッと作れる」とのことでした。
そうなんです!
僕もクソアプリを前日一晩で仕上げて発表しましたが(詳細は次回エントリーにて)、サクッと簡単に出来て拍子抜けするレベルでした。
アプリ開発環境としてAIRを推す記事は他にもありましたので紹介いたします。
- Flashはオワコンじゃなかった!Flash+AIRを使ったAndroidゲーム開発のポイント
- Flash+AIRで高速アプリが作れる!「Stage3D」を使ったAndroidゲーム開発のポイント
- FlashBuilderでiPhoneアプリ作ったのでまとめ | 宇都宮ウエブ制作所
Flashのようにお手軽にアプリを作ってみたい僕にとっては、明るいニュースでした。
ただ、@katapad さん曰く、「iPhoneやAndroid機の独自機能を使いたい時にまだすんなりいかない部分がある、、」とのことで、とても神妙な顔をしていました。「ANEまわりが初見殺しだ」ということで、その開発過程でだいぶ苦労なさったそうです。
彼のブログ次回更新時に、そのあたりのバッドノウハウと愚痴が掲載されることを祈りましょう。。
ANEってなんですか?
ANEとは、「Native Exension for Adobe AIR」の略で、iPhoneやAndroid機の独自機能を使う為の仕組みのことです。
例えば、iPhoneならObjective-C、Android機ならJAVAといったようなネイティブコードと連携し、ActionScriptS3.0 だけでは実現できなかったOS独自の機能が使えるようになります。
ANEを使うことで可能になるのが、デバイス独自UIの呼び出し、バイブレーション、通知サービス、GameCenterへのアクセス、課金サービスへの対応など。
ActionScriptからJavaScriptを間接的に実行するメソッドとして、ExternalInterface.call() というものがありましたが、これに近いイメージだと考えればよさそうです。
これさえ使いこなせればもう怖いもの無しっスね!
立ちふさがるANE開発の壁
ただ、ANE開発はそう簡単にはいかないらしく、独自機能を実行する部分は当然ネイティブコードで書く必要があり、また、連携させるための工程がクソめんどくさいこともあって開発の敷居は高そうです。
いろいろネット上で検索してみたところ、
「ANEを含めたビルドにはやはりMAC一択」というブログ記事にも行き着きました。
やはり本格開発するとなると、まだすんなりいかない箇所も多いんですね。。
それはそうとして、AIR for Android本を執筆なさった @okamotomasaaki さんや、自身のブログでANEについて調べまくったという @ikekou さんによると、ネイティブ機能を実行する為に必要な aneファイルが有志によってネット上で公開されてるらしく、簡単な機能であれば1から開発するよりそっちを探す方が手っ取り早い、とのことでした。
ネット上に落ちてるaneファイルを探せ
そんなわけで、ANE開発を断念した者達に贈るリンク集です。
高度なものはダウンロードが有償の場合があります。
- Native extensions for Adobe AIR | Adobe Developer Connection
- Adobe公式のANE特集ページ
- Community of Native Extensions for Adobe AIRNative Extensions for Adobe AIR
- 海外のANEコミュニティ
- AIR Native Extension LIST – Google ドキュメント
- @okamotomasaaki さんが、ネット上に散在するANEライブラリ達をまとめてくださったGoogleドキュメントです!ありがとうございます!
上記で拾ったaneファイルの使い方は、下記記事の解説がわかりやすいです。
AIRの弱点:ファイルサイズの肥大化
AIR書き出しの弱点として、アプリとして書き出したファイルサイズが肥大化する問題があります。
僕も試したところ、300KB程度のswfファイルが、iPhoneアプリ用ipaファイルとしてパッケージして 8MBぐらいになり、さらにそれがiPhone上では12MBぐらいまで膨らんだのを確認しました。
3G回線では20MB以上のアプリにダウンロード制限が掛かるので、これは無視できない問題です。
肥大化の原因は、AIR のランタイムを同梱している為で、例えるならアプリごとにFlashPlayerを積んでるようなものです。
この問題に関しては、Adobeの人が「アプリで使っているソース部分だけを書き出すようにして軽くなるように善処します」って言ってました。
あと余談として、ipaファイルをiPhoneに載せるだけでファイルサイズが膨らむ理由は、ipaファイルが実はzip圧縮されていてそれがiPhone上で解凍されるから、とのことらしいです。
気になる人は、ipaの拡張子をzipに替えて解凍してみよう。
まとめ
ANEというハードルはあれど、AIRは僕にとっては強力な開発環境であると思えました。
ただ、僕がAIRを推す意見は、Flash寄りの人間だからということも十分にあると思いますので、
アプリを作る開発環境については、それぞれみなさんの得意分野から選べばいいと思います!
参加してくださったみなさん、どうもありがとうございました!
これでようやく敬遠していたアプリ開発へと踏み出せそうです。(まずはクソアプリから。。)
「大阪てら子44『僕らのAIR大作戦☆』にて、AIRを使ったアプリ開発について学んできました」への3件の返信
[…] 大阪てら子44『僕らのAIR大作戦☆』にて、AIRを使ったアプリ開発について学んできました – sakotsu inspire blog […]
[…] Older […]
[…] via 大阪てら子44『僕らのAIR大作戦☆』にて、AIRを使ったアプリ開発について学んできました – sakotsu inspire blog […]