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

App Store Connect APIを使った業務改善

iseebi Nobuhiro Ito

iOSアプリをテストしたりリリースする際に、皆さんはApp Store Connectを頻繁に使用していると思います。App Store Connectは主に人が操作するWebシステムですが、App Store Connect APIを使用することで多くの操作を自動化することが可能です。
レポーティングやアプリ内課金の操作や、Fastlaneを使った操作ではお使いの方も多いかと思いますが、申請やTestFlight、メンバー管理など多くの操作を自動化でき、ちょっとした調査にも便利に使えることをご存知でしょうか。
このセッションでは、実際の開発チームにおいて行ったTestFlightや申請業務の業務効率化の例を通じて、App Store Connect APIの使い方や、簡単に試す方法をご紹介します。

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

理論から実践へ:チームで実践するSwift Concurrencyの導入

akkiee76 Akihiko Sato

皆さんのプロジェクトでは、Swift Concurrencyの導入は進んでいますか?

ここ1年で、iOS 15のサポートを終了するアプリも増えており、Swift Concurrencyの導入が本格化しています。現場でのSwift Concurrency移行時には、複雑なBlock構文、レガシーライブラリからの脱却やRealmのスレッド移行に苦労しましたが、その過程で多くの知見を得ることができました。

このセッションでは、既存アプリの非同期実装をSwift Concurrencyに移行する方法や、チームで効率的に移行しリリースする方法に焦点を当て、その手法を詳しく紹介します。

【主なトピック】

  • Swift Concurrency導入の実践例
  • Swift Concurrency導入時の注意点とその回避方法
  • Strict Concurrency Checkingの適切な設定方法
  • 導入作業をチームタスクとして定量化する方法
  • リスクを抑えたリリース方法

将来的なSwift 6への移行に備えて、この機会にSwift Concurrencyに移行しましょう!

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

The Art of Code Review: より良いコードレビューをするためのテクニック

kurapy_nnn Natsumi Oishi

コードレビューはアプリやコードの品質向上とチームの成長に不可欠なプロセスです。
しかし、効果的なコードレビューを行うのは簡単ではありません。
コードレビューのやり方や観点については様々なところで紹介されていますが、やり方を知っているだけではPull Requestの差分から適切な指摘事項を見つけ出すことはできません。

このトークでは、より良いコードレビューを行うための実践的な方法について詳しくお話しします。
これにより、今まで何となくApproveしていたコードレビューにおいて、自信を持ってコメントやApproveできるようになる手助けになれば幸いです。

トピック:

  • コードレビューにおける障壁
  • コードレビューの技術を磨く方法
  • コードレビューの手間を減らす方法
3
レギュラートーク(20分)

既存の実プロダクトにおけるSwift Concurrency導入事例

rikusouda 吉岡 祐樹

Swift Concurrencyは、非同期処理を便利にするSwiftの機能です。iOSアプリ開発においてゼロからの開発でこの機能を利用する場合は比較的スムーズに導入できますが、既存のアプリに導入する際にはさまざまな課題が発生します。我々のチームでは、開発効率向上を目指し、すでにリリースされているアプリにSwift Concurrencyを全面的に導入しました。

まず、API通信のような非同期で結果が返る処理をasync/awaitに変換することから始めました。具体的には、従来のCombineのAnyPublisherを戻り値としていた非同期処理をasync関数に置き換えました。次に、UI更新以外の処理をなるべくメインスレッド以外で実行する試みを行いました。例えば、データの読み込みや保存といったI/O操作をバックグラウンドスレッドで実行するように変更しました。

さらに、SWIFT_STRICT_CONCURRENCYオプションを有効にすることで、コンパイル時に非同期処理に関する潜在的な問題を発見し、修正することができました。

本トークでは、導入ステップの具体的な手順の紹介や、導入途中で遭遇した問題とその解決策、そして私たちのチームが採用したSwift Concurrencyの利用方針について詳細に説明します。また、導入後に得られた効果やメリットについてもお話しします。

