採択
ポスターセッション

App Intentsの未来について研究しよう!

jollyjoester jollyjoester

App Intentsは、アプリの特定の機能をシステム(iOS)に伝えることができる重要な機能です。これにより、Siri、ショートカット、ウィジェットなど、様々な方法でアプリの機能を利用することが可能になります。しかし、この機能はまだ多くのユーザーにとって使いやすいとは言えず、これまではあまり注目されてきませんでした。

しかし、iOS18の登場により、状況は劇的に変わる可能性があります。Apple Intelligence (AI)の導入により、システム(iOS)とアプリはよりシームレスに連携することができるようになります。これにより、「ユーザーのタップによるアプリの起動」だけでなく、「ユーザーのコンテキストを読んだAIのサジェストによるアプリの起動」が可能になります。したがって、App Intentsを適切に設計し、組み込むことがますます重要になってきます。

「Anything your app does should be an App Intent.」(WWDC24セッションより)という言葉が示す通り、アプリのほとんどの機能をApp Intentsとして定義することが求められる時代が来るかもしれません。

本ポスターセッションでは、App Intentsを研究し、iOS18の登場による変化がアプリの設計や開発にどのような影響を与えるかについて皆さんと議論したいと思います。

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

不安定なテストコードは200種類もあるわけがないねん

yimajo 今城 善矩

テストコードの結果が不安定となってしまう原因を細かく分類しても、到底200種類になんてならないでしょう。このポスターセッションでは、テストが不安定になる実例を数種類紹介します。

紹介する不安定なテストコードというのは100%失敗するようなそんな甘いものではありません。CIサーバでビルド失敗時にガチャのようにリビルドすれば、たまに成功するようなテストコードです。ポスターセッションでは、なぜそのテストコードが不安定で、どのように解決したかについてクイズ形式にしたいと思っています。

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

年表で振り返るWWDC

yamakentoc yamaken

WWDC(Worldwide Developers Conference)はいつから始まったか知っていますか?
2010年…?2000年…?いえ、実はWWDCの始まりは1990年代まで遡ります。実はその前身となるイベントはさらに昔から開催されていました。

昔のWWDCの情報は簡単に得られるものではありませんが、今回、可能な限り昔のWWDCを中心に調べてみました。
A0サイズのポスターにWWDC創設期から現在までの各年のWWDCで、「どのような出来事があったか」「どのような技術が発表されたか」を年表でまとめます。

「そんなこともあったな」とか「あ〜!懐かしい…!」など、皆さんと一緒に振り返りながら楽しむことができればと思います。

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

Haptic Feedbackでクセになるユーザー体験を提供しよう!

15531b イッセー

Haptic Feedbackを使ったことがありますか?触覚を通じてユーザーに情報を伝える技術、それがHaptic Feedbackです。

現在、Haptic Feedbackはさまざまなアプリで使用されており、特に最近リリースされたアプリではその使用が急増しています。この技術はユーザーに高い没入感を提供しており、Apple Pencil ProにもHaptic Feedbackが導入されました。

本ポスターセッションでは、Haptic Feedbackを導入するメリットやAppleが推奨する使用方法、実際のコード例を交えて詳しく説明します。さらに、実際のアプリにおける使用シナリオについても紹介します。

Haptic Feedbackは、ユーザーのアクションやUIアニメーションにほんの数行のコードを加えるだけで、簡単に没入感を提供することができます。ただし、乱用は禁物です。適切なタイミングと場面で使用することで、ユーザー体験を飛躍的に向上させることができます。
さらに、Core Hapticsフレームワークを使用すると、カスタマイズしたフィードバックを作成することが可能です。振動のパターンや強度を細かく調整することで、ユーザーに伝えたいメッセージを明確に伝えられます。

Haptic Feedbackを駆使して、ユーザーの心を惹きつけるインタラクションを実現しましょう。

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

WWDC24体験記 〜現地でのタイムライン〜

ojun_9 ojun

このポスターセッションではWWDC24に現地参加した経験をもとに、現地ならではの細かな情報を共有します!

WWDC24への参加記事は多く見られますが「ご飯ってどこで何を食べたの」、「いつどのタイミングでどこに行ったの?」、「寒暖差どんな感じ?」、「時差ボケ大丈夫なの?」など、細かな情報はあまり存在しない印象があります

そこで、このセッションでは、A0サイズの大きな紙にWWDC24滞在中の情報を写真と言葉でまとめ、タイムライン形式で紹介します!
タイムラインを眺めながらワイワイできたら嬉しいです!

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

3次元回転とクォータニオン:iOSのAccelerateフレームワークでの実践

usamik26 宇佐見公輔

