iOSDC2018に参加してきました!

こんにちは、ニフティライフスタイルでアプリエンジニアをしている佐藤 光(@hicka04)です。

8/30(木)〜9/2(日)の4日間という過去最長のスケジュールでiOSDC2018が開催されました!!

私の所属するニフティライフスタイルからは私を含めて4人のエンジニアが参加し、うち1人が登壇しました。

本記事では実際に参加したセッションやイベントの様子について簡単にまとめて共有できればと思います。

(ブログを書くまでがiOSDCです!!)

個人的に特に参考になったセッション

どれも素晴らしいセッションばかりでしたが、その中でも個人的に特に参考になったセッションを抜粋してご紹介できればと思っています。

※個人的な興味で「アーキテクチャ」「自動化」「テスト」といったセッションを多く聞いてきたため偏りがあると思います。ご容赦ください。

設計時空のリファクタリング〜複数アーキテクチャを抱えたアプリのリファクタリング事例〜 @ktanaka117

https://www.slideshare.net/kenjitanaka58/ss-112280472

  • まさに自分が担当しているアプリと同じ状況だった
    • 複数アーキテクチャを抱えている
    • リファクタをしている
  • リファクタをすると壊れる可能性があるので、それをどう対処するのかが参考になった
    • Unitテストの導入と、一部手動テストで補う
  • イケてないコードは声に出していくのが大事とのこと
    • 声に出しているし、見つけたらできるだけ直しているつもり。今後もやっていくぞ
  • 当時の最善が今も最善とは限らないので、継続的に改修できるコードに保つことが重要そうだと感じた

MicroViewControllerで無限にスケールするiOS開発 @tarunon

https://www.icloud.com/keynote/0vgTYDXyHQTd0l1FKTiF1jT7g#MicroViewController-en

  • ベストトーク賞1位!!
  • 1画面1ViewControllerではなく、1画面複数ViewControllerで実装
  • メリットとして以下を上げていた
    • ViewController単位で分かれているところはコンフリクトを起こしづらいので、1アプリに対して20人以上が同時期に開発することが可能になった
      • 人が多いメルカリさんだからこその悩みなのかもしれない…
    • ViewではなくViewControllerを細かく分けることで、画面遷移の処理などが必要なViewController内に収めることが出来るので親のViewControllerと疎結合になる
    • 機能削除が簡単になる
      • ABテストなどで機能が必要なくなった際はViewControllerのファイルを削除してエラーを解消するだけらしい
  • ただ細かく分ければ良いというわけではなく、それぞれで適切なアーキテクチャの導入も必要とのこと

State of the Union ~2018年のアプリ開発事情~ @huin

https://speakerdeck.com/huin/state-of-the-union-2018nian-falseapurikai-fa-shi-qing

  • アプリ開発を取り巻く環境(言語、ライブラリ、アーキテクチャ、CI/CD、クロスプラットフォームなど)を網羅的に説明
    • 自分が担当しているプロジェクトで足りていないところを把握できた
  • 特に知見がない自動化周りの話が聞けてよかった
    • アプリに対応したCI/CDサービスは複数あり、プロジェクトにあったものを採用すべき
    • 最初から自動化の環境を整えておかないと、リリース直前はバタバタして導入が難しくなってしまう
      • すでにリリースを終えている場合は度のタイミングで導入するのがいいんだろう…?

iOS アプリの開発速度を170%に向上させたデバッグノウハウ @orga_chem

https://speakerdeck.com/orgachem/debugging-knowhow-that-improved-our-development-velocity-to-170-percent

  • ベストトーク賞2位!!
  • アプリ開発で多くの時間を使うデバッグを効率化させるノウハウをおすすめ度とともに紹介
  • 不安な箇所をすべて確認できるのがベストだが、影響範囲をすべてデバッグするのは現実的ではない
  • デバッグの手法を極めるより、テストの自動化によって「いかにデバッグが必要ない状態にできるか」のほうが効果的とのこと
  • ただ、自動化できるようにするまでには多くの障壁(自動化の谷)がある
    • 今まさに自分は自動化の谷にいる
    •  詰まったら誰かに相談したほうがいい
      • iOSTestNightとか
      • 本を読むとか(登壇者が執筆!!)
  • 自動化はレガシーなコードが積み重なると大変になるので
    • 新しいコードから手を付ける
    • 出来るところから少しずつ始める

    のがおすすめとのこと

  • 最後に紹介されているテストが書ける設計手法のスライドもおすすめなのであわせてどうぞ
    https://speakerdeck.com/orgachem/ios-detesutorong-yi-nashe-ji-wo-shi-xian-surutamefalsedezainpatan

iOSマイクロインタラクション入門 @koga_wiwi

弊社の長谷川(@koga_wiwi)が登壇しました。

こちらの記事にまとめておりますので、あわせてご覧ください!!

登壇した方々の発表資料

他にもたくさんのすばらしいセッションがありました!!

Qiitaにまとめがありますのでご参照ください

イベントなど

インタラクティブラウンドテーブル

特定のテーマに関して困っている人が集まり相談する会

今年から新たにできた企画です!

Qiitaにまとめてますので、こちらをご覧ください!!

以下所感を抜粋

  • その分野に詳しい人達からノウハウを聞く機会がなかなかなかったので、話を聞いているだけでも参考になった
    • 来年もやってほしい!!
  • 自分が質問したいと思っていたことは他の人も気になっていたようで、ちょっと安心?した
  • 「理想」と「現実」の落とし所や進め方も具体的に聞けて、自分がやるときのイメージができてよかった

最後に

上に挙げたセッション以外にも「これ、俺もやったわ」「ここ辛いよね…」といった共感をたくさん得ることができました。

今回は登壇ができなかったので、来年こそは皆さんに共感してもらえるようなネタを持ってきたいと思いました。

まずは、今回iOSDCに出したCfPで俺コンに登壇しますので、お時間ありましたらぜひ聞きに来てください!!

最後に、ニフティライフスタイルではiOSエンジニアを募集しています。

一緒に働いてみたい方は、@hicka04 までお声がけください。