レギュラートーク(40分)

coremltools完全マスター 〜Core MLモデル変換の全技術〜

shu223 堤 修一

PyTorchやTensorFlowで学習したモデルをCore MLモデルに変換する際にはcoremltoolsを利用します。ドキュメントもありその変換手順は一見シンプルですが、しかし、実際のところまず一発ではうまくいかないでしょう。多くの場合はモデルの一部を切ったり置き換えたりといった「手術」が必要となります。

本トークでは、そういったCore MLモデル変換に必要な技術や知識について、よく知られたモデルを題材に実践を通して解説していきます。その中で、「Neural Engineの気持ち」を理解してiOS/macOSデバイスの実力を最大限引き出すコツや、モデルサイズを圧縮する方法等も紹介します。

モデル変換の技術をマスターし、最新のモデルをいち早くiOSで動かして新しいユーザー体験をつくっていきましょう。

6
LT(5分)

SpriteKit で雨のエフェクトを作り、SwiftUI で表示してみる!

xiii11100 Aoi Takahashi

SpriteKit では Particle を簡単に作成することができます。
Particle を用いると、雨や雪、煙が出るリアルな炎など、アプリに特殊な効果を追加でき、リッチな UI を実現できます。

本発表では、SpriteKit Particle File に存在する Rain テンプレートを活用して、雨のエフェクトを作る手順を紹介します。
作成したエフェクトは SwiftUI の SpriteView を用いて表示できるため、リッチな UI を短時間で作成できることを実感できます。

レギュラートーク(20分)

iOS17で音声はどのように変わっていくのか?

entaku_0818 entaku

このセッションでは、今までのiOSでの音声技術とiOS17がもたらす最新の音声技術の導入についてお話しします。
iOS17ではAVAudioEngineのVoice処理や AirPlay / AirPodsなど多くの音声関連のアップデートがありました。
今までとこれからの音声技術を通じて今後の音声技術について話していきたいと思います。

トピック
1.今までのiOSの音声技術

  • AVAudioEngineやAVAudioPlayer/AVAudioRecorderの話
    2.iOS17で導入される新しい音声技術
    • SharePlay
    • AVAudioEngine
    • AirPlay / AirPods
      3.新技術の導入によってどのように変わるのか?
5
レギュラートーク(20分)

UIHostingViewを活用して実現するUIKitとSwiftUIの融合

tmyk110 伊藤智行

SwiftUIをUIKitで作成された複雑な画面にも活用してみませんか?

私の経験から、Storyboardを使用した画面はメンテナンス性や再利用性に課題を抱えています。しかし、SwiftUIで独立性の高いコンポーネントを作成することで、これらの問題を解決することができます。

UIHostingViewを使えば、UIKitの既存の画面においても、SwiftUIのコンポーネントをシームレスに組み込むことができます。これにより、従来のコードを一から書き直すことなく、新しいユーザインターフェースを実装することも可能です。

このセッションでは、具体的なコード例や実際のプロジェクトでの活用事例を共有します。参加者の皆さんが自身の開発において新たな可能性を見つける手助けをしたいと思っています。

5
ルーキーズLT(5分)

インターネットにあるマクロ(できる限り)全部見る!

Kotarong1 Kotaro Suto

Swiftの新機能、マクロが発表されてからたくさんの方がさまざまな使い方を紹介しています。このLTではAppleが公式に紹介しているものを中心にインターネット上で見つかる様々なマクロを紹介、共有し、Swiftでのマクロの可能性を探ります。

話すこと

  • 個々のマクロの機能紹介

話さないこと

  • 個々のマクロの実装の詳細
  • マクロの実装方法

Swiftのマクロはまだまだ開発途中であり、今後も機能が拡張されることが期待されます。参加者の皆さんも、自分なりのマクロを開発してみてはいかがでしょうか。

1
レギュラートーク(20分)

OpenAI vs Apple - iOSにおける音声認識を極める

shu223 堤 修一

近年、GPTをはじめとするLLMによってAIとのテキストコミュニケーションが爆発的に進化しました。我々が日常的に使う「音声」とテキストの橋渡しを担う重要技術が音声認識です。

iOSにおける音声認識は長らく進化が止まったままでしたが、iOS 17になり、カスタム言語モデルがサポートされ、一気に実用性が増しました。一方で、OpenAIによるWhisperもCore ML対応版が出ており、サードパーティーながら標準フレームワークより魅力な点も多くあります。

本トークでは、音声認識のしくみを理解し、カスタム言語モデルを作成して特定の分野や用途に沿って性能を改善する方法について学びます。またサードパーティー製エンジンとも比較し、ユースケースに合わせて最適な技術選定が行えるようになるでしょう。百見は一聞にしかず、デモも行います。

4
レギュラートーク(20分)

近年のプライバシーアップデートの概要と対策

akatsuki174 akatsuki174

近年のWWDCを見ていると、プライバシーに関するアップデートが多くなっています。今年のWWDCでも例えばプライバシーマニフェストが新登場するなど、その流れは止まりません。毎年アップデートがあるとキャッチアップも大変ですよね。とはいえキャッチアップを怠っているとアプリのリジェクトリスクにも繋がってきます。

