LT(5分)

iBeacon ( BLE ) を扱う前に知っておきたいテストTips

kuroruri くろるり

iBeaconと連携するアプリの機能実装は簡単そうに見えて、やってみたら意外と難しい、という経験がある人は何人かいらっしゃるでしょう。
そうiBeaconを使った機能の実装は意外と難しいのです。
開発環境ではきちんと動いたので安心していたのに、実際にビーコンを動作させる環境で動かしてみると期待通り動かない、なんてのはよくある話です。
そうなる原因は電波環境の違いという見えない罠が存在することです。
その罠に気がつくのが遅くなるほど、開発に致命的な影響が出て慌てふためくことでしょう。

本LTでは後から慌てる状況にならないため、iBeaconを扱う機能を実装し始めるよりも前に知っておきたいテストのTipsをお話します。

※iBeaconと言ってますがAndroid側でのBLE実装も視野に入れた一般的な話をする予定です

3
LT(5分)

忙しいあなたへ!!新しくなったFirebase Apple SDKで何が良くなったのか5分でサクッと紹介します!

oka_yuuji oka yuji

【概要】
Google I/O 2022にてFirebaseの新機能が発表されましたがその中でもiOSのSDKが正式にSwift対応となりFirebase Apple SDK 9.0.0となって発表されました。
今回は特にその中でもよく使用される認証機能のAuthenticationとデータ管理機能のFirestoreについて、何が良くなったのかサクッと5分でご紹介したいと思います。
【目次】(予定)
・Firebase Apple SDKの概要
・Authenticationは以前と比べて何が良くなったのか
 ・async/awaitに対応した実装例の紹介
・Firestoreは以前と比べて何が良くなったのか 
 ・async/awaitに対応した実装例の紹介
 ・Codableに対応した実装例の紹介(ベータ版でなくなった話)
・所感

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

Notionを活用したユーザー行動ログと自動生成

satoshin21 satoshin21

我々はプロダクトをより成長させるために、我々は常にユーザーの行動ログを元に検証し、仮説をたて次の改善に繋げています。
ですが、ユーザーの行動ログを実際に運用し始めるとログに関する仕様書が作成、更新されていなかったり、各職種とログに対する認識齟齬が発生したりと様々な問題が発生します。

我々はこれらを解決すべく、普段ドキュメントやタスクの管理で使っているNotionを活用しログ仕様書の作成とコードの自動生成を実装し運用しています。今回はその実現方法と得られた恩恵についてお話します。

  1. 行動ログ管理の課題
  2. なぜログのドキュメント管理にNotionを選んだのか?
  3. Notion Databaseの設計
  4. SwiftPMで作るCLI Tool
  5. Notion APIとStencil
  6. ドキュメントの更新と自動生成フロー
3
レギュラートーク(20分)

iOSではじめるWebAR 2022

ikkou HEAVEN chan / ikkou

iOSDC Japan 2019、2020と続けて発表している『iOSではじめるWebAR』の最新版です!

そんなに毎年目新しい発表はあるの?と思われる方がいるかもしれませんが、例えばひとつ大きなトピックを挙げるなら『iOS 15.4でWebXR Device APIに“限定的に”対応』しました!さてそれでどうなったのか?それからどうなったのか?

この1年間の関連するアップデートを振り返りつつ、SafariにおけるWebARの動向をお伝えします。
具体的には次のようなトピックスを想定しています。

  • iOS 15.4で限定的に対応したWebXR Device APIのその後
  • iOS 15で追加された実験的要素<model>の実態
  • iOSにおけるWebARコンテンツ開発の最新動向
  • iOSでも動くWebARを用いた最新事例
7
LT(5分)

RealityKitでMetalを書いてカスタムシェーダーをレンダリングしよう!

RealityKitはWWDC2019で発表されたARのレンダリングフレームワークです。年々機能も改善されています。
今回は、そのRealityKitでMetalを書いてカスタムシェーダーをレンダリングしてみようと思います。
カスタムシェーダーを書けるようになればRealityKitでできる表現の幅が広くなると思います。

サンプルとして顔認識を行い、顔の表面にカスタムシェーダーをかけるアプリをつくりました。
このアプリのソースコードを使いながらRealityKitとMetalの連携の仕方、カスタムシェーダーの書き方を紹介できればと思います。

内容:
RealityKitとMetalを連携する大まかな流れ
Metal側のコード
Swift側のコード
Appleのカスタムシェーダーのドキュメント紹介

このLTを聞いて少しでもRealityKitに興味を持っていただければ嬉しいです。

4
LT(5分)

ある日、突然、著名ライブラリの共同開発者になったら

the_uhooi uhooi

「Feel free to cut a new tag/release」
(自由にリリースしていいよ)

こちらはある著名ライブラリへPull requestを送ったときに、突然言われた言葉です。
私はこの言葉とともにコラボレーター(共同開発者)へ招待され、自由にリリースできる権限を与えられました。

