株式会社ライブキャストロゴ 株式会社ライブキャスト

F-siteの「迎春!スマートフォン&タブレット端末向けアプリ開発ことはじめ」に行ってきた(その1)の続きです。

次は、@fladdictさんのプレゼンです。

Flashのスキルを基にしたiPhone/iPadアプリ制作のコツ

なんていうか、とても引き込まれました。その視点と言うか、考え方というか。

プレゼンの内容は、デザイナー向けに特化したものでもなく、デベロッパー向けに特化したものでもなく、「オレはflashを使ってこうやって成功した」というような感じで、技術系のセミナーでは珍しいとても新鮮なものでした。誰が聞いても面白いものだったろうと思います。

いくつか、印象に残った言葉があります。
※ ちょっと私の表現になってしまっているかもしれませんが、意味合いに差異はあまりないと思います。

  1. flash使いがi得意とするインタラクティブな分野で勝負できる
  2. flash(コンテンツ)とiPhoneの一番の違いは、マウスで操作するか指で操作するかの違い
  3. 明解にしなければいけない

2.の指で操作するということはどういうことか?
ある意味すごく当たり前のことなのですが、あらためて言われるとインパクトのある言葉でした。

  • ロールオーバーがない
    iPhoneでは、PCのflashコンテンツのように、マウスのロールオーバーでボタンの色を変えたりなどの表現ができない。
  • 指とマウスはサイズが違う
    iPhoneの場合、タッチされたことを認識するサイズが、44×44ぐらいのサイズの領域(ピクセル)が必要らしい。
    ※ これは貴重な情報です!

3.の「明解であること」は「視覚的に明解であること」ということです。「見ただけで押せるところ押せないところの違いを明解に」するなど。これにはいくつか理由がありました。

  • 説明書がない
  • ユーザは移動中など限られた時間に利用する
  • 無料のアプリはわかりにくければすぐに消される

Androidも含め、スマートフォン向けアプリやユーザの特徴を良く捉えた、わかりやすい表現です。Andoridアプリを少しかじっている私も、まさに実感しているところです。

また、iPhoneアプリの1つの特徴として、コンテンツの更新性ということもあげられていました。例えば、何か致命的なバグを抱えたままのアプリが、不用意にApp Storeにアップされてしまった場合、すぐにリカバリすることができないのです。何故かというと、、、

アップデート版を公開するにもAppleの審査が必要

だからです。
自分の所有しているサーバ上で展開しているサービスにバグが見つかった際には、即座に対応して即座に反映することができますが、App Storeの場合はそうはいきません。

これは、ユーザが離れてしまう理由の一番大きな要因ではないかと思います。細心の注意を払わないといけませんね。

アプリケーションの分類

それから、iPhoneアプリの種類と特徴についても言及されていましたので、整理しておきたいと思います。

  1. ユーティリティ型
    • 天気アプリなど
    • 遷移がないアプリケーション
    • 表面に機能があり、裏面に設定があるようなもの
    • 単機能、単目的
    • flashのようにインタラクティブ性の強いものと相性が良い
  2. ナビゲーション型
    • メールアプリなど
    • 階層がスタックするようなアプリ
    • 遷移構造がツリー状
    • データ連携やクラウド連携するようなものが多い
  3. タブ型
    • App Storeの様なアプリ
    • 主な機能が並列する
    • 複雑なものは、ナビゲーションと併用
    • 大規模なアプリケーションが多い
  4. 没入型
    • オリジナルのインターフェイス
    • 表面に機能があり、裏面に設定があるようなもの
    • 体験が重要な場合
    • flash使いの得意なインタラクティブ性が最も生きる
    • インターフェイスをすべて自作するので実装が大変

開発プロセス

それと、flash使いならではの開発プロセスを紹介してくれました。

  1. プランニング
    • 実働前の検証
    • 問題点の洗い出し
    • またそれをいかに解消できるか
    • 提案
  2. ペーパープロトタイピング
    • 紙とペンで作る
    • 考えられる限りのUIを何パターンか考える
  3. モックアップの作成
    • UI検証
    • 実際の使いやすさを検証
  4. 実装
    • プログラマにもコンセプトを理解してもらう
    • AIRで作成
    • ユーザからのフィードバックを受けてから、マルチデバイスに展開(iPhoneアプリの実装)

1.のプランニングでは、いかに生活を豊かにできるか?ユーザの生活に密着できるか?などを考えるそうです。深いです。よく考えること。これが売れるアプリの秘訣なのだと感じました。

2.のペーパープロタイピングについて、なぜ紙でやるか?を教えてくれました。

  • PCでUIを書いても、実機で見てみると使えなかったりする
  • iPhoneと同じサイズのポストイットを使っているので、実機に貼って使用感を検証できる
    ※ 親指でどこまでとどくかなども検証しているそうです。これにはちょっと鳥肌がたちました。すごい!
    ※ 言葉の端々に秘訣がちりばめられているので、本当に参考になりました。

3.で検証ができてはじめて、PhotoShopなどでデザインを作り始めるそうです。
私の場合、プランニングは頭の中でやって、実際にはこの辺から着手してしまうことが多いので、開発プロセスを再考する必要があるかもしれません。

思い返すと、4.の実装のプロセスは、私も同じような進め方をしていました。たまたまですが、AIRアプリを作ってからAndroidアプリを作ってましたので。ただ、これができるのは本当にflash使いの強みですね。

その他

いくつか参考になるアプリなどの紹介がありました。

●cocos2d

  • ゲームアプリ向けのフレームワーク
  • ゲームに特化した機能を提供
  • MovieClip的な仕組み
  • ゲームアプリの半分以上で採用されているらしい

cocos2dのサイト:cocos2d
iPhone向けcocos2dのサイト:cocos2d for iPhone
iPhone向けcocos2dのソースが公開されています:cocos2d-iphone – Project Hosting on Google Code

●Canabalt

  • flashで作られたゲームアプリ
  • iPhone版に移植され20万本以上の大ヒット
  • 売れたのでソース公開しちゃいます

flash版CANABALTのサイト(音注意):CANABALT
iPhone版CANABALTのサイト(音注意):CANABALT: Buy it with your moneys!!
iPhone版CANABALTのソース:ericjohnson/canabalt-ios – GitHub

※ どちらもiPhoneゲームアプリなどを作る際には、大いに参考になると思います。

最後に

質疑応答で興味深い話がありました。

狙いやターゲット層の見極めが重要だというようなお話でした。

例えば、、、
大規模開発であれば、プラットフォームとなり得るようなアプリ。
広告モデルであれば、twitterクライアントのような1日に何度も起動するようなアプリ。

極端な話、、、
1,000円のアプリを1万人に購入してもらえれば満足なのか?
100円で10万人に使ってもらえるようにしたいのか?

また、クレームは無料アプリであっても有料アプリであってもくる。どちらのアプリを出そうともサポートの重み付けが変わるわけではない。

サポートという意味では、新バージョンを重視しすぎると、旧バージョンへの対応がおろそかになり、旧バージョンのユーザ層から突き上げが来る(逃してしまう)。逆に旧バージョンのユーザ層ばかりを重視すると、新バージョンの新機能を有効活用できない。

大事なのは、そのバランス感覚だ!

次の@clockmakerさんのプレゼンも面白かったです。別エントリでご紹介したいと思います。