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

ShazamKitの魔法を解き明かす: 音楽認識技術「オーディオフィンガープリント」の探検!

shzero5 Shogo Yoshida

カフェのような喧騒の中でも、Shazamがどのようにして音楽を精度良く認識しているかご存知ですか?
このライトニングトークでは、WWDC2023でアップデートが発表されたShazamKitの核心となる技術、オーディオフィンガープリントに焦点を当て、その神秘を解き明かします。
わずか数秒のフレーズから全曲を特定し、騒々しい環境でも音楽を正確に認識する方法を、その驚くべき技術と共に掘り下げます。
5分間の発表で、楽曲を視覚化するスペクトログラムから始まり、音楽の「指紋」となる時間と周波数の2次元の星座図について説明し、そして、この「指紋」がどのようにデータベース内の楽曲とマッチングし、最終的に特定の曲を見つけ出すのかを明らかにします。
普段あまり触れることのない音楽認識技術の面白さを共有し、皆さんに新しい発見をしていただけることを期待しています。

ルーキーズLT(5分)

一つのBotで全て解決!Swift製Slackbot開発術

yochidros yochidros

普段bot開発はnode.jsやpythonなどで行われているかと思いますが、swiftでも開発ができることはご存知でしょうか?
aws-lambdaにswiftのruntime用意されているのでそれを利用することで実現が可能です。

bot上でAppstoreConnectAPIを利用することで今までfastlane上やローカル環境で行っていた作業がslackだけで完結できます。
AppstoreConnectAPIだけでなく、GithubやBitriseにも対応ができるので作業の効率化が高められると思います。

今までアプリの審査提出する準備もマウスでポチポチ動かしていた作業やめませんか?

swift製のslack-botを運用し始めて一年ほど経過したのでそこまでの知見などを共有したいと思います。

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

輝け俺のViewController 〜フレモンと秘密の部屋(サーバールームじゃないよ!)〜

___freddi___ freddi

iOSの業界をネタにし尽くした、ネタ切れ、というか、もう正直このプロポーザルを書いてる時点でネタがない!打ち切り覚悟のfreddi先生最新作。ファットビューコントローラークリエイター・フレモンによるドタバタコメディ、第3弾です!今からネタ考えるのでもうここに書くこと無いんですよね、さて、今年はどういうネタにしようかな。TwitterでちょっとバズったMVVMタ◯ピーのオマージュを引っ張るのも考えたし、いっそウ◯ニャ路線で行くか、迷うな。あ、そうだ、あの人に聞いてみよう。今年よかったらマンガに登場しませんか?...

???「ええで」

乞うご期待!

採択
2023/09/03 16:30〜
Track A
LT(5分)

輝け俺のViewController 〜海外iOSカンファレンス登壇編〜

___freddi___ freddi

「いいかい、freddiさん、登壇をな、いつでも登壇できるようになりなよ」

かの師匠からの言葉を握りしめて、海外カンファレンスに日々プロポーザルを送りつづけたfreddi。ようやくApproveの文字が見え、喜びの舞を踊っている彼はその時知らなかった。登壇資料作成の眠れぬ日々、有給なのか移動日なのかの判断、片道45時間の大移動、日々飛んでくるイタリア語。数々の山場を抜け、彼が遠いヨーロッパの地、トリノで見たものとは?!果たして彼は無事登壇できたのだろうか?!

このトークでは、実際に海外登壇をすることになった場合、どういうふうにスタートを切って、最後の登壇までどう走り切るのかを、freddiの今年の体験談を交えて解説します。特に英語登壇、異国の地での登壇への抵抗がある人は、私がどう切り抜けて(そして失敗して)きたかを見て学ぶことができるでしょう。

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

ネイティブコードでもガチャ演出したい!

dotrikun Hiroshi Shikata

普段UIを作ることが多いアプリ開発ですが、非ゲームアプリであってもログインボーナス機能やささやかなミニゲームのようなコンテンツを作ることがあります。
そんなときにコンテンツをよりリッチに作れたら素晴らしいと思いませんか!

このLTでは

  • SwiftUIを使ったガチャ演出の実装例
  • アニメーションやエフェクトの実現手法

などを使った取り組みについてご紹介します。

ルーキーズLT(5分)

具体的な悲劇から学ぶ、循環参照の怖さとそのデバッグ方法・対策

Sossui_Swift そっしー