「なんで、私がコラボレーターに!?」

このライブラリは海外の著名な企業が提供しています。
海外で何の実績もない私がいきなりコラボレーターに招待され、何が起きたか理解できませんでした。

しかし慌てません。
最初のコメントへ冷静に :+1: の絵文字を付け、リリースを試みることに…
そこで経験したこととは!?


本トークでは、私が著名ライブラリのコラボレーターとしてどんな感じで動き、何をしたかざっくり紹介します。
私と同じく、突然コラボレーターになって慌てている人にオススメです。

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

M1対応プロジェクトと非対応プロジェクトを行き来するためのRosetta 2切り替え術

417_72ki 417.72KI

M1 macの登場から1年半が経過し、今ではストアのラインナップからIntel macが消えました。
しかし未だにM1対応されていないライブラリやプロジェクトが多々あります。
M1環境でもそういったプロジェクトで開発するために出てくるのがRosetta 2ですが、現状このRosetta 2の切り替えはGUI上でしか行なえません。
これでは複数の開発が同時進行している場合非常に不便です(え?そんな状況は無い?)。

本トークでは、Appleの非公開APIと黒魔術を利用してRosetta 2のオン/オフを切り替えるツールの開発を通じて得た知見を紹介します。

話す内容

  • Rosettaについて
  • Objective-CとSwiftの混合パッケージの作成方法
  • Rosettaのオン/オフを切り替える非公開API
  • LaunchServices.plistについて
8
レギュラートーク(20分)

SwfitUI時代の状態管理アーキテクチャの新潮流を捉える!

kara_mage karamage

SwiftUIのアプリ開発において、状態管理をどうするか、という問題があります。


宣言的UIであるSwiftUIの登場により、SwiftUI時代に合った状態管理アーキテクチャを検討する必要があると感じています。

現在、 SwiftUI開発でのデファクトスタンダードな状態管理アーキテクチャと呼べるような何かは存在せず、試行錯誤している段階なのかなと思います。

そこで、このセッションでは、SwiftUI時代における以下の4つの状態管理手法について比較検討し、状態管理の新潮流を捉えたいと思います。

・MVVM
・The Composable Architecture(TCA)
・ReSwift
・SwiftHooks & RecoilSwift

9
LT(5分)

GraqhQLリクエストのパフォーマンスをFirebase Performance Monitoringで計測する方法

iganin_dev 伊賀 裕展

株式会社エクサウィザーズが提供する介護記録アプリ「CareWiz ハナスト」ではAPIサーバーとの通信にGraphQLとRESTを使用しています。

便利なGraphQLですが、Firebase Performance Monitoringで通信時間を計測しようとすると問題が発生します。
Firebaseコンソール上ではGraphQLクライアントからのリクエストが全て同一のものとして扱われてしまうのです。
なぜならGraphQLのリクエストは基本的に同一エンドポイントへのPOSTリクエストとなるからです。

本 LTではそのような問題にどのように対処したのか、具体的な実装を交え解説します。

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

みんなが幸せになるErrorを考える

coffeegyunyu 日向強

iOSに限らず、アプリはいつもと同じように使っていても、ユーザーの環境はたまたアプリの状態など、様々な原因によってエラーが発生します。エラーハンドリングをアプリ側で行なった後、アラートやテキストなどでユーザーに伝えることは多いと思います。

  • 「エラーが発生しました」
  • 「原因不明のエラーです」
  • 通信に問題がないはずなのに「通信エラーです」

これらのエラーメッセージは、どうやったらエラーの状態から抜け出せるかわからず、お問い合せをいただいても解決できない場合がほとんどです。

このトークでは、エラーのハンドリングについて、どうやったらハンドリングしやすいエラーの仕組みが作れるのか、またErrorはどのように利用するのが望ましいのか、AppleのクラスやAPIデザインに着目し、ユーザー、サービス、開発者全てが幸せになる、簡単で鮮明なエラー作成をみんなで考えるトークになります。

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

Core ML Toolsにコミットしつつ、Pytorch製深層学習モデルをCore MLで動かそう

fukafukatani 深谷

モノグサ株式会社では記憶アプリMonoxerを開発・リリースしています。
iOS版のMonoxerで深層学習モデルを使うために、Core ML Toolsを使ってPytorch製のモデルをCore MLで動作するモデルにコンバートする必要がありました。
Core ML Toolsを使ってみるとわかりづらいポイントや、モデルが未サポートの演算を含んでおりモデルをコンバートできないといったことがありました。
そこでこのトークでは、Core ML Toolsをスムーズに使う方法や未サポートの演算をどうすればサポートできるかをシェアします。

  • Core ML / Core ML Toolsの概要
  • Core ML Toolsの基本的な使い方
  • Core ML Toolsがうまく動かなかった時
  • Core ML Toolsに未サポートの演算を追加するには
6