採択
2023/09/02 17:30〜
Track B
ルーキーズLT(5分)

手抜き3D音響レシピ

oinariman 三原亮介

iOSのオーディオ関連APIを本格的に触るのはしんどいですが、そのしんどさをラップしてくれるフレームワークもいくつか用意されています。2Dゲーム開発用のSpriteKitもその一つで、これを使えば非ゲームなアプリにも簡単に空間を感じる効果音を追加することができます。ゲームエンジン界ではやや日陰な存在のSpriteKitを使って手軽に3D音響をアプリに加える方法をコード例を交えて紹介します。

採択
ポスターセッション

新規アプリをリリースするまでに必要なものをまとめる 2023

_kwzr_ ああうえ

新しいアプリを作るのってワクワクしますよね。
しかし、使ってもらいたいメインの機能だけを作ったらリリースできるわけではないのがつらいところ。

App Storeの概要やスクショを埋めるのはもちろん、
リリースしているバージョンに致命的な不具合が生じたときのための強制アップデート機能、
使っているライブラリのライセンス表示、
ログイン機能があればアカウント削除機能、
ユーザー生成コンテンツを表示している場合に報告・ブロック機能、
広告を表示する場合のATT、
GDPRや改正電気通信事業法のための対応など...
めちゃくちゃいっぱいありそうです。
軽く絶望しそうですが、新しくアプリを作っている方に絶望してもらいたいわけではなく...

やらなきゃいけないこと、やらなくても良いがメリデメあるものなどに分類して、
必要なものが抜けていないか確認したり、工数を考える助けになれば嬉しいです!

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

GraphQLでのエラーハンドリング

iganin_dev 伊賀 裕展

RESTと同様にGraphQLでもエラーは扱います。
それでは、そのエラーをどのように定義し、ハンドリングするのが良いのでしょうか。

GraphQLではerrorsキーにエラーの詳細を載せることもできます。
しかしながら、この方法ではGraphQLで活用できる型情報が失われてしまいます。
他に方法はないのでしょうか。

本トークではGraphQLでのエラー定義の方法とその活用方法を探っていきます。

以下の内容を予定しています。

  • GraphQLのエラー定義の選択肢
  • エラー定義で型を活用する
  • クライアントでエラー情報をハンドリングする
レギュラートーク(20分)

別に,Swift Package Managerを直してしまっても構わんのだろう?

k_koheyi k-kohey

みなさんは森の中で大きな変質者に追われたらどうしますか?
私はSwift Package Manager(以降,SPM)を回直します(??)

SPMはAppleが提供するOSSであり,SPMを利用することにより依存の管理を簡単に行うことができます.
XcodeがSPMをサポートした事によって,私達iOSエンジニアからもよく利用されるようになりました.

しかし,普段よく利用するからこそイマイチな点も見つかるかもしれません.
そんな時はコントリビュートのチャンスです.

このセッションでは,駆け出しエンジニアがビビりながらSPMにPRを送った経験を基に,コントリビュートにどのようなプロセスが必要だったのかを説明します.
例えばissueの見つけ方,デバッグ方法,PRの出し方,ユニットテスト等です.

最終的に,この発表を聞くとコントリビュートに対する心理的ハードルを下げることができます.

5
LT(5分)

WKWebViewに実験的Web APIを独自実装しよう - Web MIDI API編

ooba 大庭 慎一郎

Webブラウザのために仕様策定はされていても、プライバシー上の懸念を理由としてSafariには実装されていないAPIはたくさんあります。Web Bluetooth API、Web NFC API、WebHID API、Web Serial APIなどなど。その中にはWebからMIDI機器を制御するWeb MIDI APIも含まれます。

当然WKWebViewにも実装されていませんので、自作Webブラウザでも使えません。しかし、WebKitフレームワークによって独自にそれらのAPIを実装し、アプリとしてApp Storeに出すことはできます。

本トークでは、Scratch用Webブラウザ「Scrub」にWeb MIDI APIを独自実装した経験から、JavaScriptのAPIを追加する方法、ネイティブ側フレームワークとの繋ぎこみのコツ、参考となる仕様や実装の探し方などをお話しします。

5
採択
2023/09/02 13:55〜
Track A
レギュラートーク(20分)

macOSで自分のカメラを作ってみよう - Core Media IO Extension

shmdevelop 服部 智

ITエンジニアならば仮想カメラを自作したいですよね?

2022年に、旧来のDAL(Device Abstraction Layer)プラグインに代わるものとしてCore Media IO Extensionを使った実装方法が用意されました。
旧方式はセキュリティ上の懸念から非推奨になっています。

このセッションではシンプルな実装から始まり、コントロールアプリと連動させる方法、カメラ映像を使う方法、それにオーバーレイ画像を合成する方法まで解説します。
機能拡張として音声認識入力機能も追加してみます。

このセッションを通してmacOSの仮想カメラの概要と実装について一通り理解できるようになります。

Zoomや各種アプリで自作仮想カメラを使ってみませんか!

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

SwiftUIとMetal Shaderで、ビジュアルエフェクトのパワーアップを実現する

ojun_9 ojun

