F-siteの「迎春!スマートフォン&タブレット端末向けアプリ開発ことはじめ」に行ってきた(その1)の続きです。
次は、@fladdictさんのプレゼンです。
Flashのスキルを基にしたiPhone/iPadアプリ制作のコツ
なんていうか、とても引き込まれました。その視点と言うか、考え方というか。
プレゼンの内容は、デザイナー向けに特化したものでもなく、デベロッパー向けに特化したものでもなく、「オレはflashを使ってこうやって成功した」というような感じで、技術系のセミナーでは珍しいとても新鮮なものでした。誰が聞いても面白いものだったろうと思います。
いくつか、印象に残った言葉があります。
※ ちょっと私の表現になってしまっているかもしれませんが、意味合いに差異はあまりないと思います。
- flash使いがi得意とするインタラクティブな分野で勝負できる
- flash(コンテンツ)とiPhoneの一番の違いは、マウスで操作するか指で操作するかの違い
- 明解にしなければいけない
2.の指で操作するということはどういうことか?
ある意味すごく当たり前のことなのですが、あらためて言われるとインパクトのある言葉でした。
- ロールオーバーがない
iPhoneでは、PCのflashコンテンツのように、マウスのロールオーバーでボタンの色を変えたりなどの表現ができない。 - 指とマウスはサイズが違う
iPhoneの場合、タッチされたことを認識するサイズが、44×44ぐらいのサイズの領域(ピクセル)が必要らしい。
※ これは貴重な情報です!
3.の「明解であること」は「視覚的に明解であること」ということです。「見ただけで押せるところ押せないところの違いを明解に」するなど。これにはいくつか理由がありました。
- 説明書がない
- ユーザは移動中など限られた時間に利用する
- 無料のアプリはわかりにくければすぐに消される
Androidも含め、スマートフォン向けアプリやユーザの特徴を良く捉えた、わかりやすい表現です。Andoridアプリを少しかじっている私も、まさに実感しているところです。
また、iPhoneアプリの1つの特徴として、コンテンツの更新性ということもあげられていました。例えば、何か致命的なバグを抱えたままのアプリが、不用意にApp Storeにアップされてしまった場合、すぐにリカバリすることができないのです。何故かというと、、、
だからです。
自分の所有しているサーバ上で展開しているサービスにバグが見つかった際には、即座に対応して即座に反映することができますが、App Storeの場合はそうはいきません。
これは、ユーザが離れてしまう理由の一番大きな要因ではないかと思います。細心の注意を払わないといけませんね。
アプリケーションの分類
それから、iPhoneアプリの種類と特徴についても言及されていましたので、整理しておきたいと思います。
- ユーティリティ型
- 天気アプリなど
- 遷移がないアプリケーション
- 表面に機能があり、裏面に設定があるようなもの
- 単機能、単目的
- flashのようにインタラクティブ性の強いものと相性が良い
- ナビゲーション型
- メールアプリなど
- 階層がスタックするようなアプリ
- 遷移構造がツリー状
- データ連携やクラウド連携するようなものが多い
- タブ型
- App Storeの様なアプリ
- 主な機能が並列する
- 複雑なものは、ナビゲーションと併用
- 大規模なアプリケーションが多い
- 没入型
- オリジナルのインターフェイス
- 表面に機能があり、裏面に設定があるようなもの
- 体験が重要な場合
- flash使いの得意なインタラクティブ性が最も生きる
- インターフェイスをすべて自作するので実装が大変
開発プロセス
それと、flash使いならではの開発プロセスを紹介してくれました。
- プランニング
- 実働前の検証
- 問題点の洗い出し
- またそれをいかに解消できるか
- 提案
- ペーパープロトタイピング
- 紙とペンで作る
- 考えられる限りのUIを何パターンか考える
- モックアップの作成
- UI検証
- 実際の使いやすさを検証
- 実装
- プログラマにもコンセプトを理解してもらう
- 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さんのプレゼンも面白かったです。別エントリでご紹介したいと思います。