見出し画像

【制作話】モルックのスコア記録アプリ「みんなでモルック!」をリリースしました

2023/08/15 タイトルのとおり、「みんなでモルック!」(通称:みんモル)をリリースしました🎉🎉🎉

このみんモルが、個人としてリリースするアプリの処女作になります。
今回はこのアプリをリリースするまでを振り返ります。


制作に至るまでの背景

モルックとの出会い

2023年の年始、シェアハウス間の交流時にモルックをプレイする機会がたまたまあった。
そのときにかなりハマって、自分もモルックグッズをその日に衝動買いしたりした。

そもそもモルックはフィンランドが起源のスポーツです。

初プレイ時に紹介してくれた人たちは既存のスコア記録アプリを使っていました。
自分も後日インストールして使ってみましたが、どれもシンプルな作りをしていて簡単に使えました。

モルックグッズを買ってからはキャンプをする時に持って行ってみんなで遊んだり、ハウス間で競ったりして遊んでいました。

ハウス間モルック大会の様子

開発の実績が欲しかった

なんやかんや当時社会人・iOSエンジニアになってから4年が経とうとしていました。
普段の業務では既存アプリをアップデートしたり、ストアのリリース作業も何度もしてきました。

学生時代はチームでアプリをリリースする経験はしましたが、個人でリリースした経験はなく、4年も経ったのに何も作っていないのもなんか寂しいなと思っていました。

クライアントサイドだけで完結しても良いからこんなん作ったぜ!って言えるものが欲しかったのです。
あとバックエンド(or クラウドサービス系等)までやるとお金も労力もかかるからまずはお金もそこまでかけず、自己研鑽も兼ねて作れるものがないかなと思い始めていました。


そんな中で思いついたのがモルックのスコア記録アプリです。

  • 既存アプリを見ていてもシンプルな作りが多く、仕組みもそこまで複雑な ものではなかった

  • リリース経験を得るゴールまでの工数が膨らみにくい見込みを持てた

  • 自分の好きなものに関するアプリだから開発のモチベーションが保てる

  • 自分の好きなものに関するアプリだから(2回目)リリース後も自分で使えるし、シェアハウス界隈で流行ってるからお知らせしたら使ってもらえるのが見込めた

等の理由から作ってみようと思い始めました。


開発話

※技術寄りの話も含まれます。ご了承ください。

採用技術

普段の業務ではUIKitをメインとし、Clean Architectureを採用した設計で実装をすることが多いです。
自己研鑽も兼ねた開発にしたかったので、あえてそこから外れた手法で作ることに決めました。

なので、最近Appleが推してる(雰囲気をビンビン感じる)SwiftUIをベースにして、アーキテクチャはVIPERやMVVM等も考えましたが、軽く触ったことがあったので、これまた流行っている未開のTCA(The Composable Architecture)をやってみることにしました。

本当だったらちゃんとアプリの規模感やデータのやりとりとかを想定して設計した方が良いのではみたいな意見もあるかと思います。自分もそう思います。でもここで得た経験が失敗だったとしてもそれが知見となると考えて、あえて先に技術選定から行いました。
自分としても少しでも矯正して新しいことを学んでいかないとなという意識もあったからでしょうねぇ(他人事)

調べまくった毎日

結果としてTCAもSwiftUIメインの開発も初めてだったのでめちゃくそ大変でした
そもそもの概念理解も完璧にはできなかった。。というかTCA使ってるけど、DIしてないからEnvironment使ってなければ、API通信とかもしてないのでEffect周りも使ってない、不完全形なTCAを利用した感じで終わりました。
SwiftUIもうまくコンポーネントに分割できていないと思う。絶対もっとうまく分けれたやろと。。(アップデートでカバーしよかな😇)

とはいえひたすら記事を読みまくって何とかそれっぽい形で動かせるようになった時はそれなりに達成感があった😅✨

実装期間は毎日何かしらコミットしようと決めていたので、GitHubの草を生やすことを意識していた。(まじで忙しいときはissue起票とかしかしない日もあったけどw)

実装の軌跡

2月から開発を始めて、5月頃まで毎日頑張ったんだなと😂
一部牛歩的に進んでいたこともあったので、多分実働で考えると2ヶ月くらいで作ったと思う🤔
※空いてるところはデザイン手伝ってくれた人(後述)が多忙だったので調整効かなかった

