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
採択
2023/09/03 13:55〜
Track A
レギュラートーク(20分)

iOSではじめるフォトグラメトリ

shu223 堤 修一

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

本トークでは、iOS/iPhoneを用いたフォトグラメトリの手法や、Object Capture API、RoomPlan、ARKit等々のAPIについて解説します。フォトグラメトリの「中身」を知ることで、フォトグラメトリ with iOSをもっと楽しめるようになるでしょう。現実世界からの3Dモデル生成をマスターし、来るべきSpatial Computing時代に備えましょう。

レギュラートーク(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
採択
2023/09/02 16:50〜
Track C
レギュラートーク(20分)

君だけのGFMエディタを作ろう!

FromAtom FromAtom

NSAttributedStringとSwiftUIのMarkdown対応により、
誰もが1度は「僕の考えた最強のMarkdownエディタ」を作る夢を見たでしょう。

エディタには、見出し・太字・リストなどの記法を簡単に入力できるボタンが欲しくなります。
その時に「正規表現で実現できそう」と考える人がいるかもしれません。
そう、過去の私です。
しかし、正規表現を用いた実装は失敗に終わります。

このセッションではその失敗をもとに、

  • 正規表現で入力補助機能の実装が困難な理由
  • apple/swift-markdownとcmark-gfm
  • SourceLocation をUITextViewで扱う方法
  • Syntax Highlightの自作方法

について話します。

このセッションを聞くことで、みなさんもオリジナルのMarkdownエディタが作れるようになります!

LT(5分)

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

FromAtom FromAtom

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

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

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

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

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

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

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

LT(5分)

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

Shibuya Taichi

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

1
採択
ポスターセッション

SwiftUI iOS 13 から iOS 16 までの進化を探る

AkkeyLab akkey

皆さんは SwiftUI を何世代目から使っていますか?
私は初代から利用しており、iOS13 でのみ対応したアプリを作成・ストアに配信したことが良い思い出です。当時は SwiftUI の将来について心配する声も多かったですが、iOS16 までに API は大きく進化し、非推奨になった要素も多くあります。また、UI設計の幅も大幅に広がり、SwiftUI を採用するプロダクトの数も増えています。
このポスターセッションでは、実際のソースコードを使った具体的な比較を行います。
初代から現在までの API の変化や非推奨要素の具体的な例、UI設計の幅の拡大によって可能となった新しい表現方法などを紹介します。さらに、SwiftUI の今後の進化予想についても議論し、参加者同士のコミュニケーションを促す場を提供します。世代関係なく、SwiftUI の歴史と未来を深く理解し、共有する機会となるでしょう

7
採択
2023/09/03 10:25〜
Track A
レギュラートーク(20分)

顔写真メイクアップアプリの開発におけるプライバシー保護とコスト削減のための手法

AkkeyLab akkey

顔写真に化粧を施すアプリ、皆さんはどのように作りますか?
写真をサーバに転送し、バックエンドで加工する方法も考えられますが、顔写真は個人情報の一部となるため、ユーザに抵抗感を与える可能性があります。そこで、顔の分析から加工までを端末内で行う方法を検討しましょう。これならユーザのプライバシーが保護され、自社サーバでのコストも削減できます。

  1. CoreML モデルを活用した顔検出を行う
  2. Vision Framework を使用して、化粧対象の顔パーツを正確に分離する
  3. CIFilter を用いて顔パーツにメイクアップ効果を適用する

このトークでは、上記3ステップを使ったメイクアップ機能の実装方法を紹介します。メイクアップに限らず、Vision Framework や CIFilter の応用方法にも焦点を当て、幅広い実装に役立つ情報を提供します。

レギュラートーク(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
採択
パンフ記事(4ページ)

無料で使えて意外と凄いMapKitの世界

saikei718 Keisuke Saito

Apple標準フレームワークでお馴染み「MapKit」ですが、
「ただ地図にピンを立てるだけ」ではなく様々な機能がいくつもあることを、みなさん知っていますか?

実はMapKitには毎年新機能が追加され、年々出来ることも増えて来ています!

  • スポット名での検索&サジェスト
  • A地点からB地点への経路探索
  • 緯度経度と住所の相互変換(ジオコーディング)
  • ピンのカスタマイズやクラスタリング
  • 地図上のスポットアイコン(POI)のフィルタリング
  • マップ上への図形の描画
  • Look Aroundの表示

など、MapKitを使い無料で実現できる様々なカスタマイズや機能を、
実際にプロダクトに導入した経験も踏まえてご紹介します!

5
ルーキーズLT(5分)

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

saikei718 Keisuke Saito

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

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

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

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

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

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

無料で使えて意外と凄いMapKitの世界

saikei718 Keisuke Saito

Apple標準フレームワークでお馴染み「MapKit」ですが、
「ただ地図にピンを立てるだけ」ではなく様々な機能がいくつもあることを、みなさん知っていますか?

実はMapKitには毎年新機能が追加され、年々出来ることも増えてきています。

  • スポット名での検索&サジェスト
  • A地点からB地点への経路探索
  • 緯度経度と住所の相互変換(ジオコーディング)
  • ピンのカスタマイズやクラスタリング
  • 地図上のスポットアイコン(POI)のフィルタリング
  • マップ上への図形の描画

など、このLTでは実際にプロダクトに導入した経験も踏まえ、
MapKitを使い無料で実現できる様々なカスタマイズや機能についてご紹介します!

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

実はそのUI実装や機能はDIYできちゃう!個人的にも活用している実現Tips集

fumiyasac 酒井文也

アプリの機能開発時やUI実装時、あるいは基盤となり得る部分に手を入れたりする場合には、自前で準備をする選択肢の他にOSSを利用する選択肢も候補に含める場面も数多くあると思います。また、自前でいざ実装を考えていくとなると「結構大変そうに見えて2の足を踏んでしまう」という経験があるかもしれません。

本稿では、少し難しそうなイメージがある部分をDIYする際に、少しでもお役に立てそうなポイントやアプローチをご紹介できればと思います。

【現在考えているトピックス】

※内容は一部変更または調整する可能性があります。

  • 奥行きがある立体的なCarousel表現
  • メディアアプリ等でもある無限循環型タブを持ち一覧画面を切り替える表現
  • 自前でPropertyWrapperで作成するDIコンテナ機構
  • 画面上部を引っ張って閉じる処理と画面遷移トランジションの組み合わせ

等々...

4
レギュラートーク(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
採択
2023/09/02 13:00〜
Track A
レギュラートーク(40分)

Mastering SwiftSyntax

k_katsumi kishikawa katsumi

Swift 5.9ではマクロが導入されます。すでにSwiftUIではマクロが広く利用されています。今後はコミュニティ製や自作したマクロを使うこともあります。
マクロはSwiftSyntaxというライブラリを使った構文変換です。これまでSwiftSyntaxはツールを介した間接的な利用がほとんどでした。しかしマクロを書いたりデバッグするには直接SwiftSyntaxを使う必要があります。
SwiftSyntaxを使うコードはかなり見慣れないコードになります。コンパイラで使用されているコードで一般的な用途のコードではないからです。
この講演ではSwiftSyntaxの構文ノードの種類やAPIの使用方法を具体的な用例をもとに解説します。きっとマクロを使っていろいろなアイデアを試したくなります。SwiftSyntaxを理解してマクロはもちろん、コード生成などメタプログラミングを楽しみましょう!