LT(5分)

僕もMainActorにアイソレートされたい!

ojun_9 ojun

現代のiOS開発において、非同期処理やマルチスレッドの問題は避けて通れない課題です。
そんな中で登場したSwiftのActorは、これらの課題を解決してくれます。

しかし、Actorが何なのかをよく分からないまま利用することは多いのではないでしょうか?
本LTでは、Actorの基本的な仕組みと、実際にどのように動作しているかを解説します。
特にMainActorに焦点を当て、アクター境界の概念を掘り下げ、非同期処理をよりシンプルかつ効果的に管理する方法を学びます。

それではみなさん、アクター境界で会いましょう!

2
LT(5分)

Apple silicon徹底比較

66nylon_y Roku

Apple silicon搭載Macが登場してしばらく経ち、たとえ複雑なコードをビルドしたとしてもMacがとてつもなく熱くなる現象が久しくなりました。
それだけでなくビルド時間の現象や電池の持ちの改善など、日々我々に多大な恩恵を与え続けてくれています。

さて、皆さんはM1, M2, M3...と進化する中で、歴代のApple siliconの差分を追えていますでしょうか。
Mの後に続く数字がインクリメントされるだけで満足していないでしょうか。
(少なくとも私はそうでした)

このLTでは、歴代のApple Eventや公式の情報などを参考に、各世代のApple siliconの性能の進化を用語解説を交えつつ比較しながら5分にまとめて発表します。
さらに可能であれば、社内・社外の皆様に協力を仰ぎ、それぞれお持ちのMacでのビルド時間を計測してもらい、実際各Macでどのくらいビルド時間に差分が出るのかを検証してみたいと思います。

このLTを聴くことで、Apple siliconの恩恵により感謝し、効能を実感しながら日々のビルドを回せるようになることを祈っています。

1
LT(5分)

音声からリアルタイムで3Dコンテンツを生成する技術と visionOS への応用

AkkeyLab akkey

Apple Vision Pro の登場により、3Dコンテンツの活用領域が大きく広がりました。
また、 Apple も近年 AI 分野に力を入れていると言われており、3Dコンテンツに対して AI をどのように活用するかが非常に重要です。
このトークでは、 音声から3Dコンテンツをリアルタイムで生成する技術と、それを visionOS 上で描画・操作する技術についてご紹介します。

  • 音声から3Dコンテンツをリアルタイムに生成
    • 応答に時間がかかるという特性の対処方法
    • 大きくなりがちな通信容量問題の対処方法
  • visionOS 上での描画と操作
    • USDZ ファイルを RealityKit Framework を使って描画する方法
    • 3次元操作を複数ジェスチャーに対応する方法

visionOS 向けのアプリ開発に興味がある方はもちろん、3Dコンテンツ生成に AI を活用するノウハウを学びたい方にとっても貴重なトークとなることでしょう。

1
LT(5分)

いかにしてvisionOSで360° Street Viewを表示したか

shmdevelop 服部 智

Apple製のグラス型デバイスが登場するのを待ち望んでいた私は、「世界各地のストリートビューを360°で見たい!」という夢を持っていました。
そして、ついにApple Vision Pro実機を手に入れ、その夢をSwiftで実現することに挑戦しました。

しかし、最初の実装は失敗に終わりました。
一体何が足りなかったのでしょうか?
どのような調査が必要だったのでしょうか?

様々な試行錯誤を経て、ついに実装が成功しました。
その過程で明らかになった必要な実装とデータについて詳しく解説します。

さらに、実機での表示に成功したときの感動と感想を皆さんと共有します。
そして、当日は実機を使ったライブデモも行います。

このプレゼンテーションでは、調査と実践の物語を熱く解説し、具体的な技術的課題とその解決策について詳しくお話しします。
是非、この物語を聞いてください。

1
LT(5分)

SQLiteとSQLite.swiftを深掘りする

devkyousuke devkyousuke

iOS開発を進める中で、ローカルデータベースの実装が必要になったことはありませんか?

技術選定を行う際に、SQLiteが選択肢として浮かぶことは少なくないでしょう。
なぜSQLiteが選択肢として浮かぶのか、疑問に思ったことはありませんか? また、なぜSQLiteが選ばれるのでしょうか?
このセッションでは、SQLiteを用いた開発の利点と、SQLite.swiftを使ってローカルデータベースを構築した経験をもとにお話しします。

このトークでは、以下の内容について紹介します。

  • SQLiteを選定する基準
  • SQLite.swiftを活用する利点

このトークを通じて、皆様が同じような場面に遭遇した際の参考になれば幸いです。

採択
2024/08/24 17:05〜
Track A
LT(5分)

全力の跳躍を捉える計測アプリを作る

juginon Ogijun