6
採択
2024/08/24 16:35〜
Track A
LT(5分)

iOS怪談 シングルトンがふたつ…

mtj_j まつじ

シングルトンはGoFのデザインパターンのひとつ。
インスタンスがひとつしか存在しないことを保証したもの。

しかし、とある日、確実に正しいコードのシングルトンなのに、その状態が共有されていないことに気づいたのです。
おかしい、そんなバカな、そう思いながら、恐る恐るシングルトンのインスタンスのメモリアドレスを確認しました。

違うんですよ、アドレスが…

このトークではコードは間違いなく正しいにも関わらず、シングルトンのインスタンスが複数作られてしまう怪奇現象について、iOSのビルド設定の観点から説明します。

あなたのシングルトンは本当にひとつですか...?

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

Conquering 30+ Flutter Errors: Insights for iOS Devs

kent_strong_dev Kent Strong

Embark on a journey through more than 30 errors I really encountered during Flutter app development and release. This session offers an in-depth look at the troubleshooting process from an iOS engineer’s perspective. Learn how to diagnose and fix issues efficiently, avoid common mistakes, and improve your app release workflow. This talk is designed to equip iOS developers with the knowledge and confidence to tackle Flutter development head-on.

採択
2024/08/23 17:25〜
Track A
ルーキーズLT(5分)

夢の声優体験!パーソナルボイスでゲームのキャラクターをあなたの声で喋らせる

kuromelon257 岡本 龍太郎

皆さんは声優さんになりたいと思ったことはありませんか?例えば、自分が声を当てたキャラクターがゲームで活躍する妄想をすると、ワクワクしてこないでしょうか。しかし、アフレコの実力や膨大な文章の収録などの技術面・コスト面の障壁があり、素人がキャラクターに声を当てるのは簡単ではありません。

本トークでは、誰でも自分の声のキャラクターをアプリに登場させる手段として、iOS 17にて追加されたアクセシビリティ機能「パーソナルボイス」を使用し、ユーザの声で自由に語句を発話させる方法について説明します。また、「誰でもゲームアプリ声優になれるアプリ」のデモを通じて、パーソナルボイスの実際の活用例をご紹介します。

具体的には次のトピックについて話します:

  • AVSpeechSynthesizerを使用して学習したパーソナルボイスで発話させる方法
  • AVSpeechSynthesisVoiceで定義された他の音声合成機能との共存方法
  • パーソナルボイスを活用したゲームアプリの実例
  • パーソナルボイス導入における課題

このトークを通じて、iOSの「パーソナルボイス」の導入および利活用方法と、ゲームキャラクターに命を吹き込む新しい方法を理解していただけます。「パーソナルボイス」があなたのアプリに「自分の声での発話」という新しい価値をもたらし、多くのユーザの夢を叶える一助となれば幸いです。

ルーキーズLT(5分)

Interactive Widget:iOS17から始まるWidgetの新たな可能性

Takahiro_Kato15 Takahiro Kato

iOS14での登場以来、Widgetはユーザー獲得とエンゲージメント向上のために重要な役割を果たしています。
これまでも、Widgetのサイズ追加、スタンバイWidget、ロック画面Widgetなどの機能が追加され、ユーザーとの接点を拡大してきました。
しかしながら、今までユーザーはWidgetを受動的に利用しており、ユーザーがアクティブな操作をするためには、必ずアプリ本体を起動することが必要でした。

iOS17で、この制約を打破する「Interactive Widget」が導入され、直接Widgetからデータ更新や表示切替といったアクティブな操作が可能になりました。
この変化は、Widgetの利用価値を大きく高め、開発者にとって新たな可能性を開くものと考えています。

このLTでは、以下の内容に焦点を当てて解説します

  1. Interactive Widgetで実現できることとは?
  2. 実用的なInteractive Widgetの事例とそのメリット
  3. 実際のコードを用いたInteractive Widgetの実装方法

