Flex User Group 勉強会 144回 @名古屋

行ってきました!
http://atnd.org/events/16380

今回はモバイルアプリ開発の話が主で、「AIR2.7によってどのくらいのことが出来るのか」という事が分かりました。

以下メモした分の抜粋です。
抜粋でも長い…

Flex 4.5 を使用したモバイルアプリケーションの開発 by AKABANA 有川さん

モバイルコンポーネント
  • 既存コンポーネント
    • 既存コンポーネントのスキンを変更することで対応している。それがモバイルスキンと言われている
  • モバイル用に最適化されたスキンを適用
    • ASでスキン作成されている
    • 非常に軽いスキンだから、普通のブラウザアプリに使ってもすごく軽い
モバイル用データレンダラー
  • 絶対にASで書かないと、思ったようなパフォーマンスが出ない
  • LabelItemRenderer
    • ASベース
  • IconItemRenderer
    • BitmapImageを使った描画処理
  • ContentCacheを使った読み込み不可の低減 重要
    • Imageコンポーネントの中にも突っ込める そうすると、外部イメージをキャッシュする事ができる
    • 外部イメージの読み込みを遅延ロード
    • 外部イメージのキャッシュ

モバイル用コンポーネント

モバイル用スキンがないコンポーネント

  • 自作する必要
  • 代表的なコンポーネント
    • アラート
    • コンボボックス
      • コンボボックスが無いから、画面を遷移させて選択させるしか無い。前の画面の選択のままにしておくためにneverにして置かなければならない
    • addeventでとりあえず取得して・・・・addからviewまでしかイベントが存在しないから、addでとったほうがいいと思う。popedVewの戻り値を取り出して、ボタンの値に入れている(ここのメモは微妙)

理解を深めるために

Q&A

  • 「最終的には実機でやると思うが、どうだった?」
    • Androidの時は実機でテスト。Androidに飛ばした」
    • 「データ系のところだけは、シュミレータでやって、動作は実機で見たほうが現実」
  • AIRはAndroidとiOS両方で出来ることしかできないようになっている。
  • だから、Androidでは使えてiOSで使えないという機能はない。逆に言えば、AndroidやiOSの独自機能はAIRアプリでは作れない
    • 電話帳使いたいとかは今はできない

AIRによるスマートフォンアプリ開発とネイティブ開発の違い 杉浦さん

メリット
  • AndroidとiOSで同じアプリを提供したい場合にソースの大部分を共通化出来る
    • ノウハウの活用
    • JavaObjective-Cを覚える必要なし
    • ユーティリティ系のクラスなどはそのまま使用可能
  • Web版Flexアプリのモバイル化
    • 処理ロジックなどは共通化可能
    • 通信に関しても共通化出来る。同じサービスを提供する場合はサーバ側をそのまま利用出来る
    • 同じ技術で実装できるため、開発人員の確保など楽
デメリット
  • パフォーマンスの問題
    • 2.7になって改善はされたが…
      • ネイティブ開発に劣る
      • 最重量級のUI予定ならばネイティブ開発を検討すべき
    • デバイスの連携問題
      • Androidだと、特定の機種の機能はそのハードメーカが提供するSDK adonが必要な場合がある。AIRからはできない場合がある
  • Web版アプリのモバイル化
    • ソース全てを流用できない
    • Webとモバイルは処理ロジックは共通可能だが、画面設計や繊維などは根本的見直し必要
      • パフォーマンス面もありUIまずつくり直すことになる

AIR2.7でAIR For IOSを試してみた by tonさん

以下ブログにまとめ有り!
http://ton-up.net/blog/archives/668

  • iPhoneで動かすには登録(10800円)必要
  • SDKダウンロードからiPhoneで動かすまでの流れ
    • すべてコマンドラインで
  • AIR2.6と7
    • 描画機能最適化された
Flash作るときのポイント
  • 画面サイズ
  • 回転
    • scaleModeをNO_SCALEにしておかないと、resizeイベントが撮れないから注意
  • CPUモードで作るかGPUモードで作るか
    • CPUモード
      • すべての描画をCPUで行う
    • GPUモード
      • 描画をGPUで行う
        • 特殊なコーディングなしで、高速化可能→AIR2.7だとそんなにさがない

以下はGPUモードでサポートされてない

  • Flexフレームワーク
  • フィルター、PixelBenderのブレンド、塗り もし、使ってしまうと表示されない(→はまる)
  • ブレンドモードのうち、レイヤー、アルファ、消去、オーバーレイ、オーバーライド、比較明暗
既知のバグ
  • Loader.loadByteがいOSで失敗する
  • TextFieldがtextInputイベントを送出しない、
  • 縦長モードで開始するとstage.orientationの値が誤って返される

etc...
AIR2.7リリースノート参照

    • 既知の問題という項目を参考に
まとめ
  • けっこういける
  • バグに注意 リリースノートに書いてあるのをちゃんと見ておく必要
  • Mac無しで全部できる
  • Flasherなら今すぐ作れる!

デバッグwifiを使って実機で出来ていました…!びっくりしました。



まだまだ、できないものやネイティブアプリにかなわない部分もあるようですが、普通にアプリが出来ているのにびっくりしました。
Titaniumなど色々出ている中で、今後どうなっていくかは気になりますが…
予想よりは全然、色々出来るようになっていて、選択肢として無いわけではないのだなと思いました。


ノベルティーわーい!ヾ(*´∀`*)ノ
お邪魔しました!