月間ユーザー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連携ですが、個人的には以下のメリットとデメリットを感じました
メリット
特に意識することなくデータの共有が行われる
無料
デメリット
公式以外にドキュメントがほぼない(採用事例が少ない?)
syncするタイミングを制御する方法がなさそう
Apple IDを切り替えたりすると問題になるケースがありそう(未検証)
開発するにあたって私が参考にしたのは以下のQiitaの記事です。こちらを読んでいただくとなんとなく雰囲気が分かると思います。
私もこの記事を書くにあたって久しぶりに読みましたが、普段ほとんど触らないので色々忘れてました。
まとめ
改めてふりかえってみると、個人開発なので特殊な技術選定を行なっていますね。これが個人開発の良いところかもしれません。
とはいえCloudKitのリアルタイム同期はこのアプリにはオーバースペックかもしれないと常々思っており、ユーザー見えにも分かりにくい機能になっています。次の機能追加はバックアップ関係になりそうです。
この記事が気に入ったらサポートをしてみませんか?