もんりぃ is undefined.

育児ネタとか、技術ネタとか。

ごっこランド v3.1.0, v3.2.0

はじめに

先日、私が勤める 株式会社キッズスター の主力プロダクトの一つである「 なりきり!!ごっこランド 」のバージョンが上がり、新しいパビリオンが2つ増えました!

  • 日清シスコの じぶんでつくる はじめての朝ごはん
  • スシローの おすしやさんごっこ

さしあたって、技術的に困難な課題を幾つかクリアしたので、今回はその辺の話を綴ります。

ビジネス的なお話

「なりきり!!ごっこランド」は、協賛企業さまからお金を頂戴して、アプリ利用ユーザさまは完全無料でご利用いただける、未就学児〜小学校低学年くらいまでのお子さまが居るファミリー向けの知育アプリです。

各企業さま毎に独自のコンテンツ *1 を開発し、各社のプロダクトやサービスなどをファミリー層に認知して貰ったり、各社が行っている CSR 的な子ども向けの活動を伝えたりする効果が期待されています。

2017年末の時点では協賛が付いているパビリオンは6つでしたが、2018年はコレを大幅 *2 に増やすべく動いています。

技術的なお話

umm とプロジェクトマージ

詳しくは別記事でまとめるつもりですが、ごっこランドでは、パビリオン毎に実装は勿論のこと企画レベルで異なる複数のコンテンツを、 一つのアプリとして提供する 必要があります。

更に、当然のコトながら既存のパビリオンも現役稼動させる必要があるので、そこで用いているコードも生かす必要がある、というとても難易度の高い状況に置かれていました。

これらの課題を解決するために、2017年の中頃から umm という ライブラリの個別切り出しと依存管理 の仕組みを作り上げ、2017年末に 複数プロジェクトをマージ する仕組みを構築しました。

この二つの仕組みにより、複数の開発プロジェクトが並行で走っても競合が起きにくくなり、2018年に追加する目標パビリオン数を達成可能な環境が整いました。

CAFU

しかしながら、Unity でのアプリ開発に於ける課題として「一般的な開発アーキテクチャが存在しない」というものがあり、これを解決しないとメンテナンス性の低い「ごった煮」なプロダクトになってしまうことが容易に想像できました。

細かい技術背景は以前の記事に綴りましたが、この課題を解決するために 2017年末から CAFU という Clean Architecture を Unity で実現するためのアーキテクチャフレームワーク を開発しました。

荒削りな状態で開発スタートして、パビリオンの開発を行いながら使い心地を調整しつつ改良を重ねる作業は、決して容易なモノではありませんでしたが、楽しみながら取り組めたと思っています。

今回の2パビリオン

そして、今回リリースした2つのパビリオンが CAFU を用いた世界初のプロダクトになります!

日清シスコさまのパビリオンは私が、スシローさまのパビリオンは隣の席のパパエンジニアがそれぞれ開発を手掛けました。

日清シスコさまのパビリオンは、Timeline をガッツリ目に利用しており、操作対象の要素の動的な差し替えなど、ちょっと難しめの実装を調整しつつ対応しました。

スシローさまのパビリオンは、Anima2D をふんだんに用いており、こちらも技術検証と並行で実装を進めるというチャレンジングな開発となりました。

まとめ

技術基盤の刷新をしつつ、既存のコードベースも生かすことは中々に骨が折れましたが、何とか無事にリリースまで漕ぎ着けて、ホッと胸をなで下ろしております。(App Store 申請予定日の23:57に申請ボタンをポチるレベルでギリギリでした😅)

今後も、スケジュールとのバランスを見ながら技術的な挑戦は続けつつ、今まででは考えられないようなペースでパビリオンを増やしていく予定となっております!

進捗やリリースはこのブログなどで報告していく所存なので、ご期待くださいませ!😆

*1:このコンテンツのことをパビリオンと呼んでいます。

*2:詳しくは書きませんが、そりゃあ、もう大幅なんですよ!