ARCの登場によって、エンジニアがメモリを意識することは殆どなくなりました。
それでも、ヒューマンエラーは必ず起こるもの...循環参照を完璧に避けることは出来ません。
つまり、「循環参照対策として[weak self]さえつけておけば良い」という状態は準備不足です。

本トークで循環参照による悲劇の話とそのデバッグ方法を聞くことで、
危機意識が高まると共に、実際に起こった際の具体的なアプローチを知ることができます。

実際にデバッグ方法を知らなかった時と知っていた時で、解決までのリードタイムが大きく違ったため
より多くの方に知っていただけたらと思っています。

5
ルーキーズLT(5分)

SwiftUIへの段階的移行〜マッチングアプリのコア機能、ユーザーフリック面の置き換えで学ぶ移行戦略

Sossui_Swift そっしー

-概要
UIKit+MVVM+Fluxで実装されたプロダクトコード。
2014年のサービス開始から9年が経ち、特にコア機能のユーザーフリック面において改修コストが無視できなくなってきた。
中長期的な開発コスト・リグレッションテスト・CSコストを下げることを目的として、
コア機能のSwiftUIへのリプレイスを決断。

リプレイスのポイントは次の3点、
①要件をどれだけカバーできるか
②影響範囲をどれだけ小さくすることができるか
③いつでも切り戻しが可能であること

影響範囲が、、、時間が、、、という課題は付きものですが、
このトークセッションで少しでもリプレイスへ踏み出すきっかけとなれば幸いです。

3
ルーキーズLT(5分)

SwiftUIのダイアログコンポーネント化で学んだ、最小限のインターフェース作りと @Stateが更新されないケース

Sossui_Swift そっしー

-概要
デザインシステム刷新によって、既存ダイアログを6パターンに定義。
そしてUIKitではなくSwiftUIで実装をすることになりました。
このプロポーザルを聞くことで、負債を小さくするために工夫したことと、
@Stateが更新されないケースを具体的に知ることができます。

-負債
考慮したい負債は次の3点です。
① Viewの処理が呼び出し元に漏れ出す具合
② デザイン確認コストが高い
③ 実装の柔軟性が高い

-対応
負債へと向き合うポイントは次の2点
① Componentの規約を意識しなくて良い状態にすること
実行時に規約に反した実装を落とし、ヒューマンエラーを弾く。
② Viewで完結すること
ダイアログの特性上、どのVCからも呼び出される可能性があるため、
呼び出し元のPresenterとのインターフェースは必要最低限にする。

詳細は発表にて!!!!

3
ルーキーズLT(5分)

メモリ領域から理解する、 static や weak self の仕組み

Sossui_Swift そっしー

-概要
iOSでは、ARCの登場によってメモリ管理への意識は無くなりつつあります。
循環参照とは何なのか、static修飾子をつけたメソッド・プロパティは何故インスタンスを生成しなくてもアクセスできるのか。
逆に、インスタンスからなぜそれにアクセスできないのか。
それを知るには、メモリ領域の種類や割り当ての仕組みから学ぶ必要があります。

このトークセッションでは、
「メモリとアドレス」「メモリへの割り当て」「4種類のメモリ領域」というテーマで深ぼっていくことで、
メモリを意識した開発ができるようになります。

なんとなくweak selfをつけよう、インスタンス化しなくて良いからstaticをつけよう、
そんな意識からの脱却を目指します。

6
ルーキーズLT(5分)

A/Bテストの基礎と具体例を交えた勝ちパターンの見つけ方

A/Bテストはデータを活用して意思決定をサポートする手法です。
この方法を活用することでモバイルアプリの改善やUIの最適化が可能となります。

今回のトークではモバイルアプリにおけるA/Bテストの基礎や実施方法を解説し、具体例などを交えながら効果的なA/Bテストのデザインや勝ちパターンの見つけ方についてお話します。

・A/Bテストの基礎
・テストの実施とランダムな割り当ての重要性
・データの収集と計測手法の紹介
・データの解釈と結果の活用
・A/Bテストの成功事例と注意点の紹介

本トークを通じてA/Bテストの基本的な概念を理解し、実際のアプリケーションにおいて効果的なテストを実施するための手法やポイントを知ることができます。
アプリケーション開発者にA/Bテストを有効活用していただき、今後の開発に活かしていただけると幸いです。

1
採択
2023/09/03 13:00〜
Track B
レギュラートーク(40分)

複雑さに立ち向かうためのコードリーディング入門

stzn3 shiz

コードを読んでいる時、

「これは何をしてるんだろう?難しいなあ…」