Apple Vision Proの発表と同時に紹介された空間ビデオ機能。 iPhone 15 Proで撮影した動画を3Dで確認できるものですが、この仕組みはiPhoneに搭載された2つのカメラの距離差を利用して物体の距離感を計算し実現しています。

実は、この技術は陸上競技においても使われています。走幅跳などの長さの競技では、高精度なステレオカメラを用いて跳躍後に離れた場所から正確に距離を計測できるようになっています。
そして、昨年までのiOSDCでは走りがメインでしたが、僕は跳躍種目の方が得意です。

2眼のiPhoneを使えば、このシステムを模倣できるのではないか?実際にメジャーで計測するのと比べてどれくらい差が出るものなのか?
陸上競技歴17年の私が実際に体を張って検証した結果を動画で紹介しながら、全力疾走のスピード感はそのままに全力の跳躍と同じ迫力で紹介します。

LT(5分)

Apple Vision Proの現地購入レポート

nkjzm Nakaji Kohki

今年の2月にApple Vision Proがリリースされましたが、残念ながら日本での販売はありませんでした。しかし、VR元年の頃からApple製のHead Mounted Displayを心待ちにしていた私は、どうしても「いち早く手に入れたい!触りたい!!」という想いから、はるばる日本から現地へ飛び購入をしてきました。

このセッションでは、国外でガジェットを購入する際に必要となる様々な知見(具体的には決済方法、関税、技適マークなど)について、現地のリアルな体験を交えながらご紹介します。ぜひ皆さんが同じようなチャレンジをする際の参考にしていただければと思います。

LT(5分)

DJコントローラーでアプリを操作したい!!!!!

EXCode013 mori

最近、弊社ではDJ部が立ち上がりました。
ということで自分もDJコントローラーを購入したのですが、ふと思ったのです「これでアプリを操作してみたい」と

このLTではMIDIを単語しか知らないエンジニアがiOSアプリにどうやって信号を渡すか
実際にリストをターンテーブルで操作できるのか?入力だけじゃなくて出力もできるのか?
などCoreMIDIと格闘した末にゲームコントローラー以外でアプリを操作するのを実演したいと思います。

  • CoreMIDIについて
  • MIDIコントローラーの操作を受け取る方法について
  • MIDIコントローラーへの出力方法について
LT(5分)

これだけは伝えたい! Interactive Widget 開発の肝

monoqlo monoqlo

みなさんは日頃ウィジェットを活用していますか?

iOS 17ではウィジェット上にButtonやToggleの設置が可能となり、ついにユーザーとインタラクティブなやりとりができるウィジェットをつくれるようになりました。

一方で、ウィジェットには様々な制約があり、無理なものは無理と割り切った上で設計する必要があります。SwiftUIで通常のiOSアプリを開発するのと同じように書ける部分もあれば、そうではない部分もあるため、その違いを認識することは非常に重要です。

例えば、ユーザーのボタン押下後にネットワーク通信が必要な場合や、何度か画面遷移が必要な場合、あるいはiPad向けに広いスペースを使ったウィジェットをつくる場合… ウィジェット開発ではどんなことに気をつけた方が良いでしょうか。

このLTでは、英語学習アプリにインタラクティブなウィジェットを追加した際の経験をもとに、「これだけは押さえておきたい」というポイントをギュッと5分に詰め込んでお伝えします。

1
LT(5分)

なぜダークモード対応が必要なのか 〜モビリティアプリにおけるダークモード対応戦略〜

tsuboyan5 tsuboyan

ダークモード対応の意義は単に見た目のかっこよさにとどまりません。
特にモビリティアプリにおいて、ダークモードは安全性の向上にも寄与します。例えば夜間にルートナビを見せる状況で、周囲の暗さにあわせた表示方法があれば、目にかかる負担を極力減らし運転への集中を保つことにつなげられます。

Luupでは、このような安全性の観点からアプリのダークモード対応を実施しました。

このLTでは、以下について紹介します

  • なぜダークモード対応が必要なのかをHIGやいくつかのプロダクトの実例を交えて考察
  • 4年以上運用されている規模の大きなアプリでダークモード対応を進める上で出てきた課題やその解決策
3
採択
2024/08/24 16:00〜
Track A
LT(5分)

実践ジオフェンス : 効率的に開発するために

IIInaIII Naoki Ishii

ジオフェンスとは、特定の地理的エリアにデバイスが入ったり出たりしたことを検知できる仕組みです。

iOSでは、中心の緯度経度と半径を指定するだけで簡単にジオフェンスを設置できます。この機能はアプリを起動していなくても検知が可能で、アイデア次第で便利なサービスを提供できます。

しかし、iOS/Android両方開発してみると、各OSごとの挙動の違いがあったり、確認方法にも工夫が必要です。

