採択
2022/09/11 14:40〜
Track E
企画

秘密計算の研究で会社を起こす

EAGLYS CSO 丸山祐丞

13:00-13:20 Greater Tokyo Innovation Ecosystem (GTIE)の紹介 理工学術院 教授 朝日透
13:20-13:30 Urth CEO 田中大貴
13:30-13:40 amulapo CEO 田中克明
13:40-13:50 レイワセダ CEO 畠山祥
13:50-14:05 休憩
14:05-14:15 Ubiq CEO 日野真幸
14:15-14:25 StatHack CEO 松葉亮人
14:25-14:35 EAGLYS CSO 丸山祐丞

採択
2022/09/11 15:10〜
Track A
LT(5分)

神速iOSDC〜6年分〜

66nylon_y Roku

みなさんが初めて参加したiOSDCはいつでしょうか。
私が初めて参加したiOSDCは2018年のものでした。

初参加の2018年からiOS・Swift界隈のトレンドや新しい技術は目まぐるしく変化し、私が初めて参加した年からは想像もできないような進化を遂げています。

ところで、iOSDCにはYouTube公式チャンネルがあり、iOSDC2016からのセッション動画をなんと無料で視聴することができます。

このトークではiOSDCチャンネルにあげられている458本の動画を踏まえ、これまで6年分のiOSDCを5分に凝縮し、オフライン開催が戻ってきた今だからこそ、神速で振り返りを行っていきたいと思っています。
このトークを聞くことで、iOS・Swift界隈のトレンドを振り返るとともに、6年分のiOSDCの思い出を一気に蘇らせることを約束します。

採択
2022/09/11 15:15〜
Track A
LT(5分)

Apple Watchを使い倒す 〜Watchから取れるデータとその活用法〜

tsuboyan5 tsuboyan

初代Apple Watchが発売されてから早7年。Apple Watchは進化を続け、圧倒的な世界最多シェアを誇るスマートウォッチとなりました。
そんなApple Watchを自身のアプリ開発にも活用したいところですが、具体的にどう活かせば良いかは悩みどころですよね…。

ということで今回は、

  1. どんなデータをApple Watchから取得できるのか
  2. どんな用途に利用されている・できそうか

これらの観点から整理し、ウォッチを活用したユニークなアプリの開発につながるヒントを共有できれば幸いです。

採択
2022/09/11 15:20〜
Track A
LT(5分)

SF Symbolsの無限の可能性に迫る、SF Symbolsアートの世界

littleossa リルオッサ

SF Symbols 3.3の時点では、3,300を超えるシンボルを備えています。この多種多様なシンボルのおかげで開発者は0からアイコンを作る必要は無く、開発に専念することが出来ます。

でも、どうでしょう?

3,300を超えるシンボルがあるのに、何個のシンボルを使ったことがありますか?実際、日の目を見れていないシンボルたちが沢山あります。

「これ一体いつ使うんだ?」「こんなシンボルまであるんだ!」「これは使えそう!」

個性豊かなシンボルたちが使って欲しそうにこちらを見ています。

このLTでは、そんなシンボルたちを活用したSF Symbolsアートの数々を紹介します。少しでもSF Symbolsのことが好きになっていただければ嬉しいです。

