見出し画像

月間ユーザー10kの個人スマホアプリ開発事情・技術編【iOS/広告収益】

はじめに

前回は個人開発アプリのざっくりとした概要についての記事を書きました。
今回は技術面に関してふりかえっていきます。

開発環境

CI/CD

個人開発なので大袈裟なものではないですが、運用フェーズに入るとたまにしか触らなくなってしまうので、とにかくREADME.mdにリリース手順などをまとめるようにしています。

初期の構成

  • fastlaneのmatchで証明書を管理

  • fastlaneからリリースビルドを作成

  • Test Flightに配布

  • App Store Connectに配布

  • 上記のコマンドをMakefileにまとめる

現在の構成

  • 証明書はAutomatically manage signingで管理

  • Xcode Cloudのワークフローを使って、Test FlightとApp Store Connectへの配布を実行

Xcode Cloudがお試しで使えるようになった時期からこの構成にしているのですが、特に凝ったことをやらないのであれば一番楽だと思っています。
個人で払うには最低のプランでもちょっと高いなぁと思っていたのですが、無料枠が設けられたのでそれを活用しています。とても助かっています。

Apple Developer Program

怖いのが更新忘れですが、いつの間にかDeveloperアプリの方からサブスクができるようになっていたのでそれを利用しています。
昨今の円安を考えると、値上げするんですかねぇ…

タスク管理

シンプルにGithub上にやりたいことを思いついたタイミングでissue化しています。
また、バージョン毎にマイルストンを作成し、Pull Requestをそれに紐づけています。

使用技術

UIKitをベースとして、一部の画面にSwiftUIを使用している、至って普通のアプリ構成です。DBだけは特殊なものを採用しています(Apple純正なんですけどね)
以下の理由から、CoreDataとCloudKitを採用しています

  • 久しぶりにCoreDataを使いたかった

  • データを複数端末で共有したい

  • 無料で実現したい

CloudKit連携ですが、個人的には以下のメリットとデメリットを感じました

メリット

  • 特に意識することなくデータの共有が行われる

  • 無料

デメリット

開発するにあたって私が参考にしたのは以下のQiitaの記事です。こちらを読んでいただくとなんとなく雰囲気が分かると思います。
私もこの記事を書くにあたって久しぶりに読みましたが、普段ほとんど触らないので色々忘れてました。

まとめ

改めてふりかえってみると、個人開発なので特殊な技術選定を行なっていますね。これが個人開発の良いところかもしれません。
とはいえCloudKitのリアルタイム同期はこのアプリにはオーバースペックかもしれないと常々思っており、ユーザー見えにも分かりにくい機能になっています。次の機能追加はバックアップ関係になりそうです。

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