WWDC23で発表された、SwiftUIに対するMetal Shaderの適用法に焦点を当てます。

本トークではまず、シェーダーを作成するための基礎知識として三角関数の役割を解説します。
その上で、これらの要素をSwiftUIと結び付け、リッチなビジュアルエフェクトを効率よく実現する方法を具体的に解説します。

Metal ShaderをSwiftUIと組み合わせることで、高度な視覚効果を手軽に実現できますが、応用させるには三角関数を理解する必要があります。
このトークを通じて、Metal Shaderの基本的な使用法と、それを活用したSwiftUIのビジュアル表現の豊かさの理解を深めることができます。

このトークは、SwiftUIにおいて更に視覚的な表現を豊かにする方法を探している方を対象としています。
皆さんのアプリのユーザ体験がより向上する手助けとなれば幸いです!

2
採択
パンフ記事(4ページ)

Vision Proに備える!ARKitを使ってARアプリを構築してみよう

k_koheyi k-kohey

ARKitは拡張現実の体験を作るためのFrameworkです.
ARKitは普段の業務で使う機会が少なく,学ぶことが退屈に感じるかもしれません.

しかし,ARKitは今後より身近で重要な存在になるかもしれません.
WWDC23においてVision Proと呼ばれる新しいデバイスが登場しました.
このデバイスはARデバイスの側面を持っており,そのデバイスが実行するアプリが実世界を認識しインタラクトできる事は非常に重要です.

そして,そのような体験を生み出すために必要となるのがARKitです.
もし,Vision Proで動作するアプリの開発を行う際にはARKitの知識や経験が活きてきます.

iOS上で動作するARアプリの開発について学びVision Proに備えましょう.
この原稿ではカメラを通して認識した世界に3Dオブジェクトを登場させ,インタラクトするアプリの作り方を説明します.

6
ルーキーズLT(5分)

複数のバックエンドサービスに依存しているアプリが API gateway を採用するまでの道のり

ksCap_0114 Sato Ken

プロジェクトの要求事項や自社サービスの特性から、複数のバックエンドサービスに依存した仕様設計となっているアプリケーションは決して少なくない事例かと思います。
弊社サービスの一つでもあるマネーフォワードクラウド確定申告アプリもその一つに該当します。アプリ内で提供している確定申告機能や会計機能、消費税申告機能に関するリソースは、社内施策のマイクロサービス化によりサービスごと独立した管理となっているため、クライアント側は複数バックエンドサービスを考慮した設計を行う必要がありました。
このLTでは、クライアント側で複数のバックエンドサービスを受け持つことで発生したつらみと、そこから打開策を切り開くまでの苦悩の道程を体験談からご紹介します。

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

大人だって Screen Time API で時間管理したい!

_bannzai_ bannzai

WWDC21で発表されたScreen Time APIの解放は、多くのデベロッパーが期待したのでは無いでしょうか。しかし、利用にFamily Controlsの承認が必要で子供のアプリ使用を親が管理するためのものでした。時間管理したいデベロッパーは残念に思ったでしょう。実は1年後のWWDC22からFamily Controlsを通した承認に「自分自身」が承認できるようになり、「親」のような他者からの承認を必要とせずにScreen Time APIを利用することができ、これで大人でも時間管理ができるようになりました✌️

このトークではScreen Time APIを利用したアプリの開発からリリースまで通じて遭遇した出来事についてお話しします。具体的にはアプリの申請時から注意すべきこと、新しいAPIに対するレビュアーの反応、さらに具体的なコードを用いてどのように動くかを紹介していきます。

6
採択
2023/09/03 17:10〜
Track A
LT(5分)

iPhoneのセンサー情報をmacOSアプリでリアルタイム活用するための技術

tanakasan2525 たなたつ

iPhoneには様々なセンサーや優秀なカメラが搭載されています。
それらで取得したデータをリアルタイムにmacOSアプリに送ることで、macOSアプリでも様々なセンサーデータが利用できます。

私が開発しているmacOSでVTuberのようになれるアプリで実装している、
Network frameworkを活用した接続設定が容易なユーザーフレンドリー通信、
そしてCodableに比べて300倍以上高速だったデータエンコードの方法などを紹介します。

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

アプリをもっと魅力的に!Metal ShaderでUIの表現力を広げよう!

tanakasan2525 たなたつ

アプリのUIがちょっと物足りない...そんな時、Metal Shaderはあなたのアプリの表現力を広げるための一つの選択肢になります。

シェーダーと聞くと難しい印象があるかもしれませんが、
基本を押さえれば、再生中のオーディオデータの可視化やコンテンツに没入感を与える演出などを表現できるようになります。

このトークではMetal Shaderの理解に必要な知識を共有しつつ、具体的な用例や実装を紹介します。また、コードのメンテナンス性やパフォーマンス面についても注意点をお話します。

見ているだけで楽しい、そんなUIをMetal Shaderで作ってみましょう。

4
LT(5分)

Xcodeの便利ショートカットを使いこなしてSDGsに貢献する

tsuzuki817 Ryo Tsuzukihashi

