2024年8月22日(木)から24日(土)の3日間にわたり開催される、iOSDC Japan 2024にて、LINEヤフーはダイヤモンドスポンサーを務めます。
本ブログでは、LINEヤフーから登壇する発表者の紹介や当日協賛ブースで実施予定の内容、アフターイベントについてご紹介いたします。
iOSDC Japan 2024 (8/22〜8/24)
セッション紹介
タイムテーブル:https://fortee.jp/iosdc-japan-2024/timetable(外部サイト)
iOSDC Japan 2024でのLINEヤフーからのセッションを紹介いたします。
今年は #LINEヤフーから延べ18人登壇 します。
各発表の概要に加え、発表者ごとの見どころやコメントも掲載していますので、ぜひご一読ください。
App Clipの魔法: iOSデザイン開発の新時代(8/22)
「App Clipをご存知ですか?」
iOSの勉強会等で問いかけると、おおよそ参加者の半数は「知らない」と回答します。
世に出て5年は経過しているにも関わらず、App Clipはあまりパッとしない存在でした。ところが、2024年に入りApp ClipをUI/UXのプロトタイプ共有に活用するアイデアが知られるようになりました。
ざっくり説明すると、App Clipが実質iOSアプリの「一部分」であることを利用し、UIやUXの部分のみを抽出した「ミニアプリ」を配布するというものです。
これまである種面倒な方法で共有を強いられてきたデザイン開発の世界から見ればブレークスルーと言えるものでした。
iPhoneを持っていれば、QR/NFCなどで直ちにデザインの確認ができるのですから、iOS開発に詳しくない方は勿論、「iOSアプリを任意のiPhoneで動かすのがいかに難しいか」を知っているみなさんにとっても、まさに魔法と言えましょう。本トークでは、AppClipの概要を再確認しつつ、App Clipによるデザイン共有のアイデアを実際にどのようにプロジェクトで活用できるかを見ていきます。
ウェブサービス、画像、あるいはExcelなどでiOSデザインを共有することに課題を感じる方も多いのではないでしょうか?
iOSデザイン共有の最新アイデアが気になる皆様、よろしければぜひお越しください!
発表日時:2024/08/22 16:45〜 Track B レギュラートーク(20分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/66f33ab0-0d73-479a-855b-058e41e1379b(外部サイト)
発表者:log5 / log5
■発表者からメッセージ
App Clipやその活用方法にご興味のあるみなさま、ぜひお越しください!
複雑さに立ち向かうためのソフトウェア開発入門(8/23)
昨年の『複雑さに立ち向かうためのコードリーディング入門』ではコードの読み解き方に焦点を当てましたが、今回はソフトウェア開発全体における複雑さについて詳しく解説します。
私たちエンジニアは、日々さまざまなタスクに取り組んでいます。仕様の理解、ドキュメントの作成、タスクの見積もり、チャットやミーティングでの議論、新しい技術の学習など、多岐にわたる作業があります。このような状況で、「やることが多すぎて頭がフリーズしてしまった」という経験をしたことはありませんでしょうか?
人間の脳には限界があり、その限界を超えると物事を複雑に感じてしまいます。では、この複雑さに立ち向かうために、私たちができることは何でしょうか?
実は、私たちが日常的に行っている活動の中には、必要以上に脳へ負荷をかけているものが多く存在します。この負担を認識し、軽減することができれば、複雑さから解放され、より重要なこ とに注力できるようになります。
本トークでは、以下のテーマについてお話しします。
- 人の脳の限界とは何か?
- 実は必要以上に脳に負荷をかけているもの
- 研究結果から見る脳の負荷を軽減するための対策対策には些細なものも含まれますが、そういった細かい部分にこそ落とし穴があります。そして仕組みがわかれば、多くのことに応用できます。
本トークが、皆さまの日々をより充実させる一助となりましたら幸いです。
発表日時:2024/08/23 10:50〜 Track A レギュラートーク(20分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/17e37b92-9d37-4d8b-9f3c-6e34d9ba2aa1(外部サイト)
発表者:shiz / stzn3
■発表者からメッセージ
朝の準備運動としてゆるーく楽しんでもらえたらうれしいです!
アプリバイナリ解析入門 〜実機向けバイナリをARM64シミュレータ向けに変換する方法を例に〜(8/23)
皆さん、バイナリ形式で配布されるSDKがx86_64のシミュレータしか同梱されていない状況に困ったことはありませんか?
本トークでは、実機向けバイナリをARM64シミュレータ向けに変換する作業を通じて、アプリのバイナリを解析する手法を紹介します。
具体例としてLive2D Cubism SDKを取り上げ、必要なツール(lipoとotool)、バイナリ解析の基礎、バイナリ変換手法、動作確認までを丁寧に解説します。
- バイナリ変換の基本概念と必要なツール(lipoとotool)の紹介
- ARM64バイナリをシミュレータ対応のバイナリに変換する手順
- Mach-Oバイナリの基本構造の理解
- 必要なコマンドの置き換え
- オフセットの再計算方法
- 変換したシミュレータ対応バイナリをLive2D Cubism SDKに組み込み
- iOSシミュレータでの動作確認
基本的なiOS開発の経験があれば十分です。ARM64アーキテクチャに関する知識やバイナリ解析の経験がなくても問題ありません。
このトークを通じて、バイナリ解析の楽しさを少しでも伝えられればと思います。お楽しみに!
発表日時:2024/08/23 10:50〜 Track D レギュラートーク(20分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/0baadc23-6d1d-4bed-a841-1d48c79eb68a(外部サイト)
発表者:Ooka
■発表者からメッセージ
バイナリ解析の楽しさを少しでも伝えられたらうれしいです!
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」(8/23)
LINEヤフーからの登壇者:shiz、まつじ
Swiftの次期バージョンであるSwift 6は、開発者にとって大きな変革をもたらします。特に注目すべきは、Swift ConcurrencyのStrict Concurrencyチェックによる完全なデータ競合の防止です。これにより、コードの安全性が大幅に向上し、開発効率も向上します。また、他にもコードの品質を高めるアップデートがいくつも存在します。
しかし、アップデートをするためには、コードの変更が必要となる可能性があり、「どう対応すればいいのか?」と思っている方も多いのではないでしょうか?
このセッションでは、座談会形式で、以下のテーマについて登壇者ならびに参加者の皆さんと一緒に考えていきます:
- Strict Concurrencyチェックのメリットと導入してみてわかったことや注意点
- 下位バージョンと互換性のない変更への対応策
- Swift 6への移行準備を始めるタイミングと進め方
Swift 6はオプトイン方式であり、正式リリース後すぐに対応する必要はありません。しかし、今後導入される新機能を活用するためにも、早めに対策を考えておくのはいかがでしょうか?
このセッションが、Swift 6へのスムーズな移行に向けて、皆さんの疑問や不安を解消する一助となることを願っています。
発表日時:2024/08/23 13:00〜 Track A企画(40分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/5e7b95a8-9a2e-47d5-87a7-545c46c38b25(外部サイト)
発表者:shiz、まつじ
■発表者からメッセージ
みんなでSwiftの新しい時代に備えましょう!
Mergeable Libraryで高速なアプリ起動を実現しよう!(8/23)
WWDC23で発表されたMergeable Libraryは、Static/Dynamicに続く新たなライブラリの形式です。
これまで、依存関係にStatic Libraryを利用することで、アプリの起動高速化や、バイナリサイズの圧縮などのユーザー体験を改善する手法が知られていました。
その一方で、この手法はDynamic Libraryのもたらす開発体験とのトレードオフになってしまう部分もありました。
Mergeable Libraryを使うことで、それらの良いとこどりができるのです!このトークではMergeable Libraryを使った、新しいプロジェクト構成がもたらすメリットと導入のヒントをお伝えします。以下のようなトピックが含まれます。
- Mergeable Libraryの概要、利点と仕組み
- ビルド済みフレームワーク、Swift PackageのMergeable Library化
- アプリにMergeable Libraryを導入してみよう!
新たな仕組みを学び、開発者・ユーザー体験の両立を目指しましょう!
発表日時:2024/08/23 13:55〜 Track A レギュラートーク(20分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/b8dc0c4a-b576-4395-974f-a52cfc2bc6a0(外部サイト)
発表者:giginet / giginet
■発表者からメッセージ
革新的なのにあまり情報がない新しいビルド機 能の話です。このトークで全てのアプリを爆速にしましょう!
快適な開発と高セキュリティを実現するCryptoKitを活用したCoreDataのデータ暗号化術(8/23)
永続化されたデータの保護は、現代のiOSアプリ開発において必要不可欠な要素です。
しかし、Appleが提供する永続化フレームワークであるCore Dataは標準でデータの暗号化を提供しません。
また、Core Dataのデータ暗号化には、「データベース全体を暗号化する方法(SQLCipher)」や「保存するデータを個別に暗号化する方法(CryptoKit)」があります。
このトークでは、それぞれのメリット/デメリットを比較した上で、Core Dataにおけるデータの暗号化手法とその選定方法について詳しく紹介します。参加者は以下の内容を学ぶことができます。
- データ保護の重要性
- Core Dataの各暗号化手法のメリット/デメリット
- Core Dataの暗号化手法の選定方法
- CryptoKitによる暗号化と復号化のコード例
- CryptoKitによる暗号化と復号化のパフォーマンス検証
このトークを通して、「Core Data」の暗号化に必要なナレッジや各利点について理解を深めて頂ければ幸いです。
発表日時:2024/08/23 15:05〜 Track B レギュラートーク(20分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/ef35b460-0c0e-4fa5-b4f5-6f8bdfe6956b(外部サイト)
発表者:Takahiro Kato / Takahiro_Kato15
■発表者からメッセージ
iOSDC初登壇です。Core Dataの暗号化の具体的な話は意外と見かけないので、ご興味ある方はぜひ!
iOS/iPadOSの多様な「ViewController」の徹底解説と実装例(8/23)
iOS/iPadOS向けにアプリ開発を行う際に、「ViewController」を意識しないことはほぼないのではないでしょうか?
iOS 2.0の「UIViewController」を皮切りに、様々なViewControllerが提供されてきました。
私たちはこれらを実装し、カスタマイズして利用してきたかと思います。では、これまでどれだけのViewControllerが登場し、どのような機能が実装可能になったのでしょうか?
このセッションでは、これまでに登場したViewControllerを機能紹介とサンプルコードとともに振り返ります。想定する方々:
・iOS/iPadOS、それら以外のプラットフォーム向けアプリ開発・企画者ゴール:
・知らなかったViewControllerを知り、今後の参考にできる
・提供できる画面・機能の概要を把握できるアジェンダ:
- UIViewControllerの進化過程
- 紹介対象のFrameworkの概要
・MapKit、SiriKitなど- これまでの総数
・年代、Framework、OSバージョン別- 多様なViewController紹介
・提供機能とサンプルコードの紹介※対象は「UIViewController」または「UINavigationController」を継承したクラス
発表日時:2024/08/23 16:15〜 Track A レギュラートーク(20分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/f8766f69-db90-44da-9853-58f682943b12 (外部サイト)
発表者:haseken / haseken_dev
■発表者からメッセージ
変わった角度から「ViewController」を探っていきます!気軽に楽しんで聞いてもらえたら嬉しいです!
夢の声優体験!パーソナルボイスでゲームのキャラクターをあなたの声で喋らせる(8/23)
皆さんは声優さんになりたいと思ったことはありませんか?例えば、自分が声を当てたキャラクターがゲームで活躍する妄想をすると、ワクワクしてこないでしょうか。しかし、アフレコの実力や膨大な文章の収録などの技術面・コスト面の障壁があり、素人がキャラクターに声を当てるのは簡単ではありません。
本トークでは、誰でも自分の声のキャラクターをアプリに登場させる手段として、iOS 17にて追加されたアクセシビリティ機能「パーソナルボイス」を使用し、ユーザの声で自由に語句を発話させる方法について説明します。また、「誰でもゲームアプリ声優になれるアプリ」のデモを通じて、パーソナルボイスの実際の活用例をご紹介します。
具体的には次のトピックについて話します:
- AVSpeechSynthesizerを使用して学習したパーソナルボイスで発話させる方法
- AVSpeechSynthesisVoiceで定義された他の音声合成機能との共存方法
- パーソナルボイスを活用し たゲームアプリの実例
- パーソナルボイス導入における課題
このトークを通じて、iOSの「パーソナルボイス」の導入および利活用方法と、ゲームキャラクターに命を吹き込む新しい方法を理解していただけます。「パーソナルボイス」があなたのアプリに「自分の声での発話」という新しい価値をもたらし、多くのユーザの夢を叶える一助となれば幸いです。
発表日時:2024/08/23 17:25〜 Track A ルーキーズLT(5分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/753db2ce-ca26-4bc8-868d-705e0d771705(外部サイト)
発表者:岡本 龍太郎 / kuromelon257
■発表者からメッセージ
ゲームや声優さん、音声合成に興味がある方は、ぜひ聞きに来てください!
Screen Time APIで生活習慣改善アプリを作ってみた!Screen Time APIって何ができるの?(8/23)
iOS15とともに登場したScreen Time APIですが、皆さんは使ったことがありますか?
iPhoneにデフォルトで搭載されているScreen Timeではアプリの起動時間を制限したり、アプリの利用時間を取得することができます。
そんなScreen TimeはAPIが公開されており、アプリからも使用することができます。
APIを利用すると、アプリのロック画面をカスタマイズすることができたり、Screen Timeを利用する時 間やタイミングをより細かく調整することができます。Screen Time APIは便利なAPIですが、現状使っているアプリが少なく、あまりメジャーではないため知見があまり出回っておりません。また、ドキュメントに記載されていないが、知っておくべきポイントというのもたくさんあります。
このLTでは、Screen Time APIとはなんなのか、一体何ができるのか?、どのようにすれば使えるのかなどScreen Time APIを使うにあたって知っておくと便利なことを実際に生活習慣改善アプリを開発した話を交えながらお話しします。
発表日時:2024/08/23 17:55〜 Track A ルーキーズLT(5分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/16c540f9-d233-4881-8907-9bf018a6cc96(外部サイト)
発表者:Yuto Tomita / tommy__yj
■発表者からメッセージ
意外と知られていない、Screen Time APIについてご紹介します!少しでも興味持たれた方はぜひお越しください!
Core Graphicsの不思議: Simulatorアプリでマウススクロールを実現(8/23)
「Simulatorアプリでマウススクロールを使えたらいいな」
普段アプリ開発をしている中で、このようなことを思ったことはありますでしょうか?Simulatorアプリで画面をスクロールするには、マウスのドラッグ&ドロップで操作する必要があります。
慣れて しまえばなんてことないですが、マウスをいちいち動かすのは地味に不便です。本LTでは、この問題をmacOSのCore Graphicsの機能で解決していきます。
Core Graphicsを使えばユーザイベントを変換することができ、擬似的にSimulatorアプリ上でマウススクロールを使うことができます。「Core Graphicsなんてグラフィック系のライブラリでしょ?」と思ったら大間違い。実はユーザイベントにも深い関わりがあるんです。
あなたの知らないmacOSのハック術、お教えします。
発表日時:2024/08/23 17:35〜 Track B ルーキーズLT(5分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/59f43699-a656-43d7-a3bc-3b4004d8ba28(外部サイト)
発表者:Hiroyasu Niitsuma / cyan_0FBCF9
■発表者からメッセージ
Simulatorアプリのスクロールってどのように操作してますか?
おそらくカーソルをドラック&ドロップして操作していると思うのですが、地味に不便ですよね。
LTでは、この問題を解決してSimulatorアプリの操作性を向上させる方法を伝授しますので、ぜひお越しください!
コンパイル結果を観察してSwiftの効率的なエラー処理メカニズムを紐解く(8/23)
Swift言語におけるエラー処理のメカニズムは、他のプログラミング言語と共通する命名や概念を持ちな がら、その実装と性能の特性において独自のアプローチを取っています。本トークでは、Swiftのエラー処理の仕組みを具体的なコード例とそのコンパイル結果を通じて解説し、他の言語との比較を行います。
発表では、まずシンプルな例を通じて、エラー処理付きの関数がどのようにコンパイルされるかを示します。特に、throwキーワードの周辺で行われる処理、つまり通常の戻り値処理に加えたエラーオブジェクトの伝達、およびtry周辺でのエラー検知と分岐処理に焦点を当てます。
そしてコンパイル結果の観察から、Swiftが如何にして他言語と類似の構文を提供しながら、実行時の負荷を軽減しているかを明らかにします。比較対象としてJavaを挙げて、類似の構文を提供しながらもその実装方法と実行時の性能に違いがある点を簡潔に解説します。
このトークはさまざまなエラー処理方法を一通り学んだSwift中級者へ特にお勧めできるものです。
このトークを通じてtryを利用したエラー処理の性質をより深く理解し、さまざまあるエラー処理方法の中から状況に応じた適切な方法を選択できるようになると考えています。
発表日時:2024/08/23 17:50〜 Track B ルーキーズLT(5分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/42663a11-e8f3-4bfc-aaa1-db7557078b26(外部サイト)
発表者:Ryu Noguchi / rapt_dev
■発表者からメッセージ
5分と短いですが、ちゃんとディープなとこまで紹介する予定ですので、ぜひお越しください!
TextFieldに"2"が入力できなくなったお話(8/23)
ある日、ショッピングアプリのQA中に1つのバグ報告がありました。
ショッピングアプリの主要な機能である「価格の絞り込み」や「カート投入時の数量」などで利用するTextFieldで一律「2」が入力できなくなっていました。
この致命的なバグに、全く想像もつかず、チーム全員が固まってしまいました。最初に疑ったのはソースコードの実装。ですが、ソースコードには特に問題は見当たりませんでした。それでは、特定のOSの問題か?どうもこれも違うようでした。
いったいなぜ「2」が入力できないのか?
そして辿り着いた原因は、我々が全く想像しなかったものでした。笑撃の結末を見逃すな!乞うご期待ください!
発表日時:2024/08/23 18:00〜Track B ルーキーズLT(5分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/d02328aa-c279-4faa-9d56-8ad5079903de(外部サイト)
発表者:hisakioomae/ hisakioomae
■発表者からメッセージ
なぜ2が入力できなくなったのか、一緒に原因究明いただける方募集です!
Concurrency Safe SwiftData - SwiftDataの並行安全な使い方(8/24 )
SwiftDataはCore Dataの後継としてリリースされたAppleの新しいデータ永続化フレームワークです。SwiftDataはCore Dataよりもはるかに簡単で安全に使うことができますが、Swift Concurrencyとともに利用する際はデータ競合に注意が必要です。これは、SwiftDataがCore Dataの上に構築されたAPIであるためです。
そこで本トークでは、SwiftDataをSwift Concurrencyと共に安全に扱う方法を解説します。SwiftDataをこれから利用する方やCore DataでConcurrencyの扱いに苦労した経験を持つ方を主な対象とします。SwiftDataの技術スタックをSwift Concurrencyの観点およびSwiftDataの元であるCore Dataの観点から解説し、SwiftDataを並行安全に扱うための原則、ならびにコーディングにおけるベストプラクティスを紹介します。
本トークによって、参加者の皆さまはSwiftDataをより自信を持って扱えるようになるでしょう。
発表日時:2024/08/24 15:05〜 Track D レギュラートーク(20分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/e589e638-66dd-4d1c-b769-ae695ac536ca(外部サイト)
発表者:ひめし / himeshi_tech
■発表者からメッセージ
レギュラートークのシメにぜひお越しください!
1人で挑むSwiftコンパイラ 〜型システム入門編〜(8/24)
Swiftが好きだけど何もわからん。自分よりSwiftを愛してて詳しい人ばかり。つらい。
Swiftコンパイラを勉強しようとして返り討ちにあった方は多いでしょう。どこから手をつけるとよいかもわからん!
「型推論ハンズオン」[omochi 2019]はSwiftの型推論にフォーカスして学ぶ合宿用ハンズオンです。未実装の部分に正しいコードを書いて型推論器を完成させ全テストをパスできたらクリアです。SwiftSyntaxを使った本物そっくりの言語が題材で、Swiftを理解したい私にはありがたい教材です。私は「Swiftの型推論を学ぼう」[omochi 2024]を聞き、発表の元ネタであるというこのハンズオンで勉強することにしました。合宿は5年前に終了しているため1人で挑みます。
あれ?ハンズオン壊れてるよ?テスト通すどころかハンズオンをコンパイルできなくて挑戦できないよ??
果たして私は5年前のハンズオンをSwift 5.10に対応させSwiftの型推論を†完全理解†できるでしょうか?話すこと
- Swift 5.10対応にもコンパイラの知識を要するハンズオン
- コンパイラは入出力を理解すれば大丈夫(本当に?)
- 生存戦略:サポートを受けて成功体験を積む
- ソロ攻略の感想
発表日時:2024/08/24 15:55〜 Track A LT(5分)
詳細:https://fortee.jp/iosdc-japan-2024/proposal/7a48c2e8-2a6b-4391-84dd-d543c6c3bf09(外部サイト)
発表者:S_Shimotori / S_Shimotori_pub