身の回りにはさまざまな形式のデータが存在し、読みとるためのAPIが提供されています。
例えば、AVFoundationを使えば、QRコードを読みとれます。CoreNFCであれば、iPhoneでNFCタグとデータをやり取りできます。
データ形式がJSONなら、Codableを使って簡単に変換できます。
しかし、APIが用意されないデータの読み取りは自分で実装する必要があります。
データ形式や通信方式は特定の機関が標準化しており、電子証明書に利用されるASN.1はその一例です。
標準化されているからといって、標準のAPIが提供されるとは限りません。
このトークでは、まず馴染みあるデータの読みとり方を整理します。
次に、ASN.1を例に、Parserの基本原理、仕様の調べ方を解説し、実際に実装してみます。
標準仕様の読み解き方とその実装方法を知ることで、処理できるデータの幅を広げましょう。
iOS 14からSwiftUIに App
が追加され、Full SwiftUIでのアプリ開発が可能になりました。が、UIKitでつくりこまれたUIを移行するのは容易ではなく、移行例はあまり多くないのではないでしょうか。
そんな状況で、私は2021年末に個人開発のノートアプリ「Pieces of Paper」をFull SwiftUIに移行しました。本トークでは実際に移行を行った際に経験した様々な問題を中心に話したいと思います。
@ObservedObject
の意図しない初期化によるバグiOSのアプリ開発では、意識してコードを書いていないと、予想外のタイミングで不要なイベントが実行されてバグが起きてしまうことがよくあります。
無秩序な非同期処理もそうですが、特にUI周りはプログラマがコントロールしきれるものでなく、予想外に起きるイベントを完全に無くすことはできません。
アプリを安全・確実に動作させるためには、そのような不安定な外部要因に依存せず、アプリの状態を構築する事が必要です。
このトークでは、確実な動作をするアプリを作るにはどうすれば良いかを、以下のような内容でお話しする予定です。
・iOSのUIの問題点
・画面遷移の方法について
・UIに依存せずにアプリの状態を持つ
・「機能」と「生存期間の管理」を分けてオブジェクトツリーを構築する
・循環参照を起こさない構造にする
・非同期関数を隠蔽する