swiftui

【随時更新】SwiftUIで作るアプリ開発の記録

Appleエコシステムにおける一大パラダイムシフトに備え、SwiftUI製アプリの開発を始めました。その記録や所感について書いています。随時更新します。

製作中のアプリと開発のきっかけ

宣伝がてら製作しているアプリとそのきっかけについてを簡単に触れておきます。

6/23追記: UIが難しかったので結局途中で放置してしまった。シンプルなUIでできるアプリを開発することにした

開発中のアプリについて

スコアブックの書き方がわからない人でも、パワプロ風の野球のスコアをつけることができるアプリです。

きっかけ

去年秋から新設された草野球チームの活動に参加し始めたのですが、その中でチームのマネージャーがスコアブックを書けないというところからアプリの着想を得ました。iOSの更新に合わせてメンテナンスすることを考えるとやはり気が引けてしまうのですが、次に挙げた通り使ってもらえる見通しが立ちそうな気がしたので開発に取り掛かりました。

  • 身近なニーズ: 自分自身も含めた身近にニーズがあるため作りやすく、初期ユーザーの獲得・テスト・ヒヤリング等のハードルが低くそうです。
  • バイラル性: 野球はチームスポーツなので一人の利用に止まりません。各個人の成績データと紐づけたりすると良さそうです。
  • 継続可能性: 趣味の延長線上のアプリ開発ということで飽きっぽい自分でも開発へのモチベを保ちやすそうでした

また、フレームワークの選定ですがSwiftUIが発表されてから約一年ほど時間が経過して情報も実用性もある程度充実してきた感を感じていた折、勉強がてら手をつけるにはちょうど良い機会だということでSwiftUIを使っての開発を決めました。

SwiftUIを使ってみての所感

結論としてはよほど複雑なViewの実装がなければこれからはSwiftUIベース一択だなと思いました。従来のUIKitと比較しての主な理由を次に挙げます。

①可読性の向上

UIKItでは複雑なViewを作ろうと思うと苦しかった部分も、簡潔なコードで実装することができました。また従来でいう同一のViewController内でも使うView毎にファイルを分割して管理することができるところも良いです。

②コードの再利用性・資産性の向上

従来はStoryboardと連動している仕様だったため基本的にはコードをコピペしても同じように動かないのですが、SwiftUIはコピペである程度動いてくれるようになりました。WEB開発に近くなった感覚です。一度書いたコードは別のプロジェクトで再利用しやすいのが嬉しいです。

③デバッグが簡単になった

リアルタイムプレビューのおかげで、デバッグのためにいちいちビルドする必要がなくなりました。分割したView単位でプレビューできるのも嬉しいです。

開発状況の経過(随時更新)

実際にアプリを作りながら、必要になった知識をその都度補填する形で進めていく形をとりました。またその際に得た知識は折角なので記事のネタにしています。該当のリンクと合わせて時系列順に経過を書いていきます。

1月

開発に取り掛かかりました。細かいレイアウトは一旦無視して、メインとなるViewの叩き台の完成を目指しました。大体の勘所は掴むことができました。

2月

データの保存や通信処理に関しては変わらずなのでスムーズにいきました。

おまけ

使用しているライブラリ

全てSwiftPackageManagerでインストール可能です。

  • PKHUD: いい感じのHUDが出せる。SwiftUIならぶっちゃけ不要な気もするけどお洒落だから使う。
  • Firebase: AuthとAnalyticsに使用。言わずと知れた個人開発の味方

  • KingfisherSwiftUI: SwiftUI版の定番の画像系ライブラリ
  • DynamicColor: SwiftUIで呼び出せる色のバリエーションを増やす
  • ChartView: 打率とかの成績をグラフ化できたら良さそう

読んでいただきありがとうございます!!

記事として取り上げたトピックを体系化してまとめた内容を電子書籍として販売しています。購入していただくことで執筆の応援ができます。詳細はこちらから