と、内容がわからないもどかしさを感じたことはありませんでしょうか?僕はよく感じています。
これは、いわゆるコードの「複雑さ」から来ています。しかし、複雑かどうかは人によって異なりますし、また状況次第で変わります。
今回は、この「複雑さ」に焦点を当て立ち向かうためのコードの読み方について、みなさまと考えていきたいと思います。

日々の業務では、コードを書くよりも読む時間のほうが多い傾向にあり、コードの読み方を鍛えることで、日々の開発効率をより改善できる可能性があります。

  • これまでコードの読み方についてあまり意識したことがなかった
  • 読んでいるコードがわからずもどかしいと感じたことがある

そんな方々が、新しい視点を知り、コードに感じる複雑さを軽減できるようになるためのヒントを得る機会になりましたら幸いです。

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

スケーラブル SwiftUI プロジェクトのための実用的な TCA 適用及びモジュール化

bbvch13531 KyuYoung Heo

SwiftUIでTCAを効率的に適用するためのモジュール化の原則を紹介します。

iOSプロジェクトの規模が大きくなるにつれて、複雑さは指数関数的に増加します。 この複雑さをコントロールするために、高い凝集力と低い結合を持つモジュールの編成方法を紹介します。
このトークでは、Github上のリポジトリを検索するサンプルアプリでTCAプロジェクトをモジュラー化するための実践的な方法について説明します。

堅牢なモジュールを構築するための原則について説明します。

  • 高い結合力 低い結合力
  • 懸念事項の分離
  • 依存関係の逆転
  • テスト容易性

対象者

  • SwiftUIを使用しているチーム
  • TCAの採用を検討しているチーム

本プレゼンテーションでは、以下の内容に焦点を当てます。

  • TCAプロジェクトの長所と短所
  • モジュール化の利点と注意点
  • 堅牢なモジュール構築のための原則
レギュラートーク(20分)

iOS開発初心者のチームリーダーがアプリ開発を理解するために勉強会で翻弄した話

inakam00 inakam

ニフティ株式会社でニフティニュースというサービスの開発リーダーをしている中村です。
ニフティニュースというサービスではアプリ開発も行っているのですが、自分自身は機械学習のエンジニアリングが専門のため、アプリ開発は本職の別のエンジニアにずっと任せていました。
しかし、ある時に一念発起して「アプリ開発を理解できるようになりたいな。まずはiOSアプリ開発なのかな。」と思い立ち、最新のiOSアプリ開発を社内勉強会で勉強し始めました。

今のモダンなアプリ開発とは何なんだろうか?
MVVM、リアクティブプログラミング、SwiftUI、TCAなど、アプリエンジニアではなくWebエンジニア出身のエンジニアがどのようにしてアプリ開発を理解していったのか、その過程を発表します。

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

逆引きKotlin Multiplatform 〜Swiftに対応するKotlinの機能と、KMMによる変換後の実態〜

marty_suzuki marty-suzuki

Kotlin Multiplatformは、Kotlinで記述したAndroid・iOS向けの共通ソースコードからiOSのFrameworkを出力でき、iOSアプリプロジェクトに取り込むことで利用できます。
しかし、Kotlinで実装しなければならないため、試してみようと思ってもハードルがあるかと思います。

本トークでは、Swiftの任意の機能からKotlinの対応した機能を逆引きして解説しながら、それらの機能がFrameworkとして出力されるとSwiftからどのようにアクセスできるのかについても解説します。
例として、「SwiftのenumのAssociated Valueは、Kotlinだと何になる?」「それがFrameworkとして出力されるとどうなる?」などを話していきます。
皆さんがKotlin Multiplatformに触れるきっかけとなるトークになれば幸いです。

5
採択
2023/09/03 14:30〜
Track A
レギュラートーク(20分)

iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう!

miwa_ensan Miwa

iOSのKeyboard Extensionは、ソフトウェアキーボードを独自に開発し、配布できる機能です。
キーボードを自作する上で大きな問題が日本語入力です。標準のAPIはないので、自力でどうにかする必要があります。

私はキーボードアプリ「azooKey」をiOSでリリースし、2年以上にわたって開発・運用を続けてきました。azooKeyでは日本語入力機能をSwiftで独自に実装しています。
さらに、「学習」「ユーザ辞書」「ライブ変換」「着せ替え」「キーのカスタマイズ」など、さまざまな便利な機能を実装し、多くの利用者に実用してもらえるレベルのアプリに仕上げています。

