Bonfire iOS #4に行ってきた

Bonfire iOS #4に行ってきた

Image-1
本日はYahoo!Japan社が開催するiOS勉強会Bonfire iOSに行ってきました。

Bonfire iOS #4

今回のテーマはUIです!

第4回のテーマは「UI」です!

UI、それはアプリ開発と切っても切り離せない関係……

どうやって保守しやすくUIを定義していくか
どうやってユーザビリティの高いUIを作っていくか
どうやって多人数で協力してUIを作っていくか
どうやってツール(Auto Layout, Storyboard, …)と向き合っていくか
どうやって非同期処理と連携していくか
どうやって新しい分野(AR, VR, …)でのUIを作っていくか
などなど、それらのどれもが昔から、そして現代においても重要なテーマです。 今回はUIという大きな課題に対して、各々どう向き合っているのかを話のネタに交流し、気づきを得られる夜にできればと思っています。

健康なStoryboardを考える 〜 Auto Layout、UIStackViewともっと仲良く!

最初はゆこびん(@yucovin)の発表です。
エンジニアはクリーンで読みやすく保守しやすいコードを書くことに命を削ってますが、デザインになるとそこまでの情熱がなくなってしまいがちです。
でもStoryboardのレイアウトもコードと同じようにクリーンで読みやすく保守しやすいレイアウトを組んでいくべき!という主張をもとにどんな風にレイアウト組んでいけばよいのかを発表していました。

技術的なエラー(制約の矛盾)とデザイン的なエラー(デザインをレイアウトで再現できていない)の2つの観点からレイアウトを組むとよいとのこと。

AppleのAutolayoutのドキュメントは再度しっかり読み込む必要があるなと痛感しました。特にHugging Priority, Compression Resistance Priority周りは再入門しなきゃいけないな。

デザイナーxエンジニアの共同UIづくり

ヤフー株式会社「Yahoo!乗換案内」のデザイナー花井 舞 (@m871) さんと田中 達也 (@tattn) さんの共同発表です。
アプリ「Yahoo!乗換案内」でデザイナーとエンジニアでペアプロをしながらアプリを実装していったお話でした。
今までデザイナーはカンプを作るところまでだったのをStoryboardを使ってデザイン実装するところまで領域を広げたそうで、どのようにチームとして役割分担をしていったのかを発表していました。

ユーザーインターフェースと非同期性について

株式会社はてな、加藤 尋樹 (@cockscomb) さんの発表。
Reactive NativeやFlutterなど新しいUIフレームワークがどのように非同期処理を実装しているのかを共有するお話でした。
加藤さんのしゃべりに癒やされました。

ARKit + CoreLocation

続いてヤフー株式会社「Yahoo! MAP」の徳元 健太 (@totomo1217) さんの発表。
Yahoo! MAPアプリでARKitを使って道案内アプリを実装したお話を発表していました。
ARKitで表示されたカメラ領域とGPSから取得されたCoreLocaitonの領域をどのように変換していくか。オブジェクトをどうマッピングしていくかなど、ユーザーが迷わず使えるような配慮をYahoo! MAPでどのように実装したのかが詳細に語られていました。
私もARKit + CoreLocationで何かしたいなと思っていたところなのでとてもタイムリーな発表でした。
座標変換をしっかり考えないといけない印象を持ちました。

快適なUIを持つアプリを作るためにやっていること

株式会社エウレカでpairsアプリの海外版を作っている木村 寛 (@muukii0803) さんの発表。
UIの確認はともすると手間がかかりがちでそのために確認漏れでバグが発生することがたびたびあります。確認の手間を減らすための工夫を発表していました。
例えば、サーバーの向き先を本番、開発にボタン1つで切り替えられたり有料会員、無料会員などユーザーの状態を擬似的に切り替えられたりです。またそれを再ビルドなしで切り替えられるようにするなども行っているそうです。
私も開発で取り入れたい実例がたくさん発表されていました。

エクストリーム・プログラミング開発におけるUIテスト〜ライブコーディングを添えて

ヤフー株式会社 ヤフオク!の山下 真一郎 (@shin_yahoojp) さんと山下 真一郎 (@shin_yahoojp)さんの発表。

ヤフオクチームが取り入れているというエクストリーム・プログラミング開発を実際にライブコーディングで体験できる発表でした。
エクストリーム・プログラミング開発でストーリーを作り、見積もりを出す。その後にTDDを取り入れて、ペアプロをしているそうです。一人がテストを書き、もうひとりが実装をする。という流れを追体験できる発表でした。

YahooJapanさんはペアプロを推奨していてそのためのLab施設も持っているそう。
実際にバグ報告が少なくなって生産性がアップしているそうです。

最後に

イベントが終わっての感想。

  • AppleのAutolayout関連のドキュメントを読み返そう
  • YahooJapanさんは開発はペアプロを積極的に取り入れて実際生産性も上がっている。
  • ARKitとCoreLocationは座標変換をきちんとする。
  • 加藤さんが書いた本はこちらです。みんなも読みましょう!
iOS 11 Programming

iOS 11 Programming

  • 著者:堤 修一,吉田 悠一,池田 翔,坂田 晃一,加藤 尋樹,川邉 雄介,岸川 克己,所 友太,永野 哲久,加藤 寛人,
  • 製本版,電子版
  • PEAKSで購入する