SwiftUIを学び始めて3ヶ月です
今年3月から深層学習の研究を始め、「深層学習を活かして便利なアプリを作りたい」と思ったのがきっかけで、通学中など、研究の合間にSwiftの勉強をしています。
その時に、勉強の参考になったサイトを紹介します。
【Xcode】超初心者のためのSwiftUIチュートリアル
パッケージ導入管理ツール(SPM)
CoremML関連
Xcodeプロジェクト作成後にCoreDataを有効にする。(データベース)
WidgetKit入門
MVCとMVVMの違いを理解する
【SwiftUI】Listの行入れ替え
ファイル保存関連
その他の実装で参考になるサイト
ただ、DjangoでWebアプリを開発し、デプロイまで行った経験はあるので、APIやデータベースに対しての知識は元々ありました。
【Xcode】超初心者のためのSwiftUIチュートリアル
とても参考になりました。SwiftUIを始める上での注意点なども書かれています。
途中から読んでも分かりやすいです。
https://note.com/nyakko/m/m6c036d624ab2
パッケージ導入管理ツール(SPM)
APIを利用する際にAlamofireというパッケージを使う必要があり、パッケージ導入に苦戦していた所、このサイト通りに行ったら導入することができました。
https://amefure.com/tech/swift-package-manager
CoremML関連
深層学習(機械学習)を用いたアプリを作るにあたって、SwiftUIで学習モデルを導入するには、CoreMLを使うのが1つの方法です。
1つ目のサイトの理由は、自分はモデル学習にPyTorchを使っているので、ONNX形式に一度変換してから、CoreML形式にする必要がありました。
2つ目は、CoreMLの実装の参考になりました。
https://qiita.com/studio_haneya/items/be9bc7c56af44b7c1e0a
Xcodeプロジェクト作成後にCoreDataを有効にする。(データベース)
SwiftUIのようなモバイルアプリでは、端末上のストレージをデータベースとして用いることかできます(もちろん、Web上のデータベースも用いることもあります)。
そこで、Coredataを使って、データ保存を簡単に行うことができます。
https://qiita.com/araiyusuke/items/65794d24563c68741915
WidgetKit入門
ロック画面やホーム画面に天気とか表示できる機能です。
https://zenn.dev/naoya_maeda/articles/e5c5af8ec567c9
MVCとMVVMの違いを理解する
アプリ開発における、ファイルの役割の分担形式です。
MVC・・・Model,View,Controllerの3つの約割に分けられ、
Modelがデータに関わる重要で複雑な処理、Viewは使用者とやり取りする処理、ControllerはModelとViewの仲介(Viewが使用者から受け取った情報を、Modelが受け取れるような状態にして渡す)
MVVM・・・Model,Viewは同じだが、VMがViewModelといい、MVCでのControllerのような働きをするが、Controllerの負担を減らした感じ
【SwiftUI】Listの行入れ替え
編集モードを使えるようにして、そこからリストの並び替えをできるようにします
https://capibara1969.com/2281/
ファイル保存関連
1つ目は丁寧な(?)保存手法です
2つ目は試していないですが、簡潔に書かれています
https://tech.amefure.com/swift-file-manager
※2023/7/19 追記
このサイトもわかりやすく、保存から削除まで一通り書かれてるので参考に
https://qiita.com/am10/items/3b2eb3d9f6c6955455b6
その他の実装で参考になるサイト
SwiftUIでQRスキャンする
Swiftで絵描きができるライブラリ
標準搭載のヘルスケアアプリからデータを取得
睡眠記録、体重、心拍数とか取得できるらしいです
しかもライブラリがあるから簡単にできます
https://qiita.com/hamayu/items/5384770d2edcb257e6eb
SwiftUI 100本ノック
https://qiita.com/takoikatakotako/items/886604570808bb8fc110???
iOS16の新機能
How to build a linear progress bar in SwiftUI(プログレスバーの実装)
iOS17の新機能
ObservedObjectの使い方