参加者は、Interactive Widgetを通じて、アプリの魅力をさらに引き出せるかについての具体的な知識と技術を得ることができます。

1
LT(5分)

しっくりくるものがない?CADと3Dプリンタで自分だけのAppleデバイスアクセサリを作ろう!

yoyokktt Kazuhiro Kamakura

iPhone, iPad, Apple Watch, AirTag, AirPods, Mac。
iOSDCに参加されている方なら、これらをたくさんお持ちだと思いますが、自分に合ったちょうどいいスタンドなどのアクセサリを見つけるのはなかなか難しいですよね。実際に使ってみないと、そのアクセサリが本当に良いかどうかわからないので、色々試してみたくなることはありませんか?
購入する以外にも、CADと3Dプリンタを使って自分で作るという選択肢が増えれば、様々なアクセサリを試すことができたり、世界に一つだけのオリジナルなものを作れたりと、日々の生活がさらに楽しくなります。
そこで、Apple公式の「Appleデバイス用アクセサリのデザインガイドライン」を元に、作り方の手順や完成データの探し方、私が実際に作ってみたものを紹介しながら、発表したいと思います!

8
ルーキーズLT(5分)

UXを落とさず、収益化したい!Native Adsを用いた、広告UXの改善

tommy__yj Yuto Tomita

個人アプリ開発において、収益化は非常に難題です。広告を置いて収益化したいけどUXは損ねたくない、、、!
そんな誰しもが持つ悩みをこのLTで解決します!

僕自身、動画広告やアプリ内課金を導入するほどではないけどなんとかしてバナー広告は避けたい!と何度も思ってきました。
そこでたどり着いたのが、Native Adsです。

Native Adsは広告のUIを自由にカスタマイズでき、アプリ内に自然に配置することが可能です。
自身でカスタムした広告は、好きな場所に配置することができアプリの世界観やUXを損なうことなく、広告を配置することができます。
しかし、その自由さがゆえにバナー広告よりも少し実装が手間であったりレイアウト崩れが起きてしまったりします。

このLTでは、僕自身がアプリにNativeAdsをどのように組み込んだのか、レイアウト崩れをどのように解決したのかをお話しします。

具体的には次のトピックについてお話しします。

  • Google Admob Native Adsとは
  • Native Adsの実装方法
  • 実際にハマったポイントとその解決策
  • 実際のアプリで使われているNative Adsの具体例

皆さんも、Native Adsを実装してアプリのUXを高めてみませんか?

2
採択
2024/08/23 17:55〜
Track A
ルーキーズLT(5分)

Screen Time APIで生活習慣改善アプリを作ってみた!Screen Time APIって何ができるの?

tommy__yj Yuto Tomita

iOS15とともに登場したScreen Time APIですが、皆さんは使ったことがありますか?
iPhoneにデフォルトで搭載されているScreen Timeではアプリの起動時間を制限したり、アプリの利用時間を取得することができます。
そんなScreen TimeはAPIが公開されており、アプリからも使用することができます。
APIを利用すると、アプリのロック画面をカスタマイズすることができたり、Screen Timeを利用する時間やタイミングをより細かく調整することができます。

Screen Time APIは便利なAPIですが、現状使っているアプリが少なく、あまりメジャーではないため知見があまり出回っておりません。また、ドキュメントに記載されていないが、知っておくべきポイントというのもたくさんあります。

このLTでは、Screen Time APIとはなんなのか、一体何ができるのか?、どのようにすれば使えるのかなどScreen Time APIを使うにあたって知っておくと便利なことを実際に生活習慣改善アプリを開発した話を交えながらお話しします。

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

日本語で詳説!Apple Vision Proにおけるa11yの取り組み!

ikkou HEAVEN chan / ikkou