今回のトークでは、ジオフェンス機能をiOS/Androidの両OS対応した際の経験をもとに、以下のポイントについて詳しくお話しします:

・ ジオフェンス機能の仕様の違い
・ デバッグの際の工夫とTips
・ 開発時に苦労したこと

LT(5分)

VRM×WebViewでリッチなAIアバターを表現する

oskmr_ Osaka Miseri

VRM(Virtual Reality Modeling)とは3Dキャラクターモデルを作成し、それをデジタル空間で使用するためのフォーマットです。
VRM形式のモデルは、さまざまなアプリケーションやゲームで広く利用されています。
恋するAIのアプリでは、WebViewを活用してVRMアバターの表情やモーションなどリッチな表現を実現しました。

本セッションではWebViewでVRMを利用してAIアバターアプリを実装するまでの以下の内容についてお話しします。

  • VRM×WebViewでモーションや表情の変化を実装する手法
  • WebViewでVRMを利用する際に直面した課題とその解決策
  • 恋するAIアプリでの実装例

このセッションを通じて、VRMを活用したアプリの開発手法を習得し、皆さんも3Dアバターを活用したアプリを開発してみましょう。

3
LT(5分)

人生最高の経験 WWDC2024初参加の学びと挑戦 〜現地参加して得られた価値〜

akkiee76 Akihiko Sato

WWDC2024に初めて現地参加し、iOSエンジニアとしてこれまでにない貴重な学びと経験を得ることができました。

このLTでは、参加に至るまでの準備とその過程で直面した困難について触れつつ、WWDC2024の現地参加で得られた新しい知識やインスピレーションについて詳しくお話しします。

まず、WWDC参加するための準備として、チケットの入手方法、渡航計画、宿泊施設の確保など、具体的なステップや注意点を含めて、特に初参加者が直面する不安に対して、WWDCを120%楽しめる実践的なアドバイスを紹介します。

次に、WWDC2024のセッションやワークショップで得られた最新技術や知識について紹介します。また、直接Appleのエンジニアと交流することで得られたインサイトや、iOSエンジニアたちとのネットワーキングの重要性についても触れます。

最後に、WWDC2024への参加がもたらした価値について、個人的な視点からお伝えします。高額な旅費を支払ってでも参加する価値があるのか、実際に体験したことを基にした率直な感想を共有します。参加することで得られる技術的な成長だけでなく、プロフェッショナルとしての成長や新たな視点を得ることの重要性についてもお伝えできればと考えております。

このLTを通じて、皆さんが「来年のWWDC2025に参加したい!」というモチベーションになることを願っています。

3
LT(5分)

小さい・・・!だがこれでいい!、AppleのOSSコントリビュート

Nao_RandD Nao-RandD / ナオランド

OSSのコントリビュートに対して、不安や敷居を不用意に大きくしていないだろうか?

「ましてや、AppleのOSSなんて仮にトライしてもメタメタにされる・・・」、と過剰に ざわざわ・・・ する必要はない。

実際にはオープンで新参者にも公正なスタンスのコミュニティが待っている。

驚くほど小さな修正でも価値がある。
先日、初めてAppleのOSSにコントリビュートした。
内容はselfキーワードが不要な部分を削除するだけ、それでも、レビューを貰いマージすることができた。

小さな修正であっても、どういった構成や方針を元に運用されているかを知るキッカケになり、非常に勉強になった。

具体的なステップとして、以下のポイントを取り上げていく。
・OSSプロジェクトの探し方
・PRを立てるまでの具体的な一例
・取り組んで得られたこと

コントリビュートはPRを送信するだけではない、質問に答えたりバグを報告することも含まれる。(Swift.orgのContributingより)

エンジニアであるなら、人生でOSSにコントリビュートしてみたい気持ちが少なからずあるのではないだろうか?
平凡な自分が踏み出した小さな一歩を共有して、誰か1人の一歩を踏み出すキッカケができたなら嬉しい限りである。

「だがこれでいい!」の精神で、OSSにコントリビュートしよう!

1
採択
2024/08/24 16:55〜
Track A
LT(5分)

iTunes・おぼえていますか 〜ScriptingBridge今昔物語〜

417_72ki 417.72KI

手塩にかけて育てたミュージックライブラリがぶっ壊れた経験はありますか?私はあります。

5年前、OSX Catalinaの登場時にiTunesが廃止され機能ごとにアプリが分かれました。
その後、新しいミュージックアプリでは様々な問題が起こりました。

  • アルバムアートワークが消えた
  • 読み仮名のコピーができない
  • ジャンルが勝手に書き換わる

(※全部筆者が経験したことです)

万単位にのぼる楽曲を1個1個精査して正しい状態に復旧するのは当然ながら非現実的です。
更にミュージックアプリの使い勝手の悪さも相まって泣き寝入りを余儀なくされました。

