iOSDC Japan 2019に参加しました
こんにちは。9月からJoinしました、iOSアプリエンジニアの牧野です。
入社間もないですが、2019/9/5〜9/7に開催されました iOSDC Japan 2019に参加させていただきました。
この記事はその参加レポートです。
iOSDCはiOS関連技術をテーマにした技術者のためのカンファレンスで、
今年で4回目の開催とのことです。
今回は私が参加したセッションの中で特に印象に残ったものをいくつかレポートをさせていただきます。
ちなみに弊社iOSエンジニアのtakasekも登壇しておりました。
スライドと全文書き起こしがありますので、興味のある方はぜひご覧ください!
iOSアプリエンジニアの多くが1度はハマったことがあるライブラリのインポートやリンク周りについて、その仕組みや問題発生時のトラブルシューティングをわかりやすく解説いただきました。 具体的には
- ライブラリの種類と形式
- フレームワークとライブラリの違い
- モジュールとは何か
- インポートとリンクとは何か、それぞれが行っていること
- インポートエラーやリンクエラーになるのはどういうときか
などについてのお話しがありました。
FiNCのiOSアプリでもビルド時間の短縮やアプリ起動速度の改善のためフレームワーク周りでいくつか工夫をしてしているので、
今後フレームワークやリンク周りで問題が起きた際は今回の話にあったトラブルシューティングが助けになるかもしれません。
デザイン原則やブランド、スタイルガイドなどをまとめた「デザインシステム」の構築に関するお話をしていただきました。
Pocochaでは、
- デザイナとエンジニアのデザインに対する認識違いをなくす
- 一貫したデザインによるUXの提供
- より効率的な開発
などを実現するためにデザインシステムを導入したとのことです。
言語化・ドキュメント化をすることで、チームメンバーのデザインに対する理解度の強化やプラットフォームごとの微妙な違いのカバー、サービス特有の概念の理解を進めたとのことでした。
また、スタイルガイドやパターンライブラリを作成することでエンジニアが名前でスタイルを理解・実装できるようにし、iOSではSwiftGenを利用して自動的にコード生成できるようにしているようです。
弊社でも現在デザインシステムの整備を進めているため、今回の話はタイムリーで非常に参考になりました。
スナップショットテストを実戦投入した際のハマりどころや工夫したことについてお話しいただきました。
Poiboyでは表示確認コストを減らすためにスナップショットテストの導入を進めたとのことです。
ライブラリにはiOSSnapshotTestCaseを使用し、過去と現在のUI(画像)を比較して差分検知した場合はテストをFailさせ、表示のデグレを自動検知できるようにしているとのことです。
- 撮影した情報の管理方法
- スナップショットテストのレポート作成方法
- ViewControllerのライフサイクル系メソッドが適切に呼ばれない
- xibから生成されたViewControllerのviewのサイズがおかしくなる問題の解消方法
など、実践投入した際にハマったりするであろう内容にもたくさん触れていただきました。
デグレしやすく何度もバグが発生している画面もあると思うので、そういった画面に対してはスナップショットテストの導入は有効そうですね。
こちらの発表では、多くの問題を抱えていた初期のApple Watchが最近では改善されているといった内容のお話しをしていただきました。
具体的には、初期のバージョンで抱えていた
- パフォーマンス
- SDKが充実していない
- バックグラウンド処理
- 使われない(watch用アプリへの導線がない)
あたりの問題が解消されているとのことでした。
watchOS6以降ではスタンドアロンアプリが利用可能になったようなのでアイデア次第ではできることがすごく広がったのではと思いました。
また、日本時間の9/11に行われたAppleの新製品発表会では新型Apple Watchが発表されました!
Apple Watchについては引き続き動向をチェックしたいと思います。
多言語対応する上で工夫していることや導入しているツールなどについてお話しいただきました。
Localizable.strings のキーの命名ルールや、SwiftGenを使って文言をタイプセーフに扱う方法など、ためになる情報が盛り沢山でした。
FiNCではこの辺についてはレガシーなやり方をしている部分もあるので、発表いただいた内容も参考にしつつ改善していきたいと思います。
最後に
iOSDC 2019の運営の皆様、素晴らしいイベントを開催いただきありがとうございました!
登壇者の皆様、非常にためになるお話をしていただきありがとうございました!
最後になりますが、株式会社FiNC Technologiesのクライアントエンジニアは、大規模アプリケーションを効率よく開発するために様々な技術領域にチャレンジしています。
ご興味がある方はぜひこちらからご応募下さい!!