Swift・iOS

Swiftを中心に学んだことを記録に残すブログです。技術に関係ない記事もたまに書いています。

iOS

【Swift】構造体の配列をUserDefaultsで保存/取得する

はじめに 開発環境 本題 保存/取得する方法 例 おわりに 参考 はじめに 構造体の配列をUserDefaultsで保存、または取得する方法について記載します。 開発環境 macOS Big Sur 11.2.3 Xcode 12.4 Swift 5.3.2 本題 保存/取得する方法 以下公式ドキュメントに…

【Swift】WKWebViewで表示しているページのURLとタイトルを取得する

はじめに 開発環境 本題 該当のメソッド SwiftUIでの実装例 おわりに 参考 はじめに 【SwiftUI】WKWebViewを使えるようにする - Swift・iOSの続きです。今回はWKWebViewで表示しているページのURLとタイトルを取得する方法について記載します。 開発環境 mac…

【SwiftUI】"Fatal error: No ObservableObject of type ~ found. A View.environmentObject(_:) for ~ may be missing as an ancestor of this view."の解決方法

はじめに 開発環境 本題 エラー発生時の状況 エラーの解決方法 おわりに 参考 はじめに 表題のエラーに関して、発生時の状況と解決方法を記事に残します。 開発環境 macOS Big Sur 11.2.3 Xcode 12.4 Swift 5.3.2 本題 エラー発生時の状況 sheetでEnvironmen…

【SwiftUI】Listの行を並び替える

はじめに 開発環境 イメージ 実装 おわりに 参考 はじめに Listの行を並び替える実装について記事に残します。 開発環境 macOS Big Sur 11.2.3 Xcode 12.4 Swift 5.3.2 イメージ 実装 NavigationViewにEditButtonを追加し、"onMove(perform:)"を使うと行を並…

【SwiftUI】Listの行を削除する方法(スワイプで削除/選択して削除/複数の行を同時に削除)

はじめに 開発環境 実装 スワイプで行を削除したい場合 選択して行を削除したい場合 複数の行を同時に削除したい場合 おわりに 参考 はじめに Listの行を削除する方法についてまとめました。 開発環境 macOS Big Sur 11.2.3 Xcode 12.4 Swift 5.3.2 実装 ス…

【SwiftUI】Listの各行ごとに別のモーダルビュー(sheet)を表示する

はじめに 開発環境 サンプルイメージ 実装 SettingView.swift SettingViewModel.swift SceneDelegate.swift おわりに 参考 はじめに 【SwiftUI】ListからNavigationLinkで画面遷移する - Swift・iOSの続きです。今回はListからモーダルビューへ画面遷移する…

【SwiftUI】ListからNavigationLinkで画面遷移する

はじめに 開発環境 サンプルイメージ 実装 SettingView.swift SampleView.swift SceneDelegate.swift おわりに 参考 はじめに 【SwiftUI】セクションごとに分けてListを表示する - Swift・iOSの続きです。今回はListからNavigationLinkを使って画面遷移する…

【SwiftUI】セクションごとに分けてListを表示する

はじめに 開発環境 サンプルイメージ 実装 おわりに 参考 はじめに 【SwiftUI】Listを表示する - Swift・iOSの続きです。今回はListをセクションごとに分けて表示する実装を試したので記事に残します。 開発環境 macOS Big Sur 11.2.3 Xcode 12.4 Swift 5.3.…

【SwiftUI】Appのプロトコルに準拠した構造体で"environmentObject(_:)"を適用する

はじめに 開発環境 本題 おわりに 参考 はじめに プロジェクト作成時にLife CycleをSwiftUI Appにすると生成される、「Appのプロトコルに準拠した構造体」で"environmentObject(_:)"を適用する方法のメモ。 開発環境 macOS Big Sur 11.2.3 Xcode 12.4 Swift …

【SwiftUI】SFSafariViewControllerを使えるようにする