日々の開発の中でショートカットキーは使いこなしていますでしょうか?
一人一人の開発者が便利なショートカットキーを使いこなすことで、開発時間の短縮、使用電気量の削減、そして何よりあなた自身の時間をより生産的なことに有効活用することができるようになります。

このトークでは実際に現場で使えるショートカット・ツールをユースケースを用いて解説・実践します!

一緒に持続可能な開発体験を構築していきいましょう!

2
採択
2023/09/01 19:20〜
Track A
レギュラートーク(20分)

Swizzling Swizzling Swizzling

r_plus taiki komaba

プロプライエタリサードパーティSDKの挙動をカスタムしたい!でもそのためのインターフェースがない!しかし変更したい!
フィーチャーリクエストを送るが返信は返ってこない、しかし変更したい!

そんなあなたが手を出すであろうMethod Swizzlingについて
このトークでは基本から調査方法、高難度となるSwiftや最近のObjective-C機能についてお話します。

  • Swizzlingの基本
  • 最近のObjective-C (objc_direct)
  • C function
  • Swift method
レギュラートーク(20分)

天候を活かせ!WeatherKitを使いこなしてアプリに天候情報を活用する

tsuzuki817 Ryo Tsuzukihashi

WeatherKitを使用することで、開発者は簡単に最新の天気データを取得し活用することができます!
天気アプリにはもちろんのこと、それ以外カテゴリのアプリでも天候情報は有効活用することができます。
実際にどのようにWeatherKitを使いアプリに組み込んでいくのか実際のデモを交えて説明します。

参加者がWeatherKitを活用して魅力的で実用的なアプリを開発するための知識とアイデアを提供します!
ぜひご参加いただき、ユーザーにとって役立つアプリを作り上げましょう!

トーク内容

  • WeatherKitの概要
  • 実際の使い方
  • 注意事項
  • etc
LT(5分)

大量のアプリをお世話するHOW TO

Reimim03 Matsumoto Reimi

26個のOEMアプリをお世話することになったエンジニアが、そのHOW TOを2種類の方法を説明・比較しながらご紹介します。
どのように実装・管理すれば同じコードから異なるアプリに切り替えてビルドができるのか、
面倒なところや難しい点はどういうところなのか...大量のアプリをお世話することになりそうなエンジニアに聞いてほしいLTです!

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

XcodeのLLDBデバッガーの便利な使い方を覚えて開発効率を向上させよう!

こちらのトークではXcodeのLLDBデバッガーの便利な使い方を紹介します。
LLDBとは、Xcodeに標準搭載されているデバッガーです。
LLDBを使いこなすことによって、デバックを効率よく行うことができ、開発スピードの向上が見込めます。
p, po, vコマンドなどの基本的なコマンドの解説のほか、再ビルドせずに変数をLLDBで書き換える方法などを紹介します。
こちらのトークが皆様のLLDBデバッガーについての理解の助けになれば幸いです。

3
LT(5分)

Effective The Composable Architecture

yimajo 今城 善矩

このトークはThe Composable Architecture (TCA) を効果的に使うためのトークです。

TCAが発表されて3年間。私はプロジェクトで利用したり、人にアドバイスをする仕事をいくつもしてきました。

TCAは関数型プログラミングをベースとしたiOSアプリ開発を実現してくれるフレームワークではありますが、それはある種の問題を解決するためで、高尚な概念を理解しないと使えないようなフレームワークではありません。

我々iOSアプリ開発者がアプリをリリースをしないといけない限られた時間の中で、どのような手法がより効果的で、何を妥協すべきではないのかについて話せればと思います。

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

実践 SwiftUIレイアウト設計パターン

_rockname 岩名勇輝

SwiftUIは宣言的にUIを組むことができるフレームワークです。その柔軟な設計思想によって、一つのレイアウトを取ってみても実装方法は数パターン存在します。
例えば、Viewにおける余白の表現においては、VStack/HStackのspacingを用いる方法や、paddingのModifierを用いる方法などが存在します。
しかし、一見期待するレイアウトになっていても、変更に弱いレイアウトとなってしまったり、パフォーマンス上問題となる場合などがあります。そのため、状況に応じて適切な実装パターンを見極める必要があります。
そこで本トークでは、さまざまなレイアウトにおいてSwiftUIによるベストなUIの組み方について体系的にお話しします。本トークを通して、聴講者の皆さまがSwiftUIでViewを実装する際に迷いなく適切な実装方法を選択できるようになることを目指します。

4
ルーキーズLT(5分)

iOSアプリにFirebaseのOpenID Connectを使った認証機能を組み込む

アプリ開発において、ユーザーの認証機能は非常に重要です。安全かつ堅牢に認証基盤を作ることが必要とされます。

このトークではiOSアプリにFirebaseのOpenID Connect(OIDC)を活用した認証機能を組み込む方法についてご紹介します。
実際の大規模iOSアプリ開発プロジェクトで、OIDCを使用したユーザー認証機能の開発に取り組んで得られた経験や知見を共有します。
具体的なコード例や設計上の考慮事項も取り上げ、実践的な知識の共有ができるようにしたいと思います。

3