iOSDC Japan 2021でリクルートスペシャルセッションを行います!
山脇ゆめ子
今週末9/17-9/19にiOSDCが行われます。
リクルートはスペシャルスポンサーとして協賛致します。
昨年も協賛し、2名が登壇致しました。
Flutter移行の苦労と、乗り越えた先に得られたもの
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
リクルートでは多くのサービスがあり日々様々なチャレンジをしています。その一部を皆様に是非知っていただきたいと思い、今年はスペシャルスポンサーとして9/18の18:20-TrackA-TrackEまでジャックし、スペシャルセッションを行います!
[TrackA]
「スタディサプリ」がFull SwiftUIを選択した先に見えてきたもの
スタディサプリのiOS開発チームは新規サービスでSwiftUIを全面的に採用した開発を行っています。
このセッションでは、Full SwiftUIで中規模以上のアプリの機能をどのように実現したかを発表します。
技術選定でSwiftUIを導入を検討している(興味がある)方の後押しとなればと思います。
WWDC19で鮮烈に発表されたSwiftUI。発表当時は当時の最新OSのiOS 13以上のため、普及率とサポートバージョンの都合で選択肢として外れることが多かったのではと思います。
今日では、普及しているOSはiOS 14が一番のボリュームゾーンとなっており、ようやくSwiftUIを選択肢として取れるようになってきたのではないでしょうか。
我々が実際にその選択を取った時、どんな課題がありどんなメリットが見えてきたのかを説明します。
■構成環境
新規開発(既存コード無し)
Target OS: iOS 14.0
Xcode version: 12.5
Architecture: MVVM
Libraries: Combine, GraphQL(Apollo), Lottie, Nuke
■機能
複雑な画面遷移
API通信
Push通知
DeepLink
Animation
WebView
Testing
[TrackB]
タウンワークアプリの案件開発を支えるオフショアチームの成り立ちとこれから
タウンワークでは、スマホユーザーに向けたiOS及びAndroidアプリのリリースを通じて、日々数多くの開発を行い、機能改善を続けています。
これまでのタウンワークアプリは日本ですべての開発を行ってきましたが、より多くの機能改善を行うために、最近はオフショアチームと協業して開発を進めることに取り組んでいます。
今回の取り組みで特徴的なことの1つとして、オフショアチームのエンジニアと日本チームのエンジニア同士が、共通言語である開発言語を用いてコード上で多くのコミュニケーションを直接行っていることがあげられます。
これには、異なる母国語によるコミュニケーションを減らし、エンジニアが得意な開発言語でコミュニケーションを行うことで、相互理解を深めるといった狙いもあります。
本セッションでは、タウンワークアプリ開発におけるオフショアチームの成り立ちや、オフショアチームと日本チームがどのように協業しているのかといったお話を、実際にオフショアチームと協業している日本のエンジニアから共有します。
[TrackC]
歴史のある大規模アプリに Design System を導入して開発をスケールさせる
ゼクシィの iOS アプリは、2011年から開発されている歴史のあるアプリです。
これまで外部の開発会社で開発をしていましたが、近年の結婚観の変化などを受けて環境の変化に柔軟に対応するために 2019年から 社内のエンジニアが開発に加わるようになりました。
現在では 十数名ほどが iOSアプリの開発に関わっており、コードベースも 約20万行ある大規模なアプリとなっています。
これまで様々な技術的なチャレンジを行っており、今回は Design System の導入背景や導入によるコミュニケーションの改善や開発者体験の向上について、また実装の方針などについて発表します。
なおゼクシィにおける Design System は、 Figma 上でのデザインパターン一覧とそれをモバイルアプリ向けに実装したデザインライブラリの両方を含めています。
微妙に異なった定義の色が複数存在していたりなどの状況は、アプリ開発者ならば一度は遭遇したことがあるかと思います。
関わっている人数が多ければ多いほどこういったことに気を遣うのは難しくなっていきます。
同様なことがマージンやフォントサイズやアプリ内に繰り返し出てくるUIパターンでも発生し得ます。
こういった細かいUIの一貫性を各開発者が各機能実装時に気にしなくて済むようにゼクシィでは Design System を導入し運用しています。
本トークでは、Design System の導入の背景や導入によるコミュニケーションの改善や開発者体験の向上について、また実装の方針などについて共有します。
[TrackD]
iOSエンジニアがKMPで大規模アプリのロジック共通化をしてうまくできている話
ホットペッパーグルメアプリは約20万行のソースコードから成る大規模なアプリで、10年以上の歴史の中で仕様とソースコードが複雑化し続けています。
この複雑さの解消と今後のメンテナビリティ向上のため、我々はコードリニューアル・リアーキテクチャを行う決断をしました。
コードリニューアル・リアーキテクチャにあたり、iOSとAndroid間の不要な仕様差分解消や開発工数削減を狙いKotlin Multiplatform Project(以下KMP)を導入することとなりました。
現在はまだ開発中ではありますが、今のところKMP導入による致命的な問題は発生せず、順調に開発が進んでいます。
本セッションでは、大規模なアプリケーションにKMPを導入した際に発生した課題やその解決方法など、iOSアプリにKMPを採用する際の知見を共有します。
初期のKMP実装はiOSエンジニア2名で行っていたため、iOSエンジニアの皆様により近い目線でお話できると思います。
ロジックの共通化に興味があるけどKotlinに手を出すことに抵抗があるiOSエンジニアの方、大規模サービスにおけるロジック共通化の事例を知りたい方、ホットペッパーグルメのアプリ開発事情を知りたい方は是非ご参加ください!
[TrackE]
UITestを活用しまだまだ不安定なSwiftUIアプリを安定的に実務運用する方法
スタディサプリEnglishでは社内向けのiOSアプリをフルSwiftUIで1から開発し、去年の秋から約1年間運用しております。
ただSwiftUIはWWDC2019で登場してからまだ2年でOSのバージョンやXcode(iOS SDK)のバージョンによって挙動が大きく変わったり、Viewの書き方によって自分が触ってない子Viewにまで影響してしまうなど不安定な部分が多いです。
本トークでは不安定なSwiftUIアプリを運用していく際に直面した課題やそれらの課題をUITestを使って解決し安定的に運用することができるにした方法を話します。
当日は多くの方にご視聴いただけますと幸いです!
ぜひお気軽にご参加ください!
♯リクルートスペシャルセッション