Open8
iOSDC2023参加メモ
TextKit 2 時代の iOS のキーボードとテキスト入力と表示のすべて by Yoshimasa Niwa | トーク | iOSDC Japan 2023 #iosdc - fortee.jp
- TextKit1 .... NSLayoutManagerを中心としたクラスで構成されるAPI
- 操作の最小単位は文字の要素であるグリフ
- 文字列の範囲とグリフの範囲が対応付けられない言語が存在するのでぶっ壊れることがある
- TextKit2 ... NSTextLayoutManagerを中心としたクラスで構成されるAPI
- 中でCoreTextを常に使われてる
- グリフは隠蔽されていて、最小操作単位は行(フラグメント)
- NSTextLineFragment > typographicBounds ... iOS16までバグがあった
- NSTextAttachmentViewProvider ... 任意のビューを簡単に文中に埋め込めるようにする
- 自動フォールバックがある
- SwiftUIでは使えない
ポスターセッション
- Abema は問題発生時に再生成するしかないAVPlayerをランダムにずらして遅延することでサーバー負荷を軽減してる
- https://kwzr.notion.site/2023-2de3a624fb3d4d20aebb866857ed8aa9?pvs=4
- https://light-popcorn-19c.notion.site/iOSDC-2023-iOS-861ea3ab20fa4e50b2cc0218665b4546
- https://youtu.be/asAjGwrAd88?si=vxg7bB_Em5eqvG0p
- LINEはCryptoKitで暗号化してUserDefaultsに入れている
併用して検証する移行期間があった - https://robust-ticket-b56.notion.site/iOS-bf5af23decf3491e99f6f42e3c273bc2?pvs=4
Mastering SwiftSyntax by kishikawa katsumi | トーク | iOSDC Japan 2023 #iosdc - fortee.jp
- SwiftPaser
.as(Type.self)
- Swift AST Explorer、SwiftSyntax公式に書かれている
- https://github.com/realm/SwiftLint/pull/5164
- https://github.com/realm/SwiftLint/issues/4837
- kishikawakatsumi/iosdc-2023-samples
- kishikawakatsumi/swift-power-assert: Power Assert in Swift.
- krzysztofzablocki/Swift-Macros: A curated list of awesome Swift Macros
問題
- Q. XCTAssert*を#assert()に置き換えるプログラムを書いてみよう
- パスポートにはVISとMRZがある
- OCRではMRZ(Machine Readable Zone)を読みとる
- MLKit vs Vision
- https://developers.google.com/ml-kit/migration/ios?hl=ja
- ICAO規格→Visionの認識結果を補正していく
- SAC, PACE, BAC
- Logical Data Structure
- AndyQ/NFCPassportReader: NFCPassportReader for iOS 13
UIのブラックボックスを探る by noppe | トーク | iOSDC Japan 2023 #iosdc - fortee.jp
- UIを分析する観点
- ビジュアル
- インタラクション
- カラーピッカー
- iOS SimulatorのSlow Animationsでアニメーションを確認できる
- lookin.work
- Reveal
- fridaでrevealやlookinを自分で使ってないアプリにインジェクトできる、iPhoneのroot権限が必要
- ktool, DyldExtractor sdk-builder
SwiftUI + KMM 開発で見えたそれぞれの長所と短所 by 林達也 | トーク | iOSDC Japan 2023 #iosdc - fortee.jp
- Reactorを使って、KMPで実装していた
- sealed class = enum
聴いて話すiOS:現実世界の「音」との連携 by たまねぎ | トーク | iOSDC Japan 2023 #iosdc - fortee.jp
- Siri, Shazam, ノイズ検知など
- 音声認識とトランスクリプト
- SFSpeechRecognizer, カスタム言語モデル(iOS17)
- AVSpeechSynthesizer, パーソナルボイス(iOS17)
- ShazamKit
- SoundAnalysis ... ANAudioStreamAnalyzer
空間オーディオを活用しよう! by なめき ちはる | トーク | iOSDC Japan 2023 #iosdc - fortee.jp
- 映画館でマルチチャンネルが1970年代4ch、その後5ch、1990年代に5.1ch
- .1の低音専用チャンネル、低音が聞き取りにくく、指向性が低いので専用チャンネルになった
- 6.1ch、7.1chと発展していったがたくさんのスピーカーを設置するのが大変
- → オブジェクトベースオーディオが登場した
- 3D-VBAP...スピーカー用のレンダリング
- ヘッドホンのステレオは頭内定位という現象が起こる
- 頭部伝達関数でシミュレートして左右の聞こえ方の違いを再現する
- 距離による減衰・遅延もシミュレーション
- オブジェクトオーディオの形式:Dolby Atmos, DTS:X, 360 Reality Audio
- Dolby Atmosは拡張領域にオブジェクトの情報を入れるので下位互換性もある
- DTS:Xは低圧縮でBluerayなど用
- 360 Reality Audioは上だけでなく下もできる、Sonyから出たもの
- 動画・音楽コンテンツ再生→AVPlayer、AVSampleBufferAudioRenderer、ブラウザのvideoタグ
- allowedAudioSpatializationFormatsというプロパティで空間化していいかどうかを指定できる
- AUScottyが2ch→5.1chにup mix、AUSpatialMixerで空間オーディオ化
- AUSpatialMixerはAppleによる実装でDolbyによる実装と異なり聞こえ方が変わる!
- バイノーラル録音を加工しないようにデフォルトではステレオ音源は加工されないようになっている
- HLSではいろんな全部許可しておいておくと、バイノーラルに関しては設定によらず空間化されなくなるのでいい
- ↑通信状態を加味して音が選ばれるので全てのチャンネルの音量は合わせておく
- AVAudioSessionで空間オーディオの切り替え通知をとることができる
- PHASE, RealityKit, SceneKitが空間オーディオを対応している