そこで、このトークでは以下の内容をカバーします。

  • 近年のプライバシー関連のアップデート
    • 概要、影響範囲
    • 実装方法
    • 関連する審査ガイドライン

これからiOSアプリ開発をする人、プライバシーに関する最新情報をキャッチアップしたい人にぜひ聞いてほしいです。
※WWDC23の内容については公開情報以上のことは話しません。

LT(5分)

個人開発アプリの特許を出願する

takoikatakotako かびごん小野

「すごいアプリのアイディア思いついた!!作って儲けるぞ!!」と思ったことありませんか?
その後すぐに「大企業が似たアプリを作ったら一瞬で駆逐されるな。。。」と思ったこともありませんか?

アプリのアイディアを保護するためには特許権を取得することが有効です。
本トークでは個人開発で一発当てることを夢見るサラリーマンの私が特許出願までの手順や費用や注意事項、特許出願状況についてお話しします。
現在の出願状況は審査待ち、Waiting for Review です。

8
LT(5分)

iPhone 1台ではじめるフォトグラメトリ

shu223 堤 修一

フォトグラメトリは写真から3Dモデルを生成する技術です。町並みの3Dモデル化や、物体の3Dモデル化等に利用されます。消えゆくものを三次元データとして保存できることから、文化財の記録や考古学分野でも活躍しています。今やLiDAR搭載iPhoneも登場し、スマホ1台でフォトグラメトリが楽しめる時代になっています。個人的には、「空間の記念撮影」として泊まったホテルや住んでいたアパートの部屋を撮っておいたりしています。

本LTでは、iOS/iPhoneを用いたフォトグラメトリの手法やAPIについて解説し、デモを行います。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。

3
レギュラートーク(40分)

Depth in Depth 2023 - iOS/visionOS デプス詳解

shu223 堤 修一

最初期は「写真をボケさせる」ユースケースしか認知されていなかったiOSデプスですが、今やLiDAR搭載デバイスも登場し、部屋のスキャンや物体の3Dキャプチャー、ARのオクルージョン、そしてvisionOSのSpatial Computingにおいてもデプスが重要な役割を担っています。

本トークではデプスの基礎から始めて、Cinematic ModeやRoomPlan、Object Captureといった最新のAPIも含めてiOS/visionOSにおけるデプスについて体系的・網羅的に解説します。デモアプリの実装を通して実践的なデプスの取り扱いも解説します。

我々は長く2Dスクリーンの中でアプリを作ってきましたが、生きているこの世界は3次元です。今こそデプスをマスターし、2Dスクリーンの世界から飛び出して「奥行き」が存在する世界で新しいユーザー体験をつくっていきましょう。

6
レギュラートーク(20分)

iOSデプスの基礎と応用 - そしてvisionOSへ

shu223 堤 修一

iOSDC 2018でデプスについて解説して早5年。今やLiDAR搭載デバイスも登場し、APIも当時より遥かに充実しています。

本トークではデプスの基礎から始めて、デモアプリの実装を通して実践的なデプスの取り扱いについて学びます。最終的にはCinematic ModeやRoom Olan、Object Capture、ARKitのオクルージョン、そしてvisionOSのSpatial Computingといった最新のデプス応用についても理解が深まるでしょう。

我々は長く2Dスクリーンの中でアプリを作ってきましたが、生きているこの世界は3次元です。今こそデプスをマスターし、2Dスクリーンの世界から飛び出して「奥行き」が存在する世界で新しいユーザー体験をつくっていきましょう。

4
LT(5分)

「Markdownエディタの入力補助とか正規表現で余裕っしょ」と思っていたら爆発四散

FromAtom FromAtom

「Markdownエディタを作りたい。」

そう思った私は、Markdown記法を簡単に入力できるボタンを"正規表現を用いて"作り始めました。
まずは見出しボタン、これは行頭の # の数を見れば良いので簡単に実装できました。
そして太字ボタンや斜体ボタンの対応を始めた時に、詰みました。

**たとえば
複数行にまたがる
太字記法とか**

`コードスパン内なので**これは太字ではない**とか`

**`でもこれはコードスパン全体が太字になってるとか`**

こういった複雑な記法に正規表現だけで立ち向かうのは無謀でした。

このLTでは、課題への対処方法の1つである "apple/swift-markdown", "SourceLocation" の扱い方についてお話します。このLTで、多くの人がMarkdownエディタ開発への一歩を踏み出せるようになるでしょう。

LT(5分)

画像から色を抽出するライブラリを作成してみた

Shibuya Taichi

音楽アプリ制作で、ジャケ写から色を抽出して背景色に適応する実装をしていました。
ライブラリを探してみたものの、抽出速度が遅い、精度が悪いなど使い勝手が悪かったので、自分で作ってみました。
色抽出の方法・抽出時の注意点、パフォーマンス等をご紹介致します。

1
レギュラートーク(20分)

iOS17のWidgetで実現できることの限界を探る

tsuboyan