Global Accessibility Awareness DayにあわせてAppleは“今後登場する”アクセシビリティの新機能を発表しました。
改正障害者差別解消法によってウェブアクセシビリティ対応が義務付けられる話もあってか、アクセシビリティに対する話題がよりいっそう注目されています。

Appleの最新デバイスである「Apple Vision Pro」はAppleの他デバイスよりもアクセシビリティへの配慮を強く感じます。
本記事ではApple公式のApple Vision Pro User Guideの「Get started with accessibility features on Apple Vision Pro」をもとに、日本語でそのアクセシビリティ機能を詳しく説明します。お手元にApple Vision Proを用意して読むと理解が深まります。

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

Xserver でも Swift が書きたい。

es_kumagai 熊谷友宏

日がな Swift に親しんでいると、何かちょっとしたプログラムを書くにも「Swift で書けたらいいのになー」って思うことありますよね。Web 経由で使うプログラムも Swift で書けたら楽しいのに⋯。

じゃあ ServerSide Swift をしようか!ってなっても、別にサーバーの待受まで Swift でやるみたいな大掛かりなことをしたいわけじゃない⋯、Web サーバーにモジュールを入れたりみたいな難しいことをしたいわけじゃない⋯、単純に今使っているレンタルサーバーで Swift をサクッと使えればそれで全てが満たされるんだ⋯。

そう思ったときに、良いアイデアが思いつきました。Xserver に Swift を入れて、古来からの技術 "CGI" で呼び出してあげたらいいじゃない。そんな好奇心から、ルート権限のない Xserver 環境に Swift を入れて CGI で動かすことをやってみました。知ってしまえば簡単なので、Xserver でみんなも Swift 楽しみましょう!

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

できる!技適特例申請!

ikkou HEAVEN chan / ikkou

2024年2月にUS限定でApple Vision Proが発売されました。
5月現在、このApple Vision Proはまだ日本で発売されていませんが、一定台数のApple Vision Proが国内に存在しています。
しかしこのApple Vision Pro、なにも知らずに国内で電源を入れると「電波法」に抵触します。

皆さん、ちゃんと「技適未取得機器を用いた実験等の特例制度」を申請していますか?
本記事では、電波法と技適とその特例制度について、その存在意義と申請までの手順を解説します!
同制度を利用することによって技適未取得のデバイスを気軽に、合法的に、利用できるようになります。

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

Apple Vision Pro 実機活用術

AkkeyLab akkey

Apple Vision Pro が日本に上陸する未来に備えて、実機活用術をご紹介します!
著者はコーディングやミーティングにフル活用しており、オフィスで Apple Vision Pro を装着して歩き回っても、慣れて誰も反応しなくなる程度には高頻度で活用しています。
また、体験会などを通じて100人以上の方に実機を提供してきた実績を持ちます。

  • 娯楽、業務領域での活用術
  • 改造なしで実現可能な、疲れにくい装着方法
  • 怖くない!visionOS デベロッパへの第一歩

Apple 製品の中でも高価格帯に位置づけられるため、「数ヶ月で使わなくなったらどうしよう…」なんて不安がよぎるものです。でも、本稿を読めばそんな心配も払拭できてしまうことでしょう。
空間コンピュータは新しいジャンルなので、想像だけでクリエイティブなアイデアを生み出すのにも限界があります。ぜひ、実機を活用するなかで素晴らしいアプリケーションを創り出してください!

6
ルーキーズLT(5分)

個人開発アプリでSwiftDataを使ったデータ永続化を導入してみた

marunomi_ maru

WWDC2023で発表されたSwiftDataは、iOS17以降で使用可能なアプリ内でのデータを永続化するための新しいフレームワークです。
アプリ内でのデータ保存には既存のRealmやCore Dataがありますが、ではなぜSwiftDataを選ぶべきなのでしょうか?
本LTでは、SwiftDataの基礎知識を整理し、デモアプリを用いてSwiftDataの魅力を伝えることを目指します。