(参考: https://twitter.com/littleossa/status/1516540893142347778)

採択
2022/09/11 15:25〜
Track A
LT(5分)

レトロゲームを楽しむ環境を構築する

sam_akada 赤田 進(Sam Akada)

ファミコン、スーファミ、ゲームボーイ、64、GC、Wii、PS1、PS2のレトロゲームをiPhone/Macで遊ぶ話です。
Windowsと比べて、Macの情報がなく、令和では手に入りにくい物だったりで、無いものは作りました。
再び、昔懐かしいゲームを楽しみましょう!

当日のLT内容(予定)です。
・違法ダウンロードは絶対ダメ
・ 無いものは作ったゲームソフトの吸い出し機
・ ゲームコントローラーを認識させる
・ レトロゲームをプレイ!

採択
2022/09/11 15:30〜
Track A
LT(5分)

Bluetoothでレゴをリモートプログラミングしよう

ooba 大庭 慎一郎

プログラミング可能なロボットキットである「LEGO BOOST」の発売以降、Bluetoothによるリモートプログラミングに対応しているレゴのセットがたくさん発売されています。その数はなんと20以上!

その中にはプログラミングできることをアピールしていないセットも多くあります。プログラミング=マインドストームではありません。あなたがお持ちのセットも実はプログラミング対応しているかもしれませんよ?

本トークでは、レゴ社が公開している「LEGO Wireless Protocol」を中心に、どんな種類のレゴブロックがどんな感じでプログラミングできるかについてお話しします。あなたのレゴ作品をiPhoneやApple Watchとつなげて、思う通りに動かしましょう!

採択
2022/09/11 16:00〜
Track A
LT(5分)

挑戦!ISUCON de Server-side Swift 〜タイムゾーンには気をつけろ〜

___freddi___ freddi

皆さんは ISUCON をご存知でしょうか?ISUCON は 課題として提供されるWebサービスを「いい感じにスピードアップ」するコンテストです。

さて、ここに3人のiOSエンジニアが勝負を挑みました。この3人、持ち前の iOS 開発で培った Swift 力で、シビアな制限時間の中、課題をSwift にフルスクラッチで書き換えようとします。果たして優勝を勝ち取り、iOS開発、そしてSwift言語の威厳を他の参加者に知らしめることはできたのでしょうか。

このトークを通じて、iOS、macOS アプリケーションの開発者の皆さんがどのようにしてサーバーサイドSwiftに取り組めるか、そして本格的なアプリを実装できるかを学べるやもしれません。 iOS クライアントだけでなく、サービス全てをSwiftにしたい方、必見です!

採択
2022/09/11 16:05〜
Track A
LT(5分)

独自の共通認証基盤を用いているサービスでアカウント削除機能を提供したときの道程

boc_sho ShoMasegi

Review Guideline 5.1.1(v) - Account deletion requirement がついに6月30日に施行されました。
これからアカウント作成が出来るアプリは、アカウント削除機能を提供する必要があります。
アカウント削除機能はあまり優先して開発されない(しづらい)機能の一部であり、マネーフォワードクラウド確定申告でも提供出来ていなかった機能でした。

このLTでは、急遽宣言されたAccount deletion requirementに対して、共通ID基盤の提供・数多くのサービス展開による弊害、1ユーザーが複数のグループに属せるというサービスとしての難しさ、確定申告シーズンにぶち当たった必須化スケジュールを乗り越えて、マネーフォワードクラウド確定申告がアカウント削除機能を提供したときの苦悩の道程を紹介します。

採択
2022/09/11 16:10〜
Track A
LT(5分)

Exposure Notification Privacy-preserving Analytics Architectureの仕様について

itaru_sugimoto 杉本 至

COVID-19のパンデミックに対する解決策としてAppleとGoogleが設計したExposure Notification Privacy-preserving Analytics (ENPA) Architectureについてトークします。
ENPAは、最新のプライバシー保護技術および暗号化技術を活用して、個人データを一切開示せずにデータを収集することを可能にするものです。
強力なプライバシー原則を維持しながら、収集された測定基準の信頼をどのように保護したのか、どのような仕組みを利用して情報を収集したのかをExposure Notification Privacy-preserving Analytics White Paperから解説いたします。

採択
2022/09/11 16:15〜
Track A
LT(5分)

バックポートして学ぶ新APIの仕組み

yutailang0119 Yutaro Muta

Appleプラットフォームのアップデートは、一部を除き、最新OSのみに提供されます。
せっかく待望の新機能が登場しても、サポートOSポリシーによっては、使えるのは数年後...
ならば、自分で作って、来たる日に備えましょう。
実現する上での難易度は高いものかもしれませんが、多くは既存の仕組みを組み合わせることで、ソフトウェアとして解決できるはずです。
自分でバックポート実装を作ってみれば、新API、その周辺の仕組みについて熟知することができます。

このトークでは、2021年に登場したSwiftUI.AsyncImageを、すべてのSwiftUI環境にバックポートした経験を題材に、知見を話します。

  • 新APIの調べ方
  • バックポート実装のTips
  • メンテナンスする上での難点
採択
2022/09/11 16:20〜
Track A
LT(5分)

UIStackView逆引きレシピ

tokorom 所友太

UIStackViewとても可愛いですよね!SwiftUI時代になれば使わなくなると思いますが、現状はまだまだUIStackViewを活用する機会は多くあると思います。
このLTでは、私が愛してやまないUIStackViewについて、こんなケースではUIStackViewでどう解決する?というのを逆引きレシピ形式で紹介できればと思います。

  • ある条件ではこのボタン消えてスペースを詰めいないといけない!トルツメ制御めんどうすぎ!
  • 画面を回転させたときにレイアウトが大きく変わっちゃう!助けて!
  • デザイナーさんから「ここは10、でもここは15」と細かくマージン指定されてる!どうしたらいい?
採択
2022/09/11 16:25〜
Track A
LT(5分)

手で触れずにアプリを動かす技術

coffeegyunyu 日向強

iPhoneがスマートフォンと称されてはや数年。
巨大なタッチスクリーンを備えたiPhoneはその操作性でたくさんの人に受け入れられてきました。
でも、ちょっと待ってください。タッチしないと動かないって、いまいちスマートじゃなくないですか?

そんなわけで、iPhoneを触らずともアプリをなんとか動かすことができないか、様々な技術を駆使してアプリを動かせないかを検討してみます。
例えバッキバキに割れたiPhoneでも、見事動かしてみせましょう。

採択
2022/09/11 16:50〜
Track C
スポンサーセッション(20分)
スポンサーセッション

SwiftUIのハマりどころとその回避策

moguaiyuki 大塚 悠貴

AirインボイスのiOS開発チームは、AirインボイスiOSアプリをSwiftUIで開発しています。

WWDC2022でiOS16が発表され、iOS14以上をサポートとすることができるアプリが増えたことで、本格的にSwiftUIの導入を検討している方も多いと思います。しかし、最新のOSのみをサポートするのではなく、iOS14系や15系もサポートするとなると、そこには数多くのハマりどころが存在します。また、要件によってはSwiftUIでの実現に工夫が必要なポイントも数多く存在します。

本トークでは、iOS14以上を対象としたAirインボイスiOSアプリにおいてSwiftUIを用いてさまざまな要件を実現するにあたり、はまったポイントやそれらをどのように回避したかを共有します。

採択
2022/09/11 16:50〜
Track E
スポンサーセッション(20分)
スポンサーセッション

レガシーなプロダクトからドメイン層を再設計する

石井 潤、高橋 陽太郎

タウンワークiOSアプリは、10年以上開発が続いています。度重なる機能追加や仕様変更によって、プロダクトは徐々に複雑に、レガシーになっていきました。そのため、Clean Architectureの導入によるレガシーからの脱却を図りました。

Clean Architectureに則りドメイン層を分離してみましたが、いくつか不明な点があり、技術顧問の和田卓人氏に相談したところ、そもそも我々のモデリングにたくさんの改善点があることがわかりました。

そこから、チームの中で既存コードからドメインモデルを発掘し、再設計する旅が始まりました。

このセッションでは、ドメイン層が何をするかよくわからない、設計に困っている人に向けて、アプリにとってのドメインとは何か、どのように見つけ出し設計すればよいか、そして評価の方法について私たちの経験を交えてお話します。

採択
2022/09/12 10:15〜
Track A
レギュラートーク(20分)

大規模イベントアプリを支える技術〜長岡花火公式アプリを作った話〜

Izu

大規模なイベントアプリを支える技術のお話です。
新潟県長岡市で開催される長岡花火の公式アプリを開発して、運用しています。コロナ禍では開催出来ませんでしたが、今年は久しぶりに開催される見込みです(6月現在)
毎年開催期間合計で100万程度が来場する長岡花火に対して、どのような技術でアプリを運用して、長岡花火を支えているのか、お話できればと思います。
意外なあれが役に立っています。

普通のアプリとは異なり、イベントアプリは固有の課題があるため、イベントアプリを運用している方、今後イベントアプリを開発する方などの参考になればと思います。

採択
2022/09/12 10:15〜
Track B
レギュラートーク(20分)

Xcode が遅い! とにかく遅い!! 遅い Xcode をなんとかする方法

niw Yoshimasa Niwa
niw

Xcode が遅い。とにかく遅い!! あああ!!!

皆さんはそんな経験ありませんか...?

iOS アプリの開発にはなくてなはならないツール、それは Xcode です。
しかし、Xcode がとにかく遅いのです。
アプリが成長し、ワークペースが巨大になり、多くのターゲットができるにつれてどんどん遅くなり、最後にはハングして終了すらできなくなってしまいます。
このセッションではそんな遅い Xcode を使えるように頑張った経験をもとに、Xcode のビルドの仕組み、そして Bazel などほかのビルドツールについても検証したいと思います。

対象とする方:

  • Xcode が遅くて辛い方
  • 大きなアプリを作っている方
  • killall XCBBuildService が癖になってしまった方
  • Xcode のビルドの仕組みをちょっと知りたい方

前提とする知識:

  • Xcode
採択
2022/09/12 10:15〜
Track C
レギュラートーク(20分)

備えよう。HTTP/3

増住 啓吾

WWDC21の発表にあったように、iOS15でURLSessionのHTTP/3対応が実装されました。
あれからもうすぐ1年経ちますが、2022年6月7日現在HTTP/3対応はデベロッパオプションとして提供されている段階で、大半のiOSデバイスにおいて有効化されてはいません。
しかし、通信のパフォーマンスとセキュリティがより重要になってきていることを考えると、全てのデバイスでHTTP/3のサポートが有効になる日はそう遠くないかと思います。

このトークでは、「そもそもHTTP/3って何?QUICとどう違うの?」「どういう状況でメリットがあるの?」などの疑問にお答えしつつ、運用しているサービスの大半のWebAPIを事前にHTTP/3に対応させた事例から、HTTP/3対応の際に考慮すべき事項や、対応リリース後のモニタリングの想定など、来るべき日に備えた準備の知見をお話しします。

採択
2022/09/12 10:15〜
Track D
レギュラートーク(20分)

iOSにおけるWakeword検知機能の実装

iganin_dev 伊賀 裕展

株式会社エクサウィザーズが提供する介護記録アプリ「CareWiz ハナスト」は、
フォアグラウンド状態において有効な独自のWakeword検知機能と音声によるアプリ操作機能を備えています。

Wakeword検知を行うためには常時音声を取得する必要性があり、独特な実装を行い問題に対処する必要があります。
本セッションでは、Wakeword検知機能の実装を中心に下記の内容をお伝えする予定です。

Wakeword検知
・Wakeword検知の方法
・アプリでの実装
・SoundAnalysisを用いた精度向上

常時録音に伴う問題と対応
・イヤホンの脱着などの音声インプットの変更
・電話などによる中断

音声によるアプリ操作
・音声とアプリの操作の連携
・Wakewordから自由発話認識への連携

採択
2022/09/12 10:15〜
Track E
レギュラートーク(20分)

ホーム画面を無効化しアプリの切替えを抑止する技術

oishi oishi

iOS端末を業務利用する場面では、ときおり「開発するアプリ以外を使わせたくない」「ホーム画面に遷移させたくない」という要望に出くわすことがあります。例えば、キオスク端末としてiPadを使うような場合です。

本トークでは、そうした要望を満たすiOSの仕組みを3つ紹介します。

  • Guided Access
  • Single App Mode
  • Autonomous Single App Mode (ASAM)

それぞれの前提条件やメリット・デメリット、設定方法や使いどころを比較しながら解説します。3つ目のASAMは、アプリ内から Single App Mode のON/OFFを制御できる興味深いモードで、その実装方法についても紹介します。

採択
2022/09/12 10:50〜
Track A
レギュラートーク(20分)

Feature Flagを使った開発で高速でストレスフリーなデリバリーを実現する

imaizume 今泉智博

アプリの新機能開発では「リリースが施策開始時期と合わない」「Mainブランチと差分が広がり競合が発生する」「不具合等で元に戻すには差分を丸ごとRevertする」などの点が開発・デリバリー速度低下の要因となります。
この状況を改善するためRettyではFeature Flagを導入しました。これはコードに分岐を設け機能表出を切り替える手法で、必要差分を予め隠した状態でリリースし、フラグ反転によって瞬時に表出することができます。
Feature Flagによって競合が起きにくくなる他、静的解析で分岐の特定が容易となり、さらに機能停止も手軽に行えます。
このトークでは、RettyでのFeature Flagの実装・運用方法、導入に役に立つライブラリをご紹介します。明日から高速でストレスフリーなデリバリーを実現しましょう!