【SwiftUI】プログラミング始めてから約1ヵ月でアプリをリリースした話

題名通り、今年の9月末からMacBookを買い、細々とSwiftUIを勉強しながらアプリ開発をしていたのですが、先日漸くアプリリリース至ることが出来ました。このリリースまでの1ヵ月間、どのようにリリースまでに至ったのか記憶が鮮明なうちに書き記しておきます。

 

結論

まず結論から申し上げますと、素人が個人でアプリ開発する際には本を買いましょう。スクールに通う選択肢も良いと聞きますが、とりあえず本を一冊買ってその中身を辿ってコーディングするだけでも何となくプログラミングというものを掴むことが出来ます。どのようなアプリを作るか、そしてどのアプリを開発するためには何が必要かが分からないうちは、自分のできることを増やすために本を読んで真似するのが一番だと思います。そのうえで色々試行錯誤しながら開発を進めていくことがリリースへの近道になるはずです。

 

初期

とりあえず何を作るかさえも決まっていなかったので、どのようなことをしてプログラミングができるのかを知るために参考書を買いました。

 

www.amazon.co.jp

 

この本を片手にコードを真似して、そして自分で少し変更しながらどのような仕組みなのかを知ろうとしました。が、少しでもコードを変えると動作しなかったりするので、何とかして動くように粘ることが多かったです。

 

また、このころライブラリという便利なものがあると聞いて軽く検索していたのですが、SwiftUIは非常に新しいフレームワークでそれに対応しているものが少なく、若干SwiftUIを使っていることを後悔した思い出があります笑。とはいえ、とても有用なライブラリもありますので、「ターミナル」アプリから「Cocoapods」という便利なソフト?をインストールすれば、簡単に色々なライブラリをインポートできるようになります。

 

中期

多少やれることが分かってくると、それを使って作れるものが思い浮かんでくるはずです。正直、真似するだけも飽きてきたのでコードはそこそこに、作りたいアプリをノートに殴り書きして、必要なものをリストアップしていきました。私の場合、ローカルでデータを保存する必要があったので、データベースをなんとかして学ぶ必要が出てきました。

 

realm.io

www.amazon.co.jp

 

これまた「Realm」を学ぶために参考書を購入しましたが、正直全く理解できませんでした(この参考書が悪いというわけではありません笑。むしろ最終的にはとても役立ちました)。そこでなんとかSwiftUIでRealmを使っている方の記事を参考にして、データベースの導入を試みましたが、人によって書いていることが違うのでかなり混乱させられました。

 

MVVMにやられた話

MVVM、またはModel-View-ViewModelという考え方に非常に苦しめられました。正直今でも把握できていないくらいなのですが、様々な方がこのシステムを用いてアプリを管理していたので、これについて理解しないとデータベースを使った挙動が実装できませんでした。もし、これからアプリ開発を始める方で「ViewModel」という単語が出てきたら、MVVMについていろいろ調べてみると良いと思います。

 

終盤

MVVMもなんとなくわかり、Realmも色々試して使えるようになってからはあとはUIの部分を実装するだけなので、これに関しては非常にSwiftUIは楽でした。ただ、スクロールの挙動などを自前で実装する必要があった際に、4時間以上苦労した記憶は新しいです。

 

www.amazon.co.jp

 

追加でこの本もとても参考になりましたので、ある程度慣れてきた方はぜひ見てみてください。

 

お絵かきした話

ゲーム性のあるアプリを開発したかったので、キャラクターの画像を自らドットツールを使って作成しました。個人でアプリ開発する際には、ここで労力をかけるのは大変なので、外注や依頼をしてみても良いと思います。

 

アプリ審査まで

紆余曲折ありましたが、とりあえず一通りアプリが開発できたのでリリースをしようと思い調べると、想像以上に面倒な作業が私を待っていました。具体的には、

・証明書類の発行

Apple developer programの加入(年間約12000円の会費)

App Store Connectにアプリ情報の登録

などなど手間がかかる物が多いです。

特にApp Store Connectにアプリを登録する際には、「App Storeに載せる写真(旧スマホ用と新スマホ用、必要ならiPad用)」や「アプリアイコン」などプロゲラミングとは直接関係ないものを用意しなければなりません。やっとプログラミングが終わってリリースしたくても、そこにたどり着くまでに一苦労です…。個人でやる際にはここら辺をあらかじめ把握しておくと、予定に余裕が持てると思います。

 

i-app-tec.com

 

この方のサイトが参考になりましたので、ぜひご確認下さい。

 

リジェクトについて

やっとのこさリリースまでこぎつけたとしても、必ずしも審査が通るとは限りません。幸いにも私は一度もリジェクトされず審査に通りましたが、あらかじめリジェクトされる可能性があると身構えておく方が良いかもしれません。ちゃんとリジェクトされた理由は教えていただけるらしいので、なんとかやるしかないですね…。怖い

 

終わりに

アプリリリースまで色々素人なりに格闘してきましたが、何よりも大変だと思ったのがプログラミングに時間を拠出することです。モチベーションの維持ももちろん、プログラミングは時間と体力を使うので、他にやることがあるとなかなかストレスになりやすいです。ギブアップしないためには、短期目標を立てつつ、あまり今詰め過ぎないでアプリの進歩を友人や家族と共有しつつやるのが良いのかなと思います。あと、経験者に気軽に聞けると進捗的にも、精神的にもだいぶ楽かもしれないです。

 

最後に、作ったアプリを載せておきますので、1ヵ月で作ったアプリがどんなものか気になった方はインストールしてみてもらえると嬉しいです。

 

TaskQuest

TaskQuest

  • utsugi hyuga
  • 仕事効率化
  • 無料

apps.apple.com