このトークは、WWDC'23にて新たに発表されたiOS「17」のWidgetにフォーカスしたものになります。

今回、インタラクティブ性の強化がアナウンスされたウィジェットですが、私たちは何がどこまで可能になったのでしょうか。そんな疑問を探るため、我々はアマゾンの奥地に... (中略) ...新しいWidgetKit APIの機能と制限について、実際に触りながら検証していきます。

▼ アウトライン (検討中)

  • 簡単にこれまでのWidgetKitの歩み
  • 新たにWidgetKitに追加されたAPIについて
  • 新たにできるようになったこと / できないこと
  • iOS / iPadOS / watchOS / visionOS ごとの活用方法
  • デモ
  • 今後の展望について
2
レギュラートーク(20分)

Javaに学ぶSwift Macroのやりすぎない使い方

RyuNen344 RyuNen344

Swift MacroはSwiftUIで既に使用されていますが、今後サードパーティのMacroを使用する機会が増えるでしょう。
Macroは構造体やクラスを手軽に拡張することができ、JavaやKotlinのAnnotation Processorを連想させます。
Javaでの開発においてAnnotation Processorは既に必須機能の一つとなっていますが、多用することで度々Annotation Hellと揶揄されることもあります。
Swift Macroが今後さらに普及される際にMacro Hellと揶揄されない適切な量の使い方をJava、KotlinのAnnotation Processorを先例としてお伝えします。

  • Annotation Processorとの類似点
  • Annotation Hellに陥った例
  • 今後期待される粒度の使い方
5
ルーキーズLT(5分)

10万件を超えるマスターデータをアプリで高速に扱うために工夫したこと

saikei718 Keisuke Saito

みなさんはアプリでの「マスターデータ」の扱いはどうしていますか?
私たちのアプリでは、駅・市区町村・町域など「合計10万レコード以上」のマスタデータを扱う必要がありました。
また、それらのデータは不定期に更新されるため「データのアップデート」にも対応しなければいけません。
この課題に対して、私たちは「マスターデータを事前投入したRealmファイルをバンドルする」という手法で対応しました!

ということで、このLTでは…

  • 何故Realmを選んだのか
  • マスターデータをどのように運用しているのか
  • ユーザー固有のRealm領域と、マスターデータ領域をどう分けているのか
  • Realm Studio(GUIツール)の活用したRealmファイルの操作

について紹介したいと思います。

※ このLTでは「リモートから取得・更新する方法」に関しては扱いません。

レギュラートーク(20分)

Printers to Payments, Hardware連携のあるある

monolithic_adam Adam Henry

本トークでは、STORESレジが対応しているハードウェアの紹介から、実装における課題とその解決法、運用時に起きる問題と対処方法まで、ハードウェア連携に必要な知識を解説します。

内容:

  • まず、STORESレジが対応している・どんな感じで使われているかを紹介
    • Printer, Barcode Scanner, 決済ターミナル, など
  • 実装を見てみましょう!
    • 安心してくださいConcurrency対応していますよ!
  • 運用・日々に問題が起きた時の動き

トークを聞いてくださった皆さんにHardwareを興味を持ってもらえればHappyです。

1
レギュラートーク(20分)

NavigationView -> NavigationStackのマイグレーション方法

monolithic_adam Adam Henry

もうNavigationViewの終わり見えているよね、、、
それを向けてみんなはどう向き合っていくべきかはまだ迷っている人いませんか?!

このトーク見ればもう迷わない・進む道はもう明確になる!
内容:

  • NavigationView -> NavigationStackの詰まるところ
    • NavigationViewで使えていたワークアラウンドが使えない?!
    • など
  • 一発対応・段階的な置き換えも可能!
  • Navigationの未来
3
レギュラートーク(20分)

Let's setup Xcode Cloud!

monolithic_adam Adam Henry

みんなCI/CD迷ってますか〜?

このトークで話題のXcode Cloud一緒にセットアップしてみましょう!
Live Codingで0からArchiveまでアプリのCI/CDをセットアップ!

証明書の手間・ファストレーンのスクリプトは不要!最高!
簡単なワークフローなら選択肢はもうひとつしかない!

1
LT(5分)

予期せぬ不具合を予想するには?不具合の心当たりを探ってみよう!

re___you えんどう

OSをアップデートしたら予期せずUIが壊れた経験はありませんか?
ZOZOTOWNでは去年TextKit2になったことでテキストの行末の余白が変わりレイアウトが崩れるという不具合に遭遇しました。
これはただの「不運」だと片付けることは容易ですが、実は不具合は予測可能でした。
例えば不安の残る実装やちょっと違和感を感じるけど却下するほどの根拠はないなどで「ヨシ!」とリリースしたことはありませんか?
全てではないですが、実装段階やレビュー段階で違和感に気づき解消することで、不具合に発展する前に防ぐことができます。違和感や問題の予兆を意識することで不具合が発生しても焦らず調査できます。
本セッションでは事例をもとに不具合につながる違和感のポイントを紹介します。
iOS 17リリース直前に実装の違和感や不具合の心当たりを思い出してみましょう!

1