Swift・iOS

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

SwiftUI

【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…

【SwiftUI】NotificationCenterの通知をSwiftUIのViewで受け取る方法

はじめに 開発環境 本題 おわりに 参考 はじめに NotificationCenterの通知をSwiftUIのViewで受け取る方法について、備忘も兼ねて記事に残します。 開発環境 macOS Catalina 10.15.7 Xcode 12.2 Swift 5.3.1 本題 まず、post(name:object:userInfo:)を使って…

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

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

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

はじめに 開発環境 実装部分 おわりに 参考 はじめに UIViewRepresentableによって、SwiftUIのアプリでもWKWebViewを使えるようにしてみました。 開発環境 ・macOS Catalina 10.15.7 ・Xcode 12.2 ・Swift 5.3.1 実装部分 WebView.swift import SwiftUI impo…

【SwiftUI】"No exact matches in call to initializer"の原因

はじめに 開発環境 本題 エラー発生時の実装内容 エラー内容に関して 原因 おわりに はじめに 最近SwiftUIに触る機会があるのですが、【SwiftUI】Listを表示する - Swift・iOSの内容を実践している時にケアレスミスで表題のエラーが発生しました。原因につい…

【SwiftUI】ログイン画面の実装まとめ

はじめに 開発環境 実装イメージ 実装 おわりに 参考 // はじめに これまで以下3つのログイン機能の実装をしてきました。今回は、それぞれの記事の内容を全て反映した全体のコードを記載します。 ・【SwiftUI】IDとパスワードでログインする画面を実装する -…

【SwiftUI】Sign In with Appleの実装

はじめに 開発環境 実装 設定手順 コード メールアドレスとフルネームの取得条件である「初回」の定義 おわりに 参考 はじめに 【SwiftUI】LINEログインの実装 - Swift・iOSの続きです。今回はSign in with Appleを実装していきます。 ※ログイン機能について…

【SwiftUI】LINEログインの実装

はじめに 開発環境 実装 設定手順 コード おわりに 参考 はじめに 【SwiftUI】IDとパスワードでログインする画面を実装する - Swift・iOSの続きです。今回はLINEログインを実装していきます。 ※ログイン機能については以下の記事でも取り上げています。 ・【…

【SwiftUI】IDとパスワードでログインする画面を実装する

はじめに 開発環境 実装 実装方針 コード おわりに 参考 はじめに IDとパスワードでログインする画面をSwiftUIで実装してみました。 ※ログイン機能については以下の記事でも取り上げています。 ・【SwiftUI】LINEログインの実装 - Swift・iOS ・【SwiftUI】S…

【SwiftUI】Listを表示する

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

【SwiftUI】タブ(TabView)を追加する詳細な手順

はじめに 開発環境 手順 プロジェクトを作成 TabViewを追加 タブのアイコンとタイトルを変更する 全体のコード おわりに 参考 はじめに UIKitではUITabBarでタブを表示していましたが、SwiftUIではTabViewを使います。私はSwiftUIを触る頻度がそこまで高くな…

【SwiftUI】Property Wrappers ( @State @Binding @ObservedObject @EnvironmentObject @StateObject ) の使いどころを理解する

はじめに サンプルに関して 開発環境 実装パターン1:@Stateのみを使う場合 実装パターン2:@Stateと@Bindingを使う場合 実装パターン3:@ObservedObjectを使う場合 実装パターン4:@EnvironmentObjectを使う場合 実装パターン5:@StateObjectを使う場合 おわり…

【SwiftUI】@Bindingの使い方

■Bindingとは "A property wrapper type that can read and write a value owned by a source of truth." ※引用:Apple Developer Documentation 「信頼できる情報源が所有する値の読み取りと書き込みが可能なプロパティラッパータイプ」です。 ・・・? ■サ…

【SwiftUI】@Stateはどのような時に使うのか説明してみた

■@Stateとは "A property wrapper type that can read and write a value managed by SwiftUI." ※引用:Apple Developer Documentation 「SwiftUIによって管理される値を読み書きできるプロパティラッパータイプ」とのことです。 正直、上記ページを読んでも…