Adam Bell
Adam Bellはカナダ人のiOSエンジニアでJailbreakコミュニティでiOSの活動を始め、現在はリバースエンジニアリングとオープンソース活動をしています。普段はアニメーション、音楽、プロトタイプをしているか、ソフトウェアのビットを操作する以外は、レゴで遊ぶかポケモンを育てています。以前はARTPOP、MessageBoxやIgnitionのプロジェクトに従事していました。現在はFacebookでiOSエンジニアとして働いており、アニメーションエンジン「Pop」などのプロジェクトのメンテナンスに関わっています
最後にアプリケーションの動きが非現実的、もしくは物理法則に従ってないと感じたことはいつですか?近年のアプリケーションは"フラットでシンプル"になっています。魔法のように感じられるアプリは非常に稀になっています。すぐれたジェスチャやアニメーションを備えたアプリケーションを作るために、プロトタイピングの方法を深く学ぶ必要があります。そして、失われた昔の魔法のようなアプリケーションを再現しましょう。
もしかして私が作ったものを知ってるでしょうか、
AppStoreではレディガガのアルバムアプリを担当したり
iOSに対する熱意は、音楽、インタラクティビティにあります
iOS何年もやってきました。
歴史を見てみます この動画覚えてますか?
iPad出た時のコマーシャルです。まずiPadそのものにワクワクしました。もう一つはアニメーションやインタラクションが、信じられないようでした。ページを3Dであけることが出来ます。 アニメーションやインタラクションがアプリを心地よくします。本当にリアルだが魔法のような感覚です。
お気に入りの言葉です。発達した技術は魔法と区別が出来ない。iOSは魔法の源ですね。
システムを通して同じ動きをするように設計されています。新しいインタラクション、アニメーションがすくなく、ジェスチャーが少なくなって良い感覚が無くなっている。必ずしも良い物ばかりではない。魔法がアプリからなくなってる。 パスブックは素晴らしく、削除したら切り刻まれたりしましたね?何が起きているのかわかりやすい。iOSパスはパス(行ってしまって戻らない)しました。
しかしiOS7では今は何処に行ったのかわからない。この操作は、テレビを消すのと同じ用に感じられてはいけませんよね?
Twitterはペインがこのようになっていて自分が何処にいて何が起きているのかわかりやすいです。 2ヶ月前のiPad Pro、フラットにしてiPhoen版を引き伸ばされただけ 素晴らしいアプリをProで探すならGragebandをどうぞ、スバラいいです。タッチして何が起きているかわかりやすい。本当にとても楽しい。クリエイティビティが呼び起こされます。 殆どのアプリがこうならなければなりません。
スキュアモーフィズムの話ではないです。インタラクションとこれは違います。 スキュアモーフィズムは実世界の物に似せることです。しかしインタラクションはFashionです。 スキュアモーフィズムには相互作用がないのです。 インタラクションはアプリ自体を楽しくするものです。 アニメーションは重要な要素です。操作の前後、後とのギャップを埋めてくれます。(ナビゲーションのPushPopの説明) フラットなデザインの中でアニメーションが後回し?されている。
通常3つ理由があります。必要ない、遅い、作るのが遅い。
違う観点から言うと、意欲がない、能力がない、惰性。 アニメーションが要らないところはあるでしょうか? アニメーションはストーリーを展開します。何かを進展させるプログレッション。 キャンディーを一つたべたら美味しいけど全部食べたら大変。バランスが大事。全く入れないと、理解することができなくなってしまう。 ここで何をするか考える必要があります。
【とんでもないアニメーションをするホームスクリーンの動画上映】
アニメーションには目的が必要です。何が起きるのかを見せる必要がある。そこには意図があるべき。 まとめましょう 意図を持ってアニメーション 何が起きるのかを見せる アニメーションのためだけにアニメーションしない
遅いから作らない? 遅い?フレームが落ちる?長い? CoreAnimation はフレームを落とさないデザインです。CARenderServerで優先度高く処理されるので最優先でスピードが維持される。最適化をしていないコードで使わない限りスローダウンは起きない。技術的に遅いのではなくてアニメーション自体が長いということが考えられる
オンラインゲームが送れるとかはいい、アプリが送れるのもまあいい、でもズームインに5秒かかったら苛々する。 アニメーションのために長い時間待たされると苛々する。 (じーっくり大きくなって画面を覆うトランジションの例) でも、そんなAppと戦わないといけないユーザーはどうするでしょう?そんなアプリ、まず削除します。 そしてアップストアでレーティングでひどいレビューをつける。がっかり。誰も望んでいない。
まとめ
ページをめくるなら5秒を0.5秒にしましょう。 良いアニメーションは教育をするが悪いアニメーションはいらいらさせる。 ピカチューみたいに皆を楽しませましょう。 アニメーションを作るのは難しい。 でも、良いアニメーションを作るのは、やるだけの結果を出してくれる。
ここに参加されるような皆さんなら、成功させようという課題を自分に与え、NOと言わないで下さい。チームでやっているなら、積極的なポジションがあなたの役割です。無理なんて言ってはいけません。
イテレーションではプロトタイピングが役割を果たします。折り紙などいろんなツールが有る。 Swiftカンファレンスなので通常はXcodeを使いますね
Swiftの前ではXcodeはプロトタイピングに向きません。
しかしPlaygroundができました。素晴らしい組み合わせです。
アプリをリアルタイムコンパイルして実行できるのでイテレーションにぴったりです。 スクリーンでのダイナミックなアップデートも確認で行きます
ジェスチャーもBetaではアクセスできます。iPhoneシミュレーターがコードの横にあるかのようになる。インタラクティブでとっても早い。ジェスチャーが全部揃っている。
設定がいろいろあります。ファンクションを設定してビューを追加、そしてこのアクションをする。プロトタイプにはよくないですね。もっと良いやり方、4行でやりたいですね
ナイスでシンプルです。 何故こう出来たのでしょう。 シンタックスがアフモファイアーに似ています。複雑だが使いやすい。
見えますか?触ると固まるので見るだけで。クリックするとイベントが走ります。
どうやって動くのか、ブロックを設定して、こちらがアサインされます。 ジェスチャーは見ましたね
アニメーションは
レイヤーは難しい。
アニメーションを中止するのがレイヤーで難しくなる。2つのレイヤーが非同期になる。すべてのアニメーションを動かすとモデルレイヤーに戻る。車がハイウェイで走っていてブレーキを踏むと?出発地に戻らずその場で止まる。それがレイヤーの構造でもあるべき。そのために必要な作業をします。全体でやるとコードが増える
そこでPopをつかって、その場でフリーズさせる。
それがアニメーションのインタラクションであるべき
PopでいいところはアニメーションがApp上で動いてラグも起きない
Springはダイナミックであるべき。Popアニメーションを設定して指と同じスピードで実行されるべき
作ってみましょう
20週年
これを良くします
CoreGraphicで書いています
そんな複雑ではないが時間がかかる。
モンスターボールからポケモンが出る様子をアプリに入れましょう
物理演算を確認しながらプロトタイプが出来るのは良い例ですね
モンスターボールが動かせます
ここで投げます
Springアニメーションを使っている。エンドポイントにSpringしている そこで機能を使って下に落ちてそこで止まるようにする
とめましょう
遠くにいくと小さくなるようにスケールアニメーションします。
やり過ぎなので半分、75%で
80?
最後、モンスターボールはクルッと回ってストップする、ゆっくりになって止まる。
これを爆発させたい。
こうして完成したものをアプリに入れる。
まとめ
Swiftで簡単にプロトタイピングが出来るようになりました
自分の限界を上げるようなプログラミングをすると良いです アプリの構築はオーケストラの指揮のようなものです。
@b3ll 氏のセッション楽しかった。アニメーションを工夫すれば魔法になる。アニメーションの開発はとても大切。 Playgroundのデモ良かったな。 Thank you so much for your awesome presentation! #tryswiftconf
— kandasu (@kandasu) 2016年3月3日
電光石火の英語名が Quick Attack で、スピードスターの英語名が Swift と。今日の学びだな。 #tryswiftconf
— 宇佐見 公輔 (@usamik26) 2016年3月3日
リッチなアニメーションが加わると相当見た目が良くなりますね。 #tryswiftconf
— merge (@color_box) 2016年3月3日
「海外のiOS開発者の中でポケモン(Pokemon)が共通知識になっている件とその理由 #tryswiftconf #Pokemon」をトゥギャりました。 https://t.co/mvZLCrEZbL
— トゥギャッター開発まとめ (@tg__dev) 2016年3月3日
気に入った記事は はてなブックマーク
はてなブックマークアプリiOS開発チームから来ました! はてなブックマークにはSwift特集があります! 良い記事を見逃さないように、ご利用ください! http://b.hatena.ne.jp/hotentry/it/Swift
そして良いまとめ記事があったらはてなブックマークでブックマークしましょう! try! Swift の記事で盛り上がると嬉しいです!