こんにちは。minne事業部プロダクト開発チームのkyuです。 普段の業務ではなかなか時間が取れない「あれやこれ」。そんな課題にじっくり向き合うために、minneのモバイルエンジニアのパートナー(社員)たちと合宿を行ったため、その内容・様子についてご紹介いたします。
ちなみに、昨年の合宿の様子もこちらからご覧いただけます。
どんな合宿だったのか?
今回の合宿では、「普段取り組めていない領域や技術に挑戦し、短時間でアウトプットする!」というテーマが掲げられていました。このテーマは、ペパボのビジョンである「もっとおもしろくできる」と「人類のアウトプットを増やす」に基づき、minneのアプリをもっと幅広いユーザー層に届けたい、という思いから始まった取り組みです。
合宿といっても、形式としては“もくもく会”に近く、各自で持ち寄った、「普段なかなか取り組めていない課題」や「気になっている技術的なこと」に集中して取り組む、というスタイルで実施しました。
昨年の合宿では、大まかな方向性はあるものの当日の進め方が曖昧だったため、議論が発散してしまい、実作業に入るまで時間がかかるという反省がありました。 今回はその反省を活かし、日頃からNotionのデータベース上に「合宿でやると良さそうなこと」をリストアップしておき、その中から各自がテーマをピックアップして取り組む形式にしました。
合宿で得られたもの
以下のようなテーマで取り組みを進め、各自が実装・検証まで行い、動作を確認できるところまで進めることができました。
- iPad対応の検討とPoC:既存UIの対応状況の調査とレイアウトの調整
- AIを活用した文章校閲:送信するメッセージの自動チェックPoC
- Riveを用いたアニメーション処理の実装:RiveというアニメーションライブラリのPoC
- Widget表示:Androidのデバイスのホーム画面にminneの情報を表示するPoC
どれもまだプロダクションコードに落とし込むには課題が残っていますが、PoCとしては良い手応えを得られ、「実現可能性がある」と確認できたのは大きな収穫です。 今後は、他チームやデザイナーと連携しながら、本実装に向けた調整を進めていければよいなと考えています。
合宿を振り返って
良かった点
限られた時間だからこその集中力
今回は14:30〜17:30の約3時間という短時間で行いましたが、「限られた時間で何かしら成果を出す」という意識のもと、集中して作業ができました。 普段の業務では割けない時間を使って集中的に試行錯誤したことで、「思ったよりすぐできた」「難所がどこか明確になった」といった気づきも得られました。
エンジニア同士での知見の共有や意見交換
成果発表では各自のお題について、実装内容を説明し、それに対して他のエンジニアから質問やコメントがありました。 各自、はじめて取り組んだ内容ばかりではあったものの、自分のやったことを言語化する中で理解を深めることができ、とても有意義な時間でした。
反省点
準備やテーマ設定にはまだ改善の余地あり
前回の合宿の反省から、エンジニア以外も巻き込んで、プロダクションコードとしてリリースできたらいいねと言っていたのですが、 合宿の準備・テーマ選定・調整などを進めるには、業務時間外でのコミュニケーションが必要となり、現実的にはなかなかハードルが高かったです。 結果的に、何をやるか決めるのにも時間がかかってしまいました。
次回は、あらかじめ日程・テーマ候補を余裕をもって共有し、関係者を巻き込みやすい形を整えておくことで、よりスムーズに実施できればと思っています。
各パートナーの感想と取り組み
tepi
minneのモバイルアプリではAIを利用した機能の実装ができていない中、AndroidでGeminiを利用した実装にトライできて楽しかったです。
実装にあたっては、AIに関連するSDKの利用やプロンプトを考えるところはすぐ終わり、改めてAIを使うためのハードルが低いことを実感できました。 残りの時間の大半をUIの実装にかけたものの、まだまだブラッシュアップが必要なのでリリースにはデザインチームの助けが必要になりそうです。
また、今回は利用しなかったGemini NanoやLLMとは違いますがML KitなどAIに関連した技術がAndroidに用意されているので、引き続きAIを利用した機能実装を提案できるよう触っていきたいです。
kyu
今回は、AndroidのWidget実装にチャレンジしました。 Jetpack Glanceを使えば、Jetpack Composeに近い記法で実装が進められるため、UIの確認までは比較的スムーズに進めることができました。 ただし、Glance特有の制約や、Composeとの微妙な違いには注意が必要そうと感じました。
非同期での通信ができるところまで実装を進めたかったのですが、そこまでは時間が足らなかったので、次回はスムーズに実装できるようキャッチアップして理解を深めておきたいと思います。 他のパートナーからも「Widgetを使ってみたい」といった声があがっており、ニーズも高そうなので、引き続き取り組んでいきたいです。
umatoshi
僕は、minneのiOSアプリにおけるiPad対応の調査と、デモアプリの作成を行いました。
もともとiPhone向けのレスポンシブ対応がしっかりできていたため、作品カードの表示部分をiPad向けに最適化すれば、iPadでも快適に利用できるのではと日頃から感じており、今回の合宿が良い機会だったため、取り組むことにしました。
実際にiPad向けの最適化ビルドを行ってみたところ、作品の表示が端末サイズに応じて拡大されすぎてしまい、iPadの大きな画面では表示が大きすぎるという課題が見つかりました。この合宿を通じて、その表示の問題を解決していくことで、最適化に向けた具体的な課題とゴールが明確になったと感じています。
minneのiPadアプリの最適化について、現時点で具体的なリリースの約束はできませんが、合宿を通じて着実に成果を積み重ね、いずれ公開できたら良いなと考えています。
satton
今まで触れてこなかったアニメーションの作成や、実際にアプリ上で動かしてみるという貴重な経験ができました。
いざトライしてみると、シンプルなアニメーションひとつ取っても意外と苦戦しましたが、iOSアプリに組み込む流れや、アプリ側からアニメーションを制御する仕組みの基本は理解できたと思います。 また、事前に想像していたよりもスムーズに導入できる印象でした。
アニメーションは純粋に楽しいですし、実務で使う機会があったときに備えて、時々触れていきたいです。
まとめ
昨年の反省をふまえて臨んだ今回の合宿。 準備面ではまだまだ改善の余地はありますが、各自がテーマに取り組み、PoCとしての成果を出すことができたのは非常に良かったです。
それぞれの課題に集中して取り組むことで、短時間ながら多くの学びと気づきを得ることができました。 今後もこのような場を定期的に設け、チームとしての知見を深めながら、minneのプロダクト開発を加速していけたらと思っています!
また、みんなで集まって集中する時間をもっと増やして、毎月でもやればいいじゃないかという意見もあったので、 「合宿」という形に限らず、「もくもく会」や「技術的チャレンジの共有会」など、日常業務にプラスアルファの視点を取り入れる取り組みをもっと進めていけたらと思います。 ぜひ一緒にワイワイ楽しんでいただける方お待ちしております!