【iOS / Swift】SwiftUI学習メモ
はじめに
UIKitベースでのアプリ開発経験しかなく、SwiftUIは未学習の状態だった。
業務で使う予定があるわけでもないが、プライベートで興味があるので、参考書を見ながらSwiftUIを触ってみる。
そもそもiOS開発関連で忘れている事項があったり、何か新しい学びがあれば雑多にメモをしていく。
各種参考サイト
Apple Developer Programに未登録時の制限事項
実機実行時に影響するため、制限事項について再確認
※以下、公式サイトより抜粋
Apple Developer Programに登録されていないApple IDでXcodeにサインインした場合、個人使用(Xcodeでは「Personal Team」に該当)を目的としたデバイス上でのテストを行うことができます。
ただし、このタイプの開発ワークフローには次のような制限があり、定期的にアプリをデバイスに再プロビジョニングする必要があります。・アカウントに一度に登録できるアプリIDの数は10個に制限されており、いずれも7日後に期限切れになります。
・アカウントに登録できるテストデバイスの数は、プラットフォームごとに3台に制限されており、いずれも7日後に期限切れになります。
・プロビジョニングプロファイルは発行から7日後に期限切れになります。期限切れ後は、アプリを再ビルドしてデバイスに再インストールする必要がある場合があります。
少し便利な文字列の扱い方
複数行の文字列を作りたい時
ダブルクォーテーション3つで囲む
var hoge = """
改行を
"たくさん"
書けます
"""
文字列に変数を埋め込みたい時(JSのテンプレート構文的な使い方)
「(変数)」の形式で変数を埋め込む
(「バックスラッシュ + ()」の形式0
var hensu = 12345
var hoge = "文字列の途中に \(hensu) を入れる"
Xcode15 SwiftUIで、UI部品をPreviewにドラッグアンドドロップできない件
結論
PreviewへUI部品をD&Dする機能は、Xcode15から削除された
参考サイト
プロジェクトナビゲーター上のファイルの、拡張子を表示する方法
概要
Xcodeを入れ直したせいか、拡張子が表示されなくなっていることに気づいた。
検索すると、Xcode13からファイルの拡張子がデフォルト非表示になっていた模様。
Xcode13以降で、拡張子を表示する手順
以下のメニューから、表示設定可能
[Xcode] > [Settings...] > [General] > [File Exteinsions] > "Show All" を選択
参考サイト
「Cannot preview in this file」エラーでプレビューが表示されない問題の対応
概要
ネットからダウンロードしたサンプルプロジェクトをXcodeで開いた際、表題のエラーが表示されてプレビュー表示されない問題が出た。
※既存のプロジェクトではプレビュー表示できている。
解決策
- ターミナルを起動し、cdコマンドでプロジェクトルート直下へ移動する
- 以下コマンドを実行する(パスワードは、Mac起動時のサインインパスワード入力)
sudo xcodebuild -license
- Xcodeを再起動し、改めてプロジェクトを開くと解決した
(状況的に、なぜ上記のコマンドで解決できたのか不明)
参考サイト
Xcode15で、SwiftUIのプレビュー表示を複数View同時表示できない件
概要
Xcode13に対応した書籍を読んでいたら、複数Viewを同時に並べてプレビュー表示できる旨の記載があった。
ただ、Xcode15だと複数Viewを同時に並べてプレビュー表示できなさそうだったので調査を実施した。
結論
Xcode14より、複数Viewを同時に並べてプレビュー表示する機能は削除された模様。
Xcode14以降からは、プレビュー画面のタブを切り替えることで、プレビュー表示を切り替える。
参考サイト
UIKitとSwiftUIにおける設計パターン
大まかに以下の認識。
フレームワーク | 設計パターン |
---|---|
UIKit | UIKitの場合は、MVC(Model-View-Controller)パターンが一般的に採用されてきた(UIKitの設計がMVCパターンに適しているため) ただし、現在はMVVM(Model-View-ViewModel)パターンの採用も増えてきている |
SwiftUI | SwiftUIの場合は、MVVM(Model-View-ViewModel)パターンが一般的(SwiftUIのデータバインディング機能と相性が良いため) MVVMが推奨されている |