見出し画像

iOS エンジニアから見た DroidKaigi #Zaim

こんにちは。Zaim で iOS エンジニアをしている @akatsuki174 です。

私は基本 iOS アプリ開発を担当しているのですが、近頃は Android アプリ開発もちょっとずつやるようになってきました(最近、弊社の Android プロジェクトに PR を二つ出したぞ!)。

ということで堂々と(?)業務として DroidKaigi 参加してきました。せっかくなので iOS エンジニア目線で所感を書いてみたいと思います。

マルチモジュール

関連セッション:「マルチモジュールなプロジェクトでテストはどう変わる?」

私が聞いたマルチモジュール関連のセッションは上記だけなのですが、全体として見たらもう少しあった気がします。

iOS でもフレームワーク分割(Embedded Framework の活用)の発想はあって、実際、私も Zaim の iOS プロジェクトでダイアログ関連の実装を切り出すという作業をしたことがあります。分割することでこんなメリットがあります。

・ビルド時間が短縮される
・依存関係が整理できる
・コードが共有できる

コード共有は弊社の場合は関係ないのですが、App Extensions(ウィジェットなど)、Apple Watch 対応などをする場合は特に便利です。

こうやって見ると、プラットフォームが変わったところで考えることやメリットは変わらないもんなんですね。

統合開発環境

関連セッション:「Android Studio 設定見直してみませんか?」

「Android Studio なんだよ!便利かよ!」というかんじでした。「便利なツール」はいろんな機能があって嬉しい反面、いろいろな機能がありすぎてどんな機能があるのかを探す気が失せてしまうんですよね…。このセッションでは役立つ Android Studio Tips が次々と紹介されていたので、これを機に少しずつカスタマイズしていこうかと思いました。

ちなみに iOS アプリを開発するには Xcode を使うわけですが、この子もたまに「便利〜」と思う機能があります。例えばスペースのみの行を空行に変えるという設定があります。

普通に改行するとインデントが考慮された状態で次の行に行くため、その行に何も書かなかった場合はスペースのみになってしまいます。これは Swift 用リントツール、SwiftLint の「trailing_whitespace(行末の空白文字、スペースのみの行があると警告が出る)」ルールと相性が悪いです。この設定を知っているだけで、いちいち警告にイライラすることもなくなります。

上記の設定はわりと知ってる人多そうなのですが、もっとマニアックな設定を探して紹介しようかなと思った時代が私にもありました。

結局他の内容で登壇したので、Xcode の設定の話はどこかで別途できればいいなぁと思ってます。

テスト / 設計

関連セッション:「Unit test for ViewModel and LiveData」「Guide to app architectureを踏まえた既存アプリの設計改良」「今日から始める依存性の注入」

わりとテストや設計に関するセッションが多かったなという印象です。やはりテストや設計は「普遍的なベスト」はなくて、様々な要因が絡んでくるのはプラットフォーム関係ないですね。このような話は iOS エンジニアというよりはエンジニアとしてセッションを楽しめました。

面白かったこととしては、「Activity の破棄」という観点があることです。Android の場合、画面回転などにより Activity が破棄されてしまうので、ViewModel を採用するなどして状態保持に努めるというのは「ほ〜なるほど〜」と思いました。

アプリ内ブラウザっぽいもの

関連セッション:「Chrome Custom Tabs の仕組みから学ぶプロセス間通信」「シームレスに遷移可能な画面を他のアプリに提供する方法」

まるで自分のアプリの一画面であるかのようにスムーズにブラウザを表示できる Custom Tabは 、iOS の SafariServices を彷彿とさせました。SafariServices の場合も Safari と Cookie やウェブサイトのデータなどを共有できるなどのメリットがあります。ただし Storyboard からは使用できない、カスタマイズできる部分が限られているという点ではちょっと不便だったりします。

全体の感想

Android アプリ開発の経験が浅い私にとっては難しい内容が多く、「宿題」が次々に増えていくカンファレンスとなりましたが、トレンドを知ったり、なんとなく全体感を把握できたという意味で有意義な時間を過ごせました。スタッフの皆様お疲れ様でした。来年はもっと知識を付けた上で参加しようと思います。

余談

私は iOSDC というカンファレンスのコアスタッフをやってるのでついついそういう視点で見てしまい…。ちょろっとカンファレンススタッフ目線での感想を書きますね。

翻訳機紛失防止への取り組み

翻訳機が椅子に括り付けてありました。なるほどこれなら(悪意がない限りは)なくならないなと思いました。すごい。

便利ポーチ

スタッフをやっていると、不意にペンやハサミがほしくなったりするものです。あれもほしい、これもほしい、そんなニーズにしっかり応えてくれそうなポーチでした。良い。

他にもいろいろ学びはあったので、次のカンファレンスに活かしていけたらなぁと思いました。

この記事が参加している募集

イベントレポ

共感した、他の人にも知ってもらいたい等々思ったら、ぜひTwitterなどでシェアしてください。