iOS の家計簿アプリをつくる(Xcode プロジェクト作成編)

advent_calendar アドベントカレンダー

はじめに

こちらは個人開発アプリができるまで by am10 Advent Calendar 2024の 4 日目の記事です。

4 日目は Xcode プロジェクトのコードを書く前の初期設定についてです。今回は Xcode 16.0 を使います。

プロジェクト作成

Xcode でプロジェクトを作成し以下のように SwiftUI, Swift Testing, SwiftData を選択します。Priduct Name は家計簿ということで「ExpenseLog」にしました(支出入力のみという感じがでるかなと)。

1

git 管理したいので以下のように Create Git repository にチェックを入れてプロジェクトを作成します。

2

フォルダ構成

フォルダ構成を整理します。以下のような感じです。

3

Sources にはコードファイル Resources にはアセットを入れます。
Sources はさらに以下のようにわけています。

  • Models:画面表示関連以外のものすべて
  • Screens:各画面
  • Views:ボタンなどのカスタム View

.gitignore作成

ルートディレクトリに .gitignore を作成します。以下のサイトで「Swift」「Xcode」を指定して作成しました(.gitignore ファイルの作成はターミナルで touch コマンドを使いました)。

gitignore.io
Create useful .gitignore files for your project

最小 OS など設定

Targets > general から最小 OS などを設定していきます。

Minimum Deployments で iOS 17 を指定します。最新から 1 つ下をサポートすれば 80% 以上のシェアは確保できるのでだいたいは 1 つ下までサポートするようにしています(それ以上下げるとメンテがむずかしい)。

4

Identity で App Category とアプリバージョン・ビルドバージョンを指定します。
App Category は家計簿なので Finance でいいでしょう。アプリバージョン・ビルドバージョンは最初なのでどちらも 1.0.0 にします。

5

必要であればここで Bundle Identifier も変更しておきます。

今回は縦固定表示なので Deployment Info で Portrait 以外のチェックをはずします。

6

Swift 6 モードに変更

Xcode 16 は Swift 6 が入っていますがデフォルトでは Swift 5 モードになっています。おそらくいずれ Swift 6 への移行が必要になると思われるので Swift 6 モードに変更しておきます。

Build Settings > Strict Concurrency Checking で Minimal から Complete に変更する。

7

Build Settings > Swift Language Version で Swift 5 から Swift 6 に変更する。

8

参考

Swift6への移行 Strict Concurrency入門|株式会社Amazia
こんにちは、AmaziaでマンガBANG iOSアプリ開発を担当しています、山崎です。 先日、Xcode 16の正式版がリリースされました。このバージョンには、Swift 6コンパイラが搭載されており、新たに「strict concurrency checking(厳密なSwift並行処理の安全性チェック)」機能が導...

リンター設定

以前まではリンターには SwiftLint を使っていたのですが Xcode 16 からは swift-format が付属されているので swift-format を使います。

注意:SwiftFormat ではありません。

  1. Build Phases > + > New Run Script Phase から Run Script を追加する(わかりにくいので swift format に名称変更)
  2. 以下のスクリプトを追加する
  3. Based on dependency analytics のチェックをはずす

こんな感じです。

9

次に以下のような .swift-format ファイルをルートディレクトリに作成します(ファイルは touch コマンドで作成)。

設定については Configuration.md) ルールについては RuleDocumentation.md に記載されています。

こちらの記事が参考になりました。

swift-format の Configuration

これでビルド時にリンターがチェックしてくれるようになりました(個人的にフォーマッターで勝手に変わるの好きじゃないのでフォーマッターは使ってません)。

Xcode のバージョン指定

次に Xcode のバージョンを指定します。とくにやらなくてもいいのですが Xcode のバージョンは揃えたいので設定しています。

  1. ルートディレクトリに以下の .xcode-version ファイルを作成する(ファイルは touch コマンドで作成)
  2. Build Phases > + > New Run Script Phase から Run Script を追加する(わかりにくいので Xcode Version に名称変更)
  3. Input Files に $(SRCROOT)/.xcode-version を追加する
  4. 以下のスクリプトを追加する
  5. Based on dependency analytics のチェックをはずす

こんな感じです。

10

これでビルドした場合に Xcode のバージョンが異なっていればエラーを表示するようになります。

設定が 15.0 で 16.0 で開くとこんな感じエラーが表示されます。

13

Xcode のバージョン確認は Xcode > About Xcode で以下のように確認できます。

11

参考

Xcodeバージョンをビルド時に厳密にチェックする - Qiita
複数のプロジェクトでそれぞれ異なるXcodeのバージョンを利用していると、気づいたら想定と異なるバージョンで開発・ビルドしていた、といったバージョン取り違えの危険性があるそのため、想定と異なるXc…

おわりに

option + command + C でコミットして今回は終了です。これでアプリを作る準備は整いました!ルートディレクトリはこんな感じになります。

12

明日はデータ取得・登録の API まわりの実装について書きます。

1人でアプリを作る人を支えるSwiftUI開発レシピ | 佐藤 剛士 |本 | 通販 | Amazon
Amazonで佐藤 剛士の1人でアプリを作る人を支えるSwiftUI開発レシピ。アマゾンならポイント還元本が多数。佐藤 剛士作品ほか、お急ぎ便対象商品は当日お届けも可能。また1人でアプリを作る人を支えるSwiftUI開発レシピもアマゾン配送商品なら通常配送無料。

コメント

タイトルとURLをコピーしました