はじめに 開発環境 実装 使用例 おわりに 参考 はじめに UIViewControllerRepresentableを使って、SFSafariViewControllerをSwiftUIで使用できるようにしてみました。 ※WKWebViewをSwiftUIで使いたい場合は以下記事を参考にしてみてください。 【SwiftUI】WK…

【SwiftUI】モーダルビューを全画面表示にする

はじめに 開発環境 本題 通常のモーダルビューとの実装の違い 全体のコード おわりに 参考 はじめに モーダルビューを全画面表示する実装についてメモ。 開発環境 macOS Big Sur 11.2.3 Xcode 12.4 Swift 5.3.2 本題 通常のモーダルビューとの実装の違い 【S…

【SwiftUI】アラートを表示する

はじめに 開発環境 手順 全体のコード おわりに 参考 はじめに アラートを表示する手順をまとめました。 開発環境 macOS Catalina 10.15.7 Xcode 12.2 Swift 5.3.1 手順 ContentView.swiftを開いて、Textを削除。 ContentView.swift 画面右上の"+"を選択。 "…

【SwiftUI】モーダルビューを実装する

はじめに 開発環境 本題 手順 モーダルビューを実装するファイルを追加 モーダルビューを呼び出す モーダルビューに閉じるボタンを追加 全体のコード おわりに 参考 はじめに モーダルビューを実装する手順をまとめました。 開発環境 macOS Catalina 10.15.7…

【SwiftUI】TextFieldを実装する

はじめに 開発環境 本題 手順 全体のコード おわりに 参考 はじめに TextFieldを実装する手順をまとめました。 開発環境 macOS Catalina 10.15.7 Xcode 12.2 Swift 5.3.1 本題 手順 ContentView.swiftを開いて、Textを削除。 ContentView.swift 画面右上の"+…

fastlaneまとめ

はじめに fastlane関連記事 入門 実践入門 おわりに はじめに fastlaneの公式ドキュメント(fastlane docs)に従って、CI環境の構築を試してきました。ある程度fastlane関連の記事がたまってきたので、この記事にリンクをまとめたいと思います。 fastlane関…

【Swift】UICollectionViewでUITableViewのUIを表示する

はじめに 開発環境 実装 おわりに 参考 はじめに iOS14で実装できるようになった、Lists in UICollectionViewを試してみました。 開発環境 macOS Catalina 10.15.7 Xcode 12.2 Swift 5.3.1 実装 Main.storyboardでUICollectionViewを追加。 Main.storyboard …

【Swift】GitHubのREST APIを使ってユーザーを検索する

はじめに 開発環境 実装 Main.storyboard ViewController.swift TableViewCell.xib TableViewCell.swift Session.swift Request.swift SearchUsersRequest.swift ItemsResponse.swift Result.swift User.swift おわりに 参考 はじめに アーキテクチャやテス…

【Swift】Core Dataを使って情報を保存/取得する

はじめに 開発環境 手順 おわりに 参考 はじめに Core Dataを使って、情報を保存する処理と取得する処理について簡単に実装してみたので記事に残します。 開発環境 macOS Catalina 10.15.7 Xcode 12.2 Swift 5.3.1 手順 "Use Core Data"にチェックを入れる。…

【SwiftUI】TabViewのタブ選択時の処理を実装する

はじめに 開発環境 本題 おわりに 参考 はじめに TabViewのそれぞれのタブを選択した時の処理を実装する方法について記載します。 開発環境 macOS Catalina 10.15.7 Xcode 12.2 Swift 5.3.1 本題 onChange(of:perform:)を使うことで、各タブを選択した時の処…

【SwiftUI】プッシュ通知を選択した時に特定の画面に遷移する

はじめに 開発環境 本題 動作イメージ 全体の実装 AppDelegate.swift SceneDelegate.swift RootView.swift RootViewModel.swift HomeView.swift PushDetailView.swift PushDetailViewModel.swift WebView.swift 補足 おわりに 参考 はじめに Firebase Cloud …