LTで話すこと
・Swift Dataとは
・SwiftDataを使うときに考慮したいこと、詰まった所
・SwiftDataのいいところ
・従来のアプリ内データ保存(Realmなど)とSwiftDataの比較

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

Mastering iOS SDK Distribution: Makes you a professional engineer

kent_strong_dev Kent Strong

Join us for an in-depth exploration of advanced methodologies for distributing iOS SDKs. From Swift Package Manager to XCFrameworks, learn how to leverage these tools to simplify your development process and ensure seamless integration. SDK distribution skills are a key factor in making you a more exceptional engineer than your colleagues. Gain insights into the pros and cons of each method, real-world use cases, and tips for optimizing your workflow. This session is designed for iOS engineers aiming to elevate their expertise and adopt industry-leading practices in SDK distribution.

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

SwiftUIで実現する!VoiceOver対応の使いやすいアプリを作るためのアクセシビリティ対策

_matatabiz またたび

現代のアプリ開発において、アクセシビリティは欠かせない要素となっています。特に視覚障害者にとって、VoiceOver対応は非常に重要です。本記事では、SwiftUIを用いたVoiceOver対応のアプリ開発に焦点を当て、その具体的な手法を紹介します。

アクセシビリティラベルの設定
ボタンや画像などの要素には、意味のあるアクセシビリティラベルを追加します。これにより、VoiceOverが適切な情報を読み上げることができます。例えば、"再生"ボタンには"音楽を再生するボタン"というラベルを設定します。

要素の順序設定
画面上の要素が論理的な順序で読み上げられるように設定します。特にフォームや複数のボタンがある場合、ユーザーの操作がスムーズになります。例えば、入力フォームでは、名前、メールアドレス、送信ボタンの順に読み上げられるようにします。

アクセシビリティインスペクタを使用したテスト
アプリのVoiceOver対応を確認するために、アクセシビリティインスペクタを使用してテストを行います。これにより、VoiceOverが期待どおりに機能しているかどうかを確認できます。

以上の手法を組み合わせることで、視覚障害者を含む多くのユーザーにアクセス可能なアプリを提供し、ユーザー体験を向上させることができます。

4
採択
2024/08/23 17:30〜
Track A
ルーキーズLT(5分)

プロジェクトで遭遇した奇妙で面白いバグたち

nekodoko315 レイ

プロジェクトを進めていると、時折奇妙なバグに遭遇することがあります。。
今回のプレゼンテーションでは、最近出会った興味深いバグをいくつか紹介し、その解決策についてお話しします。
これらのバグはすべて、私たちのミステリーと挑戦の精神を刺激し、コードの再考を促すものでした。

  1. 絵文字を表示するとレイアウトが崩れた!
  2. 画面録画をするとレイアウトが崩れた!
  3. 特定の条件ではアプリをバックグラウンドからフォアグラウンドに切り替えると画像が表示されない!

他にも興味深いバグがいくつかあり、その詳細についても触れます。

このような興味深いバグを通じて、私たちはコードの特異性を発見し、より良いソリューションを見つけることができました。
このプレゼンテーションでは、これらの挑戦的なバグに対する解決策と学びを共有し、共に成長する機会を提供します。

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

マージされる Pull Request はこう書く

worlddowntown Keisuke Shoji

Pull Request (PR) が不毛なコメントばかりでなかなかマージされない。
PR を開いたものの、差分が大きすぎてそっと閉じた。
という経験が誰しもあると思います。

本記事では、作成した PR が素早くマージされるため、レビュアー/レビュイー双方の手間を削減するノウハウを共有します。
特別なツールを導入したり、ChatGPT に業務のセンシティブな情報を投げてしまう前にやれることがきっとあるはずです。

  • 目的
  • レビュイーがやるべきこと
  • レビュアーがやるべきこと
  • GitHub のおすすめ設定
  • GitHub Flavored Markdown
5