ですが、そこに救世主が現れました。そう、 ScriptingBridge です。
しかし ScriptingBridge はObjective-CがベースなのでSwiftで扱うには一工夫が必要です。

本セッションでは、macで他アプリケーションと連携するための仕組みである ScriptingBridge を使ってミュージックライブラリから楽曲情報を取得・編集する方法と、それによって壊れた楽曲情報を半自動で復旧した話をします。

LT(5分)

ローカルプッシュ通知で実現するスマートアラーム機能

_nkmrh nkmrh

iOS アプリにおいてユーザーエンゲージメントを向上させるためには、ローカルプッシュ通知の活用が重要です。
ローカルプッシュ通知は、デバイス上で直接スケジュールされるため、即座に実装でき、効果的に使用することで、ユーザー体験を大幅に向上させることができます。
このトークでは、具体的なスマートアラーム機能の実装方法と、その効果を高めるための戦略を紹介します。

トーク内容

  • ローカルプッシュ通知の基本概念と仕組みを理解する
  • スマートアラーム機能の概要
  • 具体的な実装方法
  • 効果を高めるための戦略
LT(5分)

「UIは英語なのにアプリ内リンクを開くと日本語サイトだ!」を防ぐコツ

FromAtom FromAtom

スマホアプリでは利用規約やプライバシーポリシーなど、静的URLを利用することがよくあります。
多言語対応をしないのであれば、URLをベタ書きしてしまえば良いのですが、言語によってURLを変更したい場合には翻訳機能を利用するでしょう。

しかし、翻訳の実装を間違えてしまうと英語設定のアプリで日本語ページのURLを開いてしまい、ユーザー体験を損ねてしまいます。
URLの指定ミスは見た目ではわかりにくく、クラッシュやエラーも発生しないため、問題に気づきにくいです。

このトークではString Catalogを利用して静的URLの翻訳を管理し、
さらにそれをUnitTestで検証することで、ユーザー体験を損ねないようにする方法についてお話します。

LT(5分)

SwiftUIにおけるTrailing Closureの効果的な使い方

hicka04 佐藤 光

SwiftにはTrailing Closureという強力な記法が存在しており、引数の最後のClosureを引数リストの外に展開して書くことができます。

SwiftUIでもTrailing Closureが積極的に利用されており、主に子のUI要素を構築する @ViewBuilder のClosureを最後に持ってくることで、UIの階層構造を表現しています。

一方でSwiftUIにおけるClosureは、タップなどのアクションを実行するためにも使われます。 @ViewBuilder なClosureがない場合、アクションのClosureを引数の最後に持っていきたくなってしまいますが、Trailing Closureは引数ラベルがないため、そのClosureがUIを構築しているのかアクションを実行しているのかはClosureの中身を読む必要があります。

本セッションでは私がおすすめするSwiftUIにおけるTrailing Closureの使い方についてご紹介します。誰もがわかりやすいSwiftUIのコンポーネントを作れるようになるために、まずは引数内のClosureの位置を意識してみるのはいかがでしょうか。

LT(5分)

Instruments入門

n3k0w3n nekowen

iOSアプリ開発において、ユーザーに快適な操作感を提供するためには、パフォーマンスの最適化は欠かせない要素です。
最適化を行うためにはボトルネックとなっている箇所を特定する必要がありますが、どのように調査するのが効率的でしょうか?

Instrumentsはアプリのパフォーマンスを可視化するための強力なプロファイラです。メソッドの実行時間やメモリの消費量といった基本的なパフォーマンス計測から、Swift ConcurrencyのTaskやActorのトレースなど、さまざまな機能別の計測が可能です。
Instrumentsで何ができるのか、どういった情報が得られるのかを知っておくことで、パフォーマンスチューニングが必要な箇所を迅速に発見し、全体像を把握しやすくなります。

本セッションでは、Instrumentsの基本的な使い方に加え、実際のパフォーマンスチューニング事例をご紹介します。
これからInstrumentsを使ってパフォーマンス計測を始める方や、既に使っているがさらに深く理解したい方の参考になれば幸いです。

3
採択
2024/08/24 16:50〜
Track A
LT(5分)

ライブ配信サービスのための自動字幕起こし機能の実装と課題解決

chuymaster チュイ

SFSpeechRecognizerは音声認識を利用して音声をテキストに変換することができます。
この技術を活用して、視聴者のデバイス上で完結する自動字幕起こし機能を実装しました。
本セッションでは、その過程で直面した課題とその解決方法について共有したいと思います。

紹介トピック

  • 自動字幕起こし機能の概要
  • SFSpeechRecognizerの実装方法とその制限
  • デバイス上で処理できる言語の条件