フォトシンス エンジニアブログ

株式会社Photosynth のテックブログです

モバイルチームが新技術を社内で試す場

この記事はAkerun - Qiita Advent Calendar 2024 - Qiitaの2日目の記事です。

1行で

同じことをやり続けて飽きる人はたまには味変の場を作りましょう。

こんにちは。ohioshirt - Qiitaです。
最近はFlutterでモバイルアプリ開発をしています。

今年はいくつかのイベントに参加しました。どれも初参加でしたが、楽しかったです。

  • Kotlin Fest

www.kotlinfest.dev

  • Droid Kaigi

2024.droidkaigi.jp - Flutter Kaigi

2024.flutterkaigi.jp

iOSDCはタイミングが合わず行けませんでした。次こそは。

イベント参加を通じて

Flutter Kaigiは11月に開催されたこともあって記憶に新しいですが、 特に印象に残ったのはFlutterでのリプレイスの話でした。
サービス開始してから10年以上が経過し、負債を解消する話がいくつかの企業ブースやセッションで聞けました。
弊社の状況と重なることで自分の中のイメージが強く残っただけかもしれません。
興味がある人はセッションのアーカイブを観てみてください。

2024.flutterkaigi.jp

こうしたイベントに参加するうちに
自分たちも何か新しい取り組みをしたいと思い、 定期的なモバイルチームの遊び場を作りました。

イベント名「Mobile Tech Meshi」
実にゆるいイベント名

名前はお昼に開催することに由来しますが、こじつけで「Mobile EngineerがTechでMeshiを食う(生計を立てる)ための力をつける時間」と呼んでいます。
初めはチームメンバーでニュース等を持ち寄って知識を共有するだけでしたが、
次第に技術的な実験やアウトプットも始めたくなりました。

今やっていること

社内向け開発サポートツール(通称:QAアプリ)のマルチプラットフォーム

QAアプリとは
ステージング環境でテストするための接続先を設定するためのアプリです。
現在のQAアプリはそれぞれのプラットフォームで開発されており、
AndroidJetpack Compose、iOSはSwiftUIを採用しています。
iOSのQAアプリは今年書き換えたばかりですが、シンプルな機能のアプリで実験台としてちょうどいいため、
これからも色々な技術を試すためのアプリとして使っていきたいと思っています。

そのQAアプリを、KMP(Kotlin Multiplatform)を使ってマルチプラットフォーム化することに取り組んでいます。
目的を達成するだけならFlutterでもいいのですが、どうせなら誰も扱ったことのないものの方がいいと思いKMPを採用しました。

QAアプリ開発の大まかな流れ

  1. KMPをよく知らないメンバー(全員)向けに概要を説明
    1. Akerunアプリ Android担当エンジニアはほぼKotlin JVMしか経験していないので学習が必要
    2. Akerunアプリ iOS担当エンジニアはそもそもKotlinを触っていないので学習が必要
    3. ドキュメントの読み込みは大事だが時間がかかるので詰んだら読む程度
  2. KMPの導入(セットアップウィザードを使用してKMPテンプレートプロジェクトをダウンロード)
  3. GitHubプロジェクトで担当者を設定
  4. 毎週画面共有しながら少しずつFleetで開発
  5. 2025年1月中の完成見込み

今後の展望

ここで得たものをいくつか業務に取り込みたいと思っています。
現在私たちが開発しているアプリは、主にAkerunアプリです。
このAkerunアプリが持つ機能は、スマートロックを操作するための機能が主ですが、
約10年前に開発されたアプリであり
それぞれのプラットフォームで開発されているため、
そろそろ2020年代にふさわしいアプリにリプレイスしたいと考えています(個人的感想)。

このような取り組みを通じて、
モバイルチームの技術力向上、そして会社の成長に貢献できるようになりたいと思っています。


株式会社フォトシンスでは、一緒にプロダクトを成長させる様々なレイヤのエンジニアを募集しています。 photosynth.co.jp Akerunにご興味のある方はこちらから akerun.com