ゲームマッチングアプリ「cogme」開発記#3【Flutterで開発だ!】

ゲームマッチングアプリ開発・リリース

株式会社エイプリルナイツは自社開発のゲームマッチングアプリ「cogme」を2023年1月にリリースしました。
「社会人×eスポーツ」のサービス・企画を行ってきた弊社ならではのアプリです。

cogmeとは

・「友達の友達」が基本表示範囲。ゲームの楽しみ方が近いマッチングを提供。
・好きなゲームや活動時間、ゲーム歴などゲームの楽しみ方を伝えやすいプロフィール設定。
・完全招待制。安心感があり社会人ゲーマーに心地よい繋がりが作れることを重視。

従来のゲームマッチングアプリと比べて「社会人ゲーマーが安心できる」ことを重視しているのが特徴です。

webアプリ開発からモバイルアプリ開発への挑戦

弊社は2020年~2021年に企業のeスポーツ部を繋ぐwebアプリ「cogme(旧)」のサービスを運営していました。
そこから今度は利用対象を社会人ゲーマーに広げ、より使いやすいモバイルアプリとして新しいcogmeをリリースしました。

ゲームが好きな社会人のためのサービス、というコンセプトは変わらないものの「webアプリの開発」と「モバイルアプリの開発」は想像以上に別物でした。
開発担当の2名のエンジニアからは、モバイルアプリ開発という新しい挑戦のなかで色々な発見や困難、面白味があったと話があがってきています。

そこでcogme開発記として、cogmeの開発・リリース後運営での出来事を紹介していきます。
今回は3回目です。前回のエピソードはこちら↓です。

ゲームマッチングアプリ「cogme」開発記#2【どうする二段階認証】

cogme開発エンジニア

Mさん
バックエンドやデータベース関連を主に担当

Aさん
UIデザイン、アプリ側の実装を主に担当

まずネイティブ開発かフレームワークを使うか

― 前回、モバイルアプリ開発にFlutterというフレームワークを使うことにした、という話がでたので、ここを詳しくお聞かせください。

Mさん
では順に説明すると、まずのモバイルアプリでiOS版もAndroid版もあるアプリを開発する際の選択肢として
・iOS専用のネイティブ開発とAndroid専用のネイティブ開発をする。
・ひとつのコードベースでiOS版とAndroid版を開発できるフレームワークで作る。
が考えられるんですよ。
Aさん
私たちは今回モバイルアプリ開発が初だったので、iOSとAndroidのネイティブ開発を2倍勉強するよりフレームワークを使うよね、とここは素直に決まりました。
Mさん
アプリの特性、例えばカメラやGPSなどスマートフォンに付随するハードウェアを使うアプリだったりするとネイティブ開発のほうが手っ取り早い、というケースもあり得ます。
ですがcogmeはそうではないので、フレームワークを使うことに支障はまるでないですから。

iOSアプリとAndroidアプリを同時に開発できるフレームワークは便利!

― すると次はどのフレームワークを使うか、React NativeかFlutterのどちらか、の判断ですね。

Mさん
使うものをGoogleのものに統一する、という考えがありました。
前回話した通り、モバイルアプリに使うデータベースとしてNoSQLデータベースが向いています。リアルタイム性に優れていて、頻繁な仕様変更に対応しやすいからです。
そしてFlutterはGoogleのFirebaseFirestoreというNoSQLデータベースを使うことが推奨されています。
Aさん
FlutterもFirebaseFirestoreもGoogleの開発したものなので、当然推奨されているんですね。
そこでモバイルアプリでNoSQLデータベースを扱うならば、FlutterとFirebaseFirestoreのGoogleで統一して採用しよう、ということになりました。

― 確かにGoogle製のもので統一したほうが安定感がありそうですね。

Flutterを選択した決め手は“熱”

Mさん
それでも最初はReact NativeかFlutterどっちでいくか相談を重ねましたが。
Aさん
React Nativeのほうがこれまでの知識や経験が移行できそうだけれど・・・

― だけれど・・・

Aさん
なんかイケてないな、ってw

― イケてない?!

Mさん
時代の流れがFlutterだった、というか。
Reactのこれまでの経験を移行できることよりも、Flutterに挑戦したほうが今後メリットがありそうと感じたんです。

― メリットがありそうだというのはどんなところからなんですか?

Mさん
・・・Flutterが熱かったw
Aさん
新しくて今来てるやつ、イケイケだったw

エンジニアが新しい技術に注目するタイミング

Mさん
cogme開発スタート時期にちょうどFlutter2.0リリースされて、Reactよりもエンジニア界隈が盛り上がっていたんです。
Aさん
React Nativeのほうが先に出ていたので、Flutter2.0との比較記事も出てきたり、モバイルアプリを作っている人たちがFlutterの話題を頻繁にしていたりとか、そういう形で盛り上がりを感じる状況でしたね。
Mさん
React Nativeはもう古いんじゃないか、みたいな空気感。

Flutterはその使い勝手やReact Nativeとの比較など話題になっていたとのこと

Aさん
元々、webサイトを作るようなJavaScriptエンジニアがそのままの知識でネイティブ開発が出来るようにしよう、という思想で作られたのがReact Nativeです。
じゃあ最初からモバイルアプリ開発を想定して作られているFlutterのほうが良さそう、と感じるところもあったりで。

― それでもこれまでの知識、経験で作業できるReact Nativeを選びたくなりそうと個人的には思ってしまうのですが・・・

Aさん
うーん、Reactは今までやっていたから、このまま同じ言語を使うよりは新しい言語を使ってみるほうが面白そうかなと。
Mさん
FlutterがReactの影響を受けているというか、思想やコンセプトが似ている点があるので、Reactの経験も無駄にならなかった気もします。
むしろReact NativeよりFlutterのほうが似ている、しっくりきたかも、という感触です。ここは感覚なのでなんともですが。

― 新しい言語・フレームワークを選択して、結果として新しい経験を積みつつ開発作業も上手くいったと良いとこどりになったわけですか。

Mさん
今となってはFlutterを選択したのは正しかったよね。
Aさん
うまく時流を読めましたね。

― 自社で大きなプロジェクトを行う際に、新しい開発言語に挑戦して色々な意味で上手くいった!ということですね。

常に新しいものに興味を持つエンジニアたれ

今回、自身の馴染んだ開発言語ではなく、流行りや今後の発展も考慮して新しい開発言語に挑戦してみる、という話が聞けました。
流行・ニーズまで自分で考えて仕事や勉強の選択をしていくという大変さはエンジニアの方なら共感できるのではないでしょうか。
自社開発のアプリ、その開発やリリース後の様々なエピソード「cogme開発記」今後も掲載していきます。


株式会社エイプリルナイツは、ゲームが好きという共通の価値観をベースに、楽しく働きやすい企業を作っていこうとしています。
ゲームが好きなエンジニアはぜひ弊社にご注目ください!

そのほか弊社へのご質問、意見はこちらから