【SwiftUI】Firebase Cloud Messagingで受信したプッシュ通知の内容をSwiftUIのViewで利用する

はじめに 開発環境 本題 おわりに 参考 はじめに Firebase Cloud Messagingで受信したプッシュ通知の内容をSwiftUIのViewで利用する実装について記事に残します。 ※Firebase Cloud Messagingの導入に関しては、以下の記事に記載しています。 【Firebase Clou…

【Firebase Cloud Messaging】受信したメッセージを処理する

はじめに 開発環境 本題 おわりに 参考 はじめに 【Firebase Cloud Messaging】導入の手順 - Swift・iOSの続きです。今回は受信したプッシュ通知のメッセージを処理する方法について記事にします。 開発環境 macOS Catalina 10.15.7 Xcode 12.2 Swift 5.3.1 …

【Firebase Cloud Messaging】テストメッセージを送信する

はじめに 開発環境 手順 おわりに 参考 はじめに 【Firebase Cloud Messaging】導入の手順 - Swift・iOSの続きです。今回はFirebase Cloud Messagingを導入したアプリに、Firebaseコンソールからプッシュ通知をテスト配信する手順について記事にしました。 …

【Firebase Cloud Messaging】導入の手順

はじめに 開発環境 手順 設定 Identifierを追加 Apple Push Notification Authentication Keyの取得 Capabilityを追加 Firebaseプロジェクトを追加 FirebaseにiOSアプリを追加する Firebaseの構成ファイルをプロジェクトに追加 Firebase SDKをプロジェクトに…

【SwiftUI】NavigationLinkで遷移した画面の上部に謎の余白が発生する原因

はじめに 開発環境 本題 謎の余白問題 問題発生時のコード 原因 解決方法 おわりに 参考 はじめに 「原因がただの凡ミス」系の記事です笑 同様の現象で悩む方はいないかと思いますが、私はすぐに原因に気付けず時間を失ったので一応記事に残しておきます・・…

【SwiftUI】WKWebViewを使えるようにする

はじめに 開発環境 実装部分 おわりに 参考 はじめに UIViewRepresentableによって、SwiftUIのアプリでもWKWebViewを使えるようにしてみました。 ※2021/03/23 追記 SFSafariViewControllerをSwiftUIで使用する方法について、以下記事にしました。 【SwiftUI…

【SwiftUI】Listを表示する

はじめに 開発環境 手順 リストを表示 リストにタイトルを追加 セルに複数の内容を表示する おわりに 参考 はじめに UITableViewのUIを、SwiftUIではListで実装します。今回はListを表示する方法について記載します。 開発環境 ・macOS Catalina 10.15.7 ・X…

【fastlane】TestFlightにアプリをアップロードする

はじめに 環境 本題 おわりに 参考 はじめに TestFlightにIPAファイルをアップロードする方法に関して記載します。 環境 ・macOS Catalina 10.15.7 ・Xcode 12.2 ・CocoaPods 1.10.0 ・zsh 5.7.1 ・bundler 2.1.4 ・fastlane 2.170.0 ・Visual Studio Code 1…

【Firebase Crashlytics】コンソールにクラッシュ情報が表示されない原因と対処法

はじめに 環境 前提 原因 対処法 クラッシュ情報を送信する具体的な手順 おわりに 参考 はじめに FirebaseのコンソールでFirebase Crashlyticsを有効にすると、アプリをビルドして意図的にクラッシュさせるよう求められます。ただ、なぜかクラッシュさせても…

【fastlane】Firebase CrashlyticsにdSYMをアップロードする

はじめに 環境 本題 おわりに 参考 はじめに Firebase CrashlyticsにdSYMをアップロードする方法に関して記載します。 ※Firebase Crashlyticsの導入方法に関しては以下を参照してください。 Get started with Firebase Crashlytics 環境 ・macOS Catalina 10…