本トークでは、このazooKeyの開発・運用の経験から、日本語入力の仕組みやSwiftによる実装、さらにキーボードアプリにして配布する方法までを解説します。皆さんも日本語入力できるキーボードアプリを作ってみませんか!?

ルーキーズLT(5分)

新卒iOSエンジニアが『会社独自の新アーキテクチャ』を使って課題に取り組んだ話

ryu_develop 中山 龍

Chatwork株式会社のiOSチームでは、SwiftUIの利用を進めており、宣言的UIであるSwiftUIの恩恵を最大限に享受するため、会社独自のリアクティブな新アーキテクチャを考案し、既存のプロダクトへの導入を進めています。
今年入社した23新卒の私も例外ではありません。
新卒iOSエンジニアのオンボーディングとして学習課題のアプリの作成に取り組む中で、配属1日目からその『新アーキテクチャ』を使って、自分が過去に実装したアプリのリライトを行っています。

このセッションでは、「新卒iOSエンジニア」 「新アーキテクチャ導入の最中でのジョイン」という視点から
・新卒iOSエンジニアのオンボーディングの概要
・どのように課題に取り組んだのか
などを5分で簡単にお話しします。

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

時短勤務のエンジニアがひとりで10万ユーザのSNSアプリのiOS開発を3年間続けた方法

sakiyamaK 崎山圭

入れ替わり立ち替わりのフリーランスエンジニアの方々が残してくれた画面ごとに共通化されていない実装!
肥大化していったUIKitのプロジェクト、複雑化するViewModel!
レイアウトを調整する度に発生するビルドの待ち時間!
それらの様々な課題にどう立ち向かい乗り越えてきたか!?
サービスはどんどん成長していく中で、時短勤務のエンジニアがSwiftUIやSwift Concurrencyのような最新技術を調査して取り入れて必ず起きるトラブルに対応する暇はない!
WebやAndroidチームに遅れを取らないよう既存資産をなるべく活かすよう試行錯誤していって出来上がったプロジェクト構成とは!?
まだまだSwiftUIを取り入れられないUIKitのプロジェクトの現場も多いでしょうし、そんな現場で開発ペースをあげるためのきっかけになると幸いです

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

デリバリーアプリ「出前館」が取り組んできたデザインシステム構築のトライ&エラー

_mhashimoto ハシモト

長らくユーザにご利用いただいている弊社アプリは、これまでの長い歴史の中で多くの追加開発が行われてきました。
その結果、アプリ全体のUI・UXに統一性がない、というデザイン面での課題に直面しました。
そこで私たちは昨年からデザインシステムを導入するプロジェクトを進め、その課題へのアプローチを始めています。

本セッションでは、その構築の過程で見つけた知見を共有させていただきます。
社内でデザインシステムを一緒に作る仲間集めをしていた際の苦労や、実際に作業を始めた際に陥ったデザイントークンの設計に関する落とし穴など、プロジェクトマネジメントやチームビルディング、そしてデザインシステム設計時に試行錯誤した事例をお伝えします。

デザインの話が好きな方、デザインシステムに興味のある方、そしてこれからデザインシステムを作ることを検討している方の参考になれば幸いです。

3
採択
2023/09/03 16:50〜
Track A
LT(5分)

アプリの終活 〜その後〜

kuritatu18 久利 龍義

会社の統合によって、担当していたアプリはサービスを継続するが最終的には他のアプリに統合することに。
そんなアプリの終活について iOSDC Japan 2021 で登壇しましたが、約2年後の2023年3月に正式にサービス終了を迎えました。
本セッションでは終活後のアプリでどんな追加対応があったか、サービス終了の際に行った作業についてご紹介したいと思います。
・やってよかった終活
・やっておけばよかった終活
・終活〜サービス終了までの対応
・サービス終了

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

2年前のiOSアップデート内容を振り返ろう!

ynoseda 野瀬田 裕樹

今年のWWDCでもiOS17の各種アップデート内容について色々と発表され、大いに盛り上がりました。
しかし、その発表内容の多くがiOS17+のAPIのため、実際に実務で開発しているプロダクトへの導入はまだまだ先だなと感じている方も多いでしょう。

しかし、古いiOSをサポートしているプロダクトでも、まだまだ活用しきれていない一昔前の革新的な機能や改善点があるはずです。
このセッションでは、少し前のiOSアップデートにフォーカスし、そういった未発掘のポテンシャルを探ります。
具体的には、iOS 14やiOS15あたりのバージョンにスポットを当て、どういったアップデート内容があったのかを振り返ります。

4