SwiftUI

音声・動画

SwiftUI | Picture in Picture (PiP)の実装方法

SwiftUIでのPicture in Picture (PiP)の実装方法を説明する。◾結論 以下の具体例の手順で実装する。
音声・動画

SwiftUI | 動画ファイルを再生する方法

SwiftUIで動画ファイルを再生する方法を説明する。◾結論 1. 動画ファイルのURLを取得する。動画ファイルのURLの取得方法は、動画ファイルがApp同梱のものか、ユーザーが保存したものか、Web上のものかで異なる。 2. 1を引数にAVPlayerのインスタンスを生成する。 3. 2を引数にVideoPlayerという動画用ビューを配置する。
SwiftUI

SwiftUI | weak selfの効果を実験で理解する

SwiftUIのweak selfの効果を実験で理解した結果を説明する。◾結論 weak selfを使わないと強い参照となり、生成した全てのインスタンスが全て実行されるまでそのインスタンスがメモリに占有され続けるが、全てを実行してくれる。weak selfを使うことで弱い参照となり、クラスのインスタンスを新しく生成するごとに前に生成したクラスのインスタンスが消えてメモリが開放される。どちらを使うかはそれぞれの特徴をわかった上で決めれば良い。
関数

SwiftUI | DispatchQueue main/global() sync/asyncの違いを実験で理解する

SwiftUIのDispatchQueue main/global() sync/asyncの違いを実験で理解した結果を説明する。◾結論 以下8パターンの実験を行った。 メインスレッドからDispatchQueue.main.sync メインスレッドからDispatchQueue.main.async メインスレッドからDispatchQueue.global().sync ★1 メインスレッドからDispatchQueue.global().async 外部スレッドからDispatchQueue.main.sync ★2 外部スレッドからDispatchQueue.main.async ★2 外部スレッドからDispatchQueue.global().sync 外部スレッドからDispatchQueue.global().async ★1 実験から★1,★2は以下の特徴があることがわかった。 ★1 並列処理ができるため処理を高速化できる。 ★2 メインスレッドに処理を渡すことができる。
変数

SwiftUI | はてなマーク2つの意味

SwiftUIのはてなマーク2つの意味を説明する。◾結論 nilガード的な意図で使われる。例えば let 変数1 = 変数2 ?? 値1 というコードなら、変数2の値がnilではない場合は、変数2の値が変数1に代入される。変数2の値がnilの場合は、値1が変数1に代入される。
SwiftUI

SwiftUI | weakの意味と目的

SwiftUIのweakの意味と目的を説明する。◾結論 weakを付けて定義した変数は弱参照する変数になり、そのことで循環参照を防止できる。
SwiftUI

SwiftUI | sink(receiveValue: )

SwiftUIのsink(receiveValue: )について説明する。◾結論 発信者から発信された値をsink(receiveValue: )で順次受け取ることができる。
SwiftUI

SwiftUI | compactMap

SwiftUIのcompactMapについて説明する。◾結論 compactMapは配列からnilを削除する。
変数

SwiftUI | AnyCancellable, objectWillChange.sink/sendの使用目的

SwiftUIのAnyCancellable, objectWillChange.sink/sendの使用目的を説明する。◾結論 使用目的を一言でいうと、Viewを更新することである。Model-View-ViewModelの構造においてAnyCancellable, objectWillChange.sink/sendをViewModelに記述する。 Modelのオブジェクト.objectWillChange.sinkでModelの変化を監視する。 self.objectWillChange.sendでViewModel自身が変化したことをViewに伝える。 このことによりViewが更新される。
SwiftUI

SwiftUI | classにfinalを付けるメリット

SwiftUIのclassにfinalを付けるメリットを説明する。◾結論 クラスを設計するときに継承の結果について考えなくていい。
タイトルとURLをコピーしました