初めてアプリをリリースまで行ったので(完成はしてない)思ったことを書いていこうと思います。ちなみに初めて記事を書くので温かい目で見てもらえると助かります。
初めに
・軽い自己紹介
福岡の大学の2年生。プログラミング経験は1年ほどでまだまだ新米エンジニアです。普段はサークル運営やハッカソンに入り浸って勉強しています。使っている技術として主にFlutter,Unity,Next,reactです。
作ったもの
https://oto-web.vercel.app/
アプリの概要
私は大学生で一人暮らしをしているのですが、自分の部屋をなかなか片付けられないという課題を感じていました。そこで、「部屋の片付け」をサポートするアプリの開発を始めました。
このアプリでは、ユーザーが1日1回部屋の写真を撮影し、AIがその写真を解析して部屋の「散らかり具合」や「綺麗さ」を点数化します。点数に基づいて、その日にやるべき片付けタスクを自動生成し、ユーザーが何をすればよいかを明確にします。
また、フレンド機能も搭載しており、他のユーザーとつながることで、自分の部屋の状態を共有できます。お互いに励まし合ったり、部屋がきれいになっていくようなものを作りました。
開発期間として二ヶ月くらいで大体の機能を追加してリリースまで行いました。
作ったもの(まだ完成はしていない)
https://apps.apple.com/jp/app/neatify/id6746064755
ここからは開発をしていて思った事を話していこうと思います。
思ったこと1
アプリ開発は時間がかかる
これまでWebサイトや簡単なゲームなどは、早ければ2日、長くても1週間ほどで完成することが多かったのですが、アプリ開発では想像以上に時間と労力がかかると感じました。シンプルなアプリであれば短期間で完成できたかもしれませんが、複雑な機能や仕組みを追加していくにつれて、開発に必要な時間はどんどん増えていきました。
特に時間がかかったのは、AI処理に必要なデータの扱いや、Firebaseとのやりとりなどのバックエンドまわりの実装です。これまで主にフロントエンドを中心に扱ってきたため、サーバーサイドの処理には苦戦しました。また、UIのデザインにも思った以上に時間がかかりました。Flutterを使ってコードを書きながら、納得のいくUIを作るのにはかなりの時間を要したと思います。
ただ、今回の開発はAIがなければここまでのスピードで完成させることはできなかったと思います。開発中は特に、CursorやClaude Codeなどのツールを活用して、実装の効率を大きく上げることができました。
思ったこと2
審査がめんどくさい
apple developerを契約して実際にアプリの審査を通してみると何回も審査を拒否されました。特に多く指摘されたのは、スクリーンショットのサイズに関する問題です。他の記事でもスクリーンショットの件は言われていて自分もなるのかと思いました。
他には「デモのモード」を作成しなければならなかったことです。フレンド間のデータのやり取りがあるのでアカウントの認証機能を作っていたのですが、認証が要らずに機能を使えるようにしなければならないと言われたので、デモモードを作るのに時間を割いてしまったことがありました。あまりアプリのことは知らなかったので、そういったことが必要なんだと改めて知ることができたなと思いました。
appleの審査の話に戻すと悪い点だけではなかった。appleの審査は返信が思ったより早かったと思います。1日で帰ってきたり早い時で数時間後に帰ってくるなんてこともあった。
思ったこと3
計画をしっかり立ててなかったこと
このアプリは思いついた勢いのまま開発を始めてしまい、無計画にプロダクトが進んでしまったことを反省しています。競合優位性の検討や市場調査、技術選定など、本来なら事前にしっかりと考えるべきステップを飛ばしてしまいました。
その場その場の判断で進めることが多く、設計やコーディングの質を十分に意識できなかったと感じています。都度問題を乗り越えること自体は悪くないものの、計画性のない進め方では効率も悪く、品質にも影響することを改めて実感しました。
良かったこと
アプリの開発のリリースまでの工程を学ぶことができたことがかなり成長に繋がったなと感じました。一回リリースまで持っていくと次のアプリ開発がスムーズに行くととても感じました。
今後
まずは今のアプリをある程度の完成度まで仕上げてから、この開発の経験を活かして、次は位置情報を使ったsnsアプリの開発に取り組んでいこうと思います。今度は三ヶ月くらいを目安に計画的に行いたい
アプリの使用技術
Flutter
Firebase
・Firestore Database(データベース)
・Firebase Authentication(認証)
・Firebase Storage(画像保存)
Cloud Function(サーバーレス関数実行)
Cloud Run(デプロイ)
Docker(コンテナ)
OpenAI API(aiの処理)
Cursor
Claude Code