色々苦労はしたが、不完全なTCAでも他のView, Action, Reducer, Storeたちの関係は何となく理解できたのではないかと思えたりした。
SwiftUIもフルフルで作る上で、基本的な書き方は理解できたし、まだ登場から数年しか経っていないため成熟しきっていないんだということを身をもって感じた。

インプットするだけじゃなく実際に手を動かしてやるのってほんとに大切だよなぁ。。

とりあえず、今度作るときはちゃんと設計から考えてやろうと思った笑

既存アプリとの差分

メイン機能は基本的に、倒した本数のカウントや投げる順番の管理、勝敗の判定でこれらはどのアプリにもある機能です。
全部一緒にするのは違うなと思ったのと、他のアプリを使っていて感じていた不として

ひとつのチームに複数人数いたら、次の手番が回ってきた時にチームメンバーの誰がなげるんだっけ?🤔😅

やまたくの実体験

というものがありました。

なのでみんモルではそれがわかるように手番が来たら名前を表示させるようにしています。
これは機能的なこだわりなので推してます笑

メイン機能ができてから

基本的なスコアの記録ができてからは、デザインの調整が必要でした。
でも、自分のデザインスキルじゃ整えるのは無理だし、まずアイコン作れねぇっていう障壁があった。

よって必然的にデザインができる人に頼る必要があることは最初からわかっていた。
一緒にやるからにはシェアハウス界隈の人とできたら楽しいなぁって思っていたのでコミュニティ内で誘ってみようってずっと内心計画していた。

メイン機能ができたので、その時点でのアプリの動作動画を撮影し、それをシェアハウスのLINEグループに投稿してみた。

突然ですが、アプリのデザインやってみたい方いらっしゃいませんか?

実は技術研鑽のために趣味も兼ねてモルックのスコア記録アプリを作っていました。
そのアプリのベース機能が大方完成してきてデザインを整えればリリース行けるんじゃないか?ってとこまで来たので、みなさんの中でデザインやりたい人がいれば良いなと思った次第です🤔

やまたく

みたいな感じで。

そしたら普段はデザイナーじゃないけどロゴ作成したりとかAdobe系のソフト使ったことあるよって人が手を挙げてくれて、一緒にやっていくことになった。
他にもデザインはできないけど、アプリ作りに興味あるって人や、ただ盛り上げたいって人が集まってくれて7人くらいのチームになっていました。(ほぼ観客だったけどw)

本当に集まってくれたメンバーには感謝です。
ありがとう。
※この場をもって感謝します。

実装以外のアプリに関する作業

アプリを開発するにしても実装するだけじゃなくて、プライバシーポリシーが必要だったり、アイコンが必要だったりしたのでその確認はチームみんなで話し合いました。

これはだいぶ終盤だけど、いくつか候補を出してもらいながらあれがいいこれがいいを議論して今の形に決まりました。

序盤では絵心あるメンバーで手書きでこんなのどう?みたいなやり取りしていて盛り上がって楽しかったなぁ😄

プライバシポリシーはChatGPTにベースを作成してもらい、そこに自分が肉付けをし、それをメンバーに校閲してもらったりもしました。
ChatGPTいてくれて助かった!メンバーの確認も最高だった👍👍👍


リリース直後

必要な準備が終わって申請をして、リリースが通ったときはめっちゃ嬉しかった。紆余曲折あったけど、ついにこの時が来た!!

リリース後はチームメンバーにすぐ共有して、みんなに手元確認してもらい、問題ないことを確認したのちシェアハウスのLINEでも共有しました。

たくさんリアクションもらいました🤗

中にはリリース日の夕方にシェアハウスで早速使いながらプレイしてくれたりもした。作った意味が早速生まれた瞬間でした。

ここからどれだけ使ってもらえるのか、シェアハウス界隈以外のモルック好きな人たちにも使われてもらえたら嬉しいです。

今後

iOS17の公開も近づいてきているので、iOS17対応は必須だなぁ。
細かい箇所で修正したいところがあるし、技術負債も既に臭っているので負債解消もしていきたい。

要望があれば新機能の追加とかもやれるだけやっていきたいな。

お願い

モルック好きの方々にはぜひみんモルを使ってもらいたいので、モルック仲間で共有してぜひご利用ください!笑
そしてみんモルを使ったご感想やご意見はストアの方でレビューいただけると幸いです😌

これを機に、モルックを始めてみても良いかもしれませんね!

この記事が気に入ったらサポートをしてみませんか?