コンピューター上で3次元のオブジェクトを回転させるとき、3次元回転操作の表現としてクォータニオン(四元数)がよく使われます。数学ではベクトルや行列がよく使われますが、クォータニオンは行列よりもメモリ効率が良く、計算が高速です。

このポスターセッションでは、クォータニオンの有用性をiOSのAccelerateフレームワークに含まれるsimdモジュールを使って解説し、SceneKitで実際に描画する実例を示します。

• クォータニオンの基礎:19世紀に数学者ハミルトンが考案したクォータニオンの基礎を解説。
• simdモジュール:コード上でのクォータニオンの扱い方。
• 回転の補間:クォータニオンを活用した軌跡の補間、滑らかな回転アニメーションの実現。
• 3次元オブジェクトの回転:SceneKitで回転を描画する実例。

3次元グラフィックスの基礎を知りたいiOSアプリ開発者向けの内容です。

2
採択
パンフ記事(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を用意して読むと理解が深まります。

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

Xserver でも Swift が書きたい。

es_kumagai 熊谷友宏

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

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

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

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

できる!技適特例申請!

ikkou HEAVEN chan / ikkou

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

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

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

Apple Vision Pro 実機活用術

AkkeyLab akkey

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

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

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

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

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

_matatabiz またたび

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

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

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

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

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

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

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

worlddowntown Keisuke Shoji

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

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

  • 目的
  • レビュイーがやるべきこと
  • レビュアーがやるべきこと
  • GitHub のおすすめ設定
  • GitHub Flavored Markdown
3
採択
パンフ記事(4ページ)

Swift Concurrencyと歩む、プライバシーの許可リクエスト共通化

Nao_RandD Nao-RandD / ナオランド

皆さん、*許可リクエストをしっかりハンドリングできてますか?👀

アプリ上で位置情報やATTなどのプライバシーデータを扱う場合、アクセスするために*許可リクエストを適切に行うことはアプリ開発者において重要な責務の一つです。
ただ、データを扱うフレームワークごとに許可リクエストのAPIは異なっており、後続処理の制御にコールバックが提供される場合もあれば、位置情報やBluetoothのようにDelegateパターンで提供される場合もあります。
そのため、複数のリクエストを同時に呼び出したり、”データをこのように使用します”という事前説明画面の後に呼び出すなど、前後処理に紐づけて柔軟に呼び出すケースでは複雑な実装となりがちです。

本記事では、以下の二つをコードを交えてハンズオン形式で紹介していきます。
・既存のコールバックやDelegateパターンの実装をSwift Concurrencyのasync/awaitで扱えるようにする
・異なるフレームワークの許可リクエストを共通のAPIから呼び出せるようにする

withCheckedContinuationでコールバックやDelegateを置き換えたり、Actorでデータ競合対策など、実際のコードを置き換えながら学んでいきましょう!

* 本記事では、プライバシーデータにアクセスするための処理を「許可リクエスト」と表現しています。

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

Adobe InDesign を使った技術書作成の基礎

AkkeyLab akkey

みなさん、技術書を書いたことはありますか?
紙の本として印刷する場合、様々な決まりに従ってレイアウトを施す必要があります。例えば、用紙サイズ・左綴じと右綴じ・余白・断ち切り・背幅・トンボ・ノンブルなどがあります。
これらの設定を手助けしてくれるツールは数多く存在しますが、本稿では Adobe InDesign を例に技術書作りのノウハウをご紹介します。

  • Adobe Creative Cloud の言語設定
  • 親ページの活用
  • 文字スタイルと段落スタイルの設定

特に、言語設定が原因で締め切りギリギリで再入稿することになった経験など、実体験を踏まえた注意点や便利な機能の活用法を紹介します。
パンフレットを読んで「私もパンフレット記事を書いてみたい!」と思った方はもちろん、他のツールを使って執筆を行っている方にとっても有益な情報となること間違いありません!

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

Apple Silicon のためのアセンブリ入門【続編】

AkkeyLab akkey

iOSDC Japan 2023 のパンフレット記事として掲載された「Apple Silicon のためのアセンブリ入門」の続編です。
前回はニーモニックと文字出力について解説しましたが、本稿では演算処理をアセンブリで記述する方法に焦点を当てます。

Intel CPU を搭載した Apple デバイスがストアから姿を消すなど、 Apple Silicon は大きく進化しました。
私たちがこの Apple Silicon と非常に近い距離で対話する手段、それがアセンブリです。
アセンブリは機械語に非常に近い低水準言語であり、特定の CPU アーキテクチャに依存して記述方法が異なります。これに対して、Swift などの高水準言語では記述方法がほとんど変わらないため、アセンブリの特性について疑問を抱く方もいるかもしれません。

本稿では、 Apple Silicon 上でアセンブリを用いて演算処理を行う方法を紹介します。最初は仕事に直接役立たないように思えるかもしれませんが、日常的に Swift で書いている演算処理がコンパイラによってどのように機械語に変換されているのかを理解する絶好の機会です。きっと Apple Silicon がさらに魅力的に感じられるでしょう!

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

SwiftLintのオレオレカスタムルール一覧

the_uhooi uhooi

「SwiftLint」という、Swift用の静的解析ツールがあります。
SwiftLintには標準で多数のルールが用意されていますが、正規表現を使って自分でカスタムルールを作ることもできます。

私は主に以下の観点でカスタムルールを作っています。

  • 書き方が複数ある処理を統一する(例: Date() より .now を好む)
  • 非推奨のAPIを置き換える(例: foregroundColor() より foregroundStyle() を使う)

本記事では私が実際に使っているカスタムルールを紹介します。
取り入れなくても読むだけで勉強になりますし、正規表現なのでそのまま一括で置換もできます。

ぜひこの機会に処理の統一化や非推奨APIの置き換えを図りましょう!

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

シン・輝け!俺のViewController:||

___freddi___ freddi

時は20XX年

「おう、きたな!まあ茶でも飲んで座ってけや。そうだな、あれは俺が何十年前、iOSDCというカンファレンスに参加したときや...」。

ついに明かされるフレモンの過去、最終回で明かされるすべての伏線。今までの被害s...ゲストや読者の皆さんに感謝を込めて、まごころを君に。「おめでとう」、「おめでとう」、「おめでとう」...「ありがとう」

iOSDC パンフレット連載漫画。3年の時を経て、輝け!俺のViewController、堂々の完結!

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

VSCodeで手軽にSwiftスクリプトを書こう

417_72ki 417.72KI

Swiftでもシェルスクリプトのようなことができるのは既に知られていることかと思います。
しかし、標準の開発環境であるXcodeではSwiftスクリプトのサポートがほとんどされておらず、標準APIのコード補完すらできないのが現状です。

一方で、VSCode (Visual Studio Code)にSwiftプラグインを導入することでコード補完はもちろん、変数の型の確認が容易になるなどの恩恵を受けられます。
更に、GitHub Copilotも標準サポートされているのである程度の単純作業であればすぐにスクリプト化することができます。

本記事では、VSCodeにSwiftプラグインを導入する手順を解説し、実際にzshで書いたスクリプトをSwiftで書き直した事例を紹介します。

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

良いコード・悪いコードから学ぶSwiftデザインパターン

akkiee76 Akihiko Sato

「良いコードを書きたい!」というエンジニアの願いに応えるべく、このパンフレットではiOSアプリケーションの品質向上と保守性の観点から、Swiftデザインパターンを解説します。アンチパターンから堅牢な実装に改善する具体的な手法を紹介し、プロダクトの品質や開発効率に直結するデザインパターンに焦点を当てます。

【本編で紹介する予定のデザインパターン】

  1. 完全コンストラクタ
  2. バリューオブジェクト
  3. ストラテジパターン
  4. ポリシーパターン
  5. ファーストクラスコレクション
  6. スプラウトクラス

本編では、読者が実際のコーディング例を通じてSwiftデザインパターンの理解を深め、アプリケーションの品質向上に役立つベストプラクティスを得られるようにすることを目指します。このパンフレットが、開発者のスキル向上とプロジェクトの成功に貢献する貴重な情報源となることを願っています。

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

@Environment(\.keyPath)実践入門

lovee 星野恵瑠

SwiftUIでは、@Stateや@Environment*などのプロパティラッパーを使って状態を管理します。@Stateは多くの開発者に親しまれていますが、@Environmentはその適切な使い方が十分に理解されていないことが多いです。本記事では、@Environmentの基本的な仕組みから高度な応用方法までを詳しく解説します。

本記事では以下の内容をカバーします:

  1. @Environmentとは何か、特に@StateやSingletonとの違い
  2. @Environmentの基本的な使い方
  3. @Environmentを利用した高度な状態管理テクニック
  4. @Environmentの実際のプロジェクトでの応用事例
  5. @Environmentを効果的に活用するためのベストプラクティス

本記事を通じて、@Environmentの基礎から応用までを学び、SwiftUIアプリの開発において効果的な状態管理手法を習得できます。初心者から中級者まで幅広い層に役立つ内容を提供します。

*: 本記事では@Environment(.keyPath)のみを取り扱います。@Environment(ObjectType.self)は敢えて取り上げません。

8