DroidKaigi2023 MIXIブースのアンケート結果発表と企画の狙いについて

Tark
MIXI DEVELOPERS
Published in
7 min readSep 29, 2023

--

MIXI の minimo 事業部で iOS エンジニアをしている @tark_ann です。

MIXI は、DroidKaigi2023にゴールドスポンサーとして協賛し、ブースを出展していました。
今年のブースではアンケート企画を実施し、たくさんの意見が集まりました。ご回答いただいたみなさん、ありがとうございました!

今回のアンケートは サロンスタッフ直接予約アプリminimo のアプリエンジニアが企画していました。
そのアンケート結果とアンケート企画で考えていたことについてご紹介します。

Day1

Day1 のブースの様子

アンケート結果

Q3. 導入後の悩み(原文ママ
・非同期が難しい
・Desktop + iOS
・iOS エンジニアが怒る
・ドメイン層の変更が両 OS の UI 層の修正が必要
・iOS の型周りがたまにツライ
・iOS とどこまで共通化するか
・UI Layer の iOS, Android 共有は大変
・coroutines まわり
・iOS エンジニアのラーニングコスト
・iOS のビルド時間
・バグの原因切り分けや修正リードタイム
・最新の Compose が必ずしも使えない
・iOS エンジニアの確保
・いつ objective-C による API が捨てられるか不安
・プラットフォーム固有の機能を KMP から呼ぶのがツライ
・KMP の情報が少ない
・組織全体で見た時に使うプロダクトと使わないプロダクトで2極化する

Q4. これから導入するにあたり気になること(原文ママ
・メンテナンスコスト
・デバイス依存の機能をどうするか
・UI など iOS と差分が生まれた時にどうなる…?(UI)
・Kotlin からの throw エラーが受け取れない
・iOS との UI 結合周り
・iOS の方の対応
・導入コスト
・ビルド速度
・アプリのアーキテクチャどうする?
・Compose for iOS がまだ完成してない
・まだ様子見かな…
・学習コスト
・学習コストと効果のバランス
・iOS 側から見た時の使い勝手
・ロジックとの分離が難しそう
・iOS つらそう
・DB や DI などのライブラリ選定
・DI 周りのメンテ
・ビルドパイプライン
・KMP モジュールを iOS/Android に組み込む仕組み必要?
・Webview 部分が多い
・KMP と各 OS とのワークフロー
・iOS メンバーの巻き込み方

Day1まとめ

1日目は KMP に関するアンケートでしたが、KMP に興味あるけど導入を検討するまではできてないという方が圧倒的多数でした。共通化するモジュールについては、現時点では OS 依存しない Domain Layer までが現実的ではないかという意見が多かった一方で、Compose for iOS の登場により UI Layer まで共通化できる未来に期待してるという声も多かったです。その他の自由記述の設問では、ビルドパイプラインや学習コストを含め iOS エンジニアをどうやって巻き込んでいくか悩ましいという声が非常に多い印象でした。

Day2

Day2 のブースの様子

アンケート結果

Q4. デザインに関する取り組みや工夫は?(原文ママ
・figma
・カラーパレットは管理してる
・figma → Compose 自動作成
・デザインシステム
・自分でコードでやる

Q5. Jetpack Compose の悩みごと or 気になることは?(原文ママ
・文句なし!
・引数がどんどん増える
・Preview を書かなくてはいけない
・再コンポーズがさけられないケース
・Recycleview のアニメの実現
・ロジックの置き場所
・ドラッグ&ドロップが欲しい
・modifier の記述が冗長
・SurfaceControlViewHost でテーマが取れない
・Autofill
・AndroidView で webview 兼 epub 系の対応しかない
・state ホイスティング
・ベースラインがそろわない…
・xml の dp 指定と Compose の dp 指定に差がある(同じ dp なのに少しずれる)
・state の管理
・バージョンごとに使えない or Experimental な API がある
・xml からの移行時 styles(theme) の継承を忘れて辛かった
・import 多すぎ
・BasicTextField が使いにくい
・動画周りがちゃんと対応していない
・xml との兼ね合いがつらかった
・modifier の順番で表示が変わる
・宣言的 UI 最高!!
・早く完全移行したいけどなかなか終わらない
・Preview が遅い
・パフォーマンス意識難しい
・デバッグビルドが遅い

Day2まとめ

2日目は Compose に関するアンケートでしたが、Compose へ徐々に移行する方含め多くの方が既に Compose に触れているようでした。2問目の Material Design について、お客様の要望デザインを実現すると準拠できないといった声もあり意外とばらつきのあるアンケート結果でした。急遽追加したコンポーネント管理の設問は、デザイナーさんがいい感じにしてくれるという声やコンポーネント管理が必要になるほどの規模ではないので特に意識してないという声が多い一方、アプリの規模が大きくなるにつれ課題に感じて Atomic Design を導入しましたという方もいらっしゃいました。自由記述では、Webview や動画など機能面で痒いところに手が届いてないという声が集まった一方で、SwiftUI や Flutter などの他の宣言的 UI と比べた時の開発者体験はすごくいいという声も複数あったのは印象的でした。

アンケート企画で考えていたこと

ブースでも掲示していた minimo とリプレイスの紹介

ブースでも紹介していましたが、minimo はもうすぐ10周年をむかえます。長年サービスを運用していく中で様々な技術的負債が蓄積していて、アプリアーキテクチャ全体に影響がある規模の負債が複数あるため、リプレイスする決断をしました。リプレイスの検討の際に今後のアプリ全体の開発効率の改善も狙ったクロスプラットフォームの Flutter や KMP の採用を検討していて、minimo は iOS のユーザーが多いことから KMP を本格的に調べることにしました。また、 minimo の Android アプリでは Compose はまだ限られた画面にのみ部分導入されていて、Compose への完全移行ができるのか判断に迷っていました。そのような状況の中で、タイミングよくDroidKaigi2023 でブース企画の相談があり、先人の知恵をお借りしようということで今回のアンケートを企画しました。

minimo ではリプレイスを一緒に進めていく Android アプリエンジニアを募集しています。minimo に興味を持ってくださった方は、 ぜひ minimo Web 、minimo メンバーのインタビュー記事採用情報もご覧ください。また、もう少し話を聞きたいという方はカジュアル面談もお待ちしております!

それでは、最後までお読みいただき、ありがとうございました!

--

--