採択
2024/08/23 16:15〜
Track A
レギュラートーク(20分)

iOS/iPadOSの多様な「ViewController」の徹底解説と実装例

haseken_dev haseken

iOS/iPadOS向けにアプリ開発を行う際に、「ViewController」を意識しないことはほぼないのではないでしょうか?

iOS 2.0の「UIViewController」を皮切りに、様々なViewControllerが提供されてきました。
私たちはこれらを実装し、カスタマイズして利用してきたかと思います。

では、これまでどれだけのViewControllerが登場し、どのような機能が実装可能になったのでしょうか?
このセッションでは、これまでに登場したViewControllerを機能紹介とサンプルコードとともに振り返ります。

想定する方々:
・iOS/iPadOS、それら以外のプラットフォーム向けアプリ開発・企画者

ゴール:
・知らなかったViewControllerを知り、今後の参考にできる
・提供できる画面・機能の概要を把握できる

アジェンダ:

  1. UIViewControllerの進化過程
  2. 紹介対象のFrameworkの概要
     ・MapKit、SiriKitなど
  3. これまでの総数
     ・年代、Framework、OSバージョン別
  4. 多様なViewController紹介
     ・提供機能とサンプルコードの紹介

※対象は「UIViewController」または「UINavigationController」を継承したクラス

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

エンジニアのための効率的学習戦略: 複雑さに立ち向かうためのガイド

stzn3 shiz

エンジニアとして、私たちは日々多岐にわたる知識やスキルを学び、さまざまな問題を解決しています。たとえば、開発する機能の仕様やドメインの知識、プログラミング言語やライブラリの使い方など、多方面にわたる学習が必要です。これらの学習を積み重ねることで、より複雑な問題にも対処できるようになり、スキルアップも図れます。

しかし、学習には時間と労力がかかります。集中力や注意力も不可欠で、「覚えることが多くて大変だ…」「なかなか身に付かない…」と悩んだり挫折したりすることもあるでしょう。もしかしたら、それは学習方法が原因かもしれません。

効率よく学習を進めるためには、脳の仕組みを理解し、それに合わせた方法を取ることが重要です。本セッションでは、以下の点に焦点を当てます。

  • 学習の正体
  • 脳に負荷をかけ過ぎない学習戦略
  • 努力を効率化する学習方法

これらのトピックを中心に、技術的なスキルの習得に焦点を当て、今後の学習に活かせる考え方や方法を皆さまと共に探ります。

「業務で必要だから」「キャリアアップのため」「おもしろそう」など、学習理由は人それぞれ異なりますが、一つスキルが身に付くとさらに新しいスキルが身に付きやすくなり、世界がどんどん広がります。

このセッションを通じて、皆さまが日々の学習において具体的な改善策を見つけ、より効率的にスキルを身につける手助けができれば幸いです。

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

これからの時代の新標準!テストフレームワーク「swift-testing」への移行とトラブルシューティング

psnzbss uetyo

Swiftでテストを書く際、Xcodeに組み込まれたテストフレームワークである XCTest を利用することが多いかと思います。しかし、XCTest は当初、Swift ではなく Objective-C でテストを書くことを目的として作成されました。そのため、Swift5.5 から導入された Swift Concurrency への対応が不十分であるという問題点があります。

そこで登場したのが新しいテストフレームワークである swift-testing です。
swift-testing は、非同期プログラミングをより効果的にテストできるように設計されており、Swift6 からはこのフレームワークの利用がデフォルトになると考えられています。

このLTでは、以下の内容について紹介します。

  • swift-testing と XCTest の違い
  • swift-testing への移行作業
  • swift-testing を使用する際のベストプラクティスとトラブルシューティング
8
採択
2024/08/23 10:50〜
Track B
レギュラートーク(20分)

iOSの隠されたAPIを解明し、開発効率を向上させる方法

noppefoxwolf noppe

iOSは、SwiftUIやUIKitなど複数のフレームワークで構成される強力なプラットフォームです。私たちのアプリは、これらのフレームワークが公開しているAPIを利用して構築しますが、実際にはまだ見ぬ多くの機能がフレームワークに隠されています。

このトークでは、iOSの隠されたAPIを解き明かし、その活用方法について詳しく説明します。具体的には、以下のポイントに焦点を当てます。

  1. 隠されたAPIの発見方法: なぜこれらのAPIが隠されているのか、その背景とともに、どのようにしてこれらのAPIを見つけるかを解説します。
  2. API設計の謎: 隠されたAPIを知ることで、フレームワークの設計を考察します。
  3. 複雑なテストの実現: 隠されたAPIを活用することで、どのようにしてテストの効率を上げ、カバレッジを拡大できるかを紹介します。
  4. 迅速なモックアップの開発: 隠されたAPIを利用して、プロトタイプやモックアップを迅速に作成する方法について実例を交えて解説します。
  5. リスクと対策: 隠されたAPIを利用する際のリスクと、それに対する対策についても触れます。
    このトークを通じて、参加者はiOSの隠されたAPIの魅力とその活用方法を理解し、開発力を一段と高めることができるでしょう。
10
レギュラートーク(40分)

コードレビューマスタリー:ガイドラインとメトリクスを活用したチームの成功

akkiee76 Akihiko Sato

コードレビューの場面で「定量的なレビューが難しい」「レビューアーの育成が停滞している」と感じたことはありませんか?これらは多くのチームが直面する共通の課題です。

本セッションでは、レビューガイドラインを活用した定量的なコードレビュー手法を紹介し、チームの技術力向上を目指します。実際に以下の7つの観点について具体的に説明します。

  • 設計
  • 理解容易性
  • 命名
  • コードスタイル
  • 機能要件
  • ドキュメント
  • テスト

これらの観点をSwiftデザインパターンの具体例を交えて解説し、定量的なコードレビュー手法を学びます。例えば、設計では責務原則、命名ではモデリングのベストプラクティスを紹介します。

さらに、レビューコメントから技術力を可視化するKPI戦術も紹介します。この手法でチームメンバーの弱点を明確にし、育成やオンボーディングの指標として活用できます。どのようなメトリクスを収集し、分析するかを詳しく説明します。

また、PR-AgentやCodeRabbitを活用したAIコードレビューの手法や、効率化するプロンプトも紹介します。属人的なコードレビュー前にAIを用いることで手戻りを削減し、生産性を向上させる方法を具体的に紹介します。

このセッションに参加することで、効果的なコードレビュー戦術を学び、チームの技術力向上に役立つ実践的な手法を得ることができるでしょう。

LT(5分)

祝10周年🎉 Swift 1.0 から 6.0 までの歴史を振り返る

treastrain treastrain / Tanaka Ryoga

あなたが Swift とはじめて出会ったときのバージョンはいくつだったか覚えていますか…?
私たちはそれぞれ異なるバージョンで Swift と出会い、その進化を目の当たりにしてきました。

Swift が一般に発表されたのは2014年の Apple WWDC。その後、Xcode 6 に搭載されて Swift 1.0 が私たちのもとへとやってきました。
モダンで安全、速くてインタラクティブであるとされ、プロトコル指向プログラミングの考え方を持ち、Objective-C との連係によって過去のコードとも共存できるなど、私たちはその魅力に取り憑かれました。

その後 Swift はオープンソース化、破壊的変更、ABI 安定、対応プラットフォームの拡大…… といった歴史を経ながら、「Swift らしさ」という概念も築き上げてきました。

そして2024年、Swift が10周年を迎える今年、バージョンは 6.0 に到達しようとしています。
この LT では Swift 1.0 から 6.0 まで、どのような変化を遂げてきたのかを一気に振り返ります。飲み物を片手に、みなさんと「あぁ、そんなこともあったなぁ!」と懐かしみつつ、みなさんと一緒に Swift の未来への期待を膨らませる時間にします。

10
採択
2024/08/23 15:40〜
Track D
レギュラートーク(20分)

SwiftのSIMDとその利用方法

kntkymt kntk

CPUにはSIMDと呼ばれる、一つのCPU命令で複数の値を演算できる高速演算機能が存在し
画像・動画・音声処理などパフォーマンスが求められるシーンで広く活用することができます。
実はSwiftにもSIMDがStandard Libraryに存在しており、VisionOS開発にも用いるRealityKitでも必要になることがあります。

このトークでは、SwiftのSIMDの利用方法を解説し、
パフォーマンスが求められるシーンでSIMDを利用できるようになったり
RealityKitなどでSIMD出てきた際に恐れず正しく使えるようになることを目指します。

具体的には以下のトピックを取り扱います。
・SIMDの基本的な型と役割
・SIMDの演算子と用途
SIMD自体の概要も説明しますのでSIMDを知らない人でも理解できる内容にしています。

また、SwiftのSIMDの設計アプローチも同時に解説することでSIMDへの理解を深めます。
Swiftは演算子オーバーロードやジェネリクスなどを活用し、C++などのSIMDに比べ簡潔にSIMDを利用することができます。

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

暴走のウホーレン 〜想いってのはvimrcにしないと伝わらないんだぜ〜

the_uhooi uhooi

「Vimは設定している時が一番楽しいんだよ(ウホーレン)」


有名なテキストエディタのひとつに「Vim(ヴィム)」があります。
私はVimが好きです。もっというとVimから派生した「Neovim(ネオヴィム)」が大好きです。

私はNeovimを使ってiOSアプリ開発できないか、日々模索しています。
Microsoftが公開している「LSP(Language Server Protocol)」や「DAP(Debug Adapter Protocol)」などのプロトコルを使い、かなりいい感じにコーディングできるようになってきました。

NeovimにはLSPやDAPのクライアントプラグインが存在します。
それを使うことで、Appleが公開している言語サーバー(SourceKit-LSP)や、サードパーティ製のLLDB拡張(CodeLLDB)をNeovimから呼び出して使えます。
つまり、Neovimで補完やシンタックスハイライト、ブレークポイントを貼ったデバッグなどが可能になります。

本LTでは、まず私のNeovimによるSwiftのライブコーディングをお見せし、次にそれを実現するための技術をキーワードベースで紹介します。


「必要なものはvimrcだけだったのです。必死に積み上げてきたvimrcは決して裏切りません(ウェルン)」

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

Swift on Windowsでデスクトップアプリ開発する方法を学ぼう

arasan01_me あらさん

Swiftにおけるクロスプラットフォーム対応は、この1年で目覚ましい発展を遂げたトピックです。その中でも、Windows環境で動かすSwift、つまりSwift on Windowsは非常に大きな変化を迎えました。
iOS、iPadOS、macOS向けに開発したアプリケーションやフレームワークをWindowsでも動かせるようにすることは、非常に価値のある取り組みです。

しかし、Swift on Windowsに挑戦するためにはどのように取り組めば良いのかご存知でしょうか?

本トークでは、Swift on Windowsで開発を始めるための方法と、Swift Packagesで開発したライブラリをWindowsに持ち込む方法についてお話しします。
具体的には、GRDB.swiftやThe Composable ArchitectureをWindowsで動くようにした取り組みから学んだWindows対応の方法や、Swift on Windowsで開発したアプリを配布する際に考える必要があることなどを紹介します。

このトークを通じて、Swift on Windowsを活用して世界のデスクトップOSシェアの7割を超えるWindows向けにプロダクトを提供する新たな選択肢を紹介します。また、自信を持ってクロスプラットフォーム対応のSwiftコードを書くための考え方も提供します。

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

Swift on Windowsでデスクトップアプリやプラグインを開発する方法を学ぼう

arasan01_me あらさん

Swiftにおけるクロスプラットフォーム対応はこの1年で目覚ましい発展を遂げたトピックです。その中でも、Windows環境で動かすSwift、つまりSwift on Windowsは非常に大きな変化を迎えました。
iOS、iPadOS、macOS向けに開発したアプリケーションやフレームワークをWindowsでも動かせるようにすることは、非常に価値のある取り組みです。

しかし、Swift on Windowsに挑戦するためにはどのように取り組めば良いのかご存知でしょうか?

本トークでは、Swift on Windowsでの開発を始めるためのセットアップ方法、ライブラリの選定や自らによるWindows対応、クロスプラットフォームの設計、デバッグのコツなどを詳しく話します。
具体例として、スタンドアロンのWindowsアプリの開発方法や、Open Broadcaster Software(OBS)のプラグイン開発を例に上げて、実践的な開発方法を解説します。

このトークを通じて、Swift on Windowsを活用して世界のデスクトップOSシェアの7割を超えるWindows向けにプロダクトを提供する新たな選択肢を紹介します。また、自信を持ってクロスプラットフォーム対応のSwiftコードを書くための考え方も提供します。

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

Engineers don't get it! Communication Gaps with Business Side

kent_strong_dev Kent Strong

技術者とマネージャーの間に存在する終わりなき争い。エンジニアとビジネス側の間で発生する認識の相違。これらはしばしばプロジェクトの進行を阻む大きな障害となります。

ビジネスサイドやマネージャーは主に顧客満足を中心にものを見ています。一方で、開発者は自分が作っている製品・プログラムを中心にものを見ている場合が多く、場合によっては認識の齟齬が発生します。

例えば、顧客の要望が適切に管理されていない場合、あたかもわがままな変更要求に付き合わされているとエンジニアには思えてしまうことがあります。

一方で、コードのリファクタリング、自動テストの導入、新技術の導入など、ビジネスサイドや顧客にしっかりと意義が伝わっていない技術的な変更は、単にお金や時間を無駄に消費するだけと捉えられることも少なくありません。

本セッションでは、

  • プロジェクトマネジメントの視点(PMBOKなど)
  • ビジネスサイドの視点(NLPコミュニケーション、制約理論など)
  • 筆者の経験から実際に有効だった戦略
    を交えながら、こうした摩擦の原因を解明し、エンジニアリングとビジネスの間での効果的なコミュニケーションと協力関係を築くための実践的な知識を紹介します。
1
レギュラートーク(20分)

SF Symbols自作の極意

Kyomesuke Kyome

SF SymbolsはAppleプラットフォーム向けのアイコンライブラリーであり、iOSアプリ開発における強力なツールです。システムフォントにシームレスに統合されるため、コンテキストやユーザーのアクセシビリティ設定に従い、スケールやウェイトの調整もOSが自動でしてくれます。現在は5000を超えるシンボルが存在しており、アニメーション効果により表現豊かなインターフェースの実装が可能となっています。

そんなSF Symbolsですが目的に合ったものが必ず見つかるというわけでもなく、意外とSF Symbolsだけでは事足りないということが多々あります。そこで、シンボルの代わりとして画像を使うとスケールやウェイトの調整ができないため、SF Symbolsを自作するのが最善です!

しかし、SF Symbolsの自作にあたって、ベースラインやカーニングなどのグリフ要素を調整してシステムフォントや他のSF Symbolsに馴染ませたり、パスのアンカーポイントとコントロールポイントの写像を厳守するようにしないと有効なSF Symbolsにならずアプリで使えません。本トークでは私のSF Symbols作製経験を基に自作の極意を紹介します。

話すこと
・自作の手順
・コツ、押さえておくべきポイント
・既存シンボルのカスタマイズ

話さないこと
・シンボルのデザイン手法

9
採択
2024/08/22 16:45〜
Track B
レギュラートーク(20分)

App Clipの魔法: iOSデザイン開発の新時代

log5 log5

「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デザイン共有の最新アイデアが気になる皆様、よろしければぜひお越しください!

10
LT(5分)

SwiftでWebサイトを作ってみよう

Ktombow1110 とんとんぼ

Ignite は Swift 製の静的 Web サイトビルダーで、表現力豊かでパワフルな API を提供し、あらゆるデバイスで優れた機能を発揮する美しい Web サイトを構築します。
HTML や CSS の知識がなくても、SwiftUI のような構文を使用して素晴らしい Web サイトを構築できます。

本 LT では、試しに iOS 関連のニュースを定期的に配信する Web サイト「iOS Osushi🍣」を Ignite にリプレイスする過程で得られた知見から以下のポイントについて解説します。

  • Ignite の基本機能と使い方
  • 初公開時から追加された新機能

このLTを通じて、Swift と Ignite を使った素晴らしい Web サイトを作る方法を学ぶことができます。

ルーキーズLT(5分)

Swift で作る美しい Web サイト - Ignite活用法

Ktombow1110 とんとんぼ

みなさんは Swift で Web サイトを作ったことはありますか?
Ignite は Swift 製の静的 Web サイトビルダーで、表現力豊かでパワフルな API を提供します。これにより、あらゆるデバイスで優れた機能を発揮する、美しい Web サイトを構築できます。
HTMLやCSSの知識がなくても、SwiftUI のような構文を使用して素晴らしいWebサイトを作成できます。

本 LT では、試しに iOS 関連のニュースを定期的に配信する Web サイト「iOS Osushi🍣」を Ignite にリプレイスする過程で得られた知見を紹介します。具体的には、以下のポイントについて解説します。

  • Ignite の基本機能と使い方
  • 「iOS Osushi 🍣」での導入プロセスと得られた成果

このLTを通じて、Swift と Ignite を使った素晴らしい Web サイトを作ってみましょう!

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

Swiftで簡単に作るWebサイト - Igniteの活用法

Ktombow1110 とんとんぼ

Ignite は Swift 製の静的 Web サイトビルダーで、表現力豊かでパワフルな API を提供し、あらゆるデバイスで優れた機能を発揮する美しい Web サイトを構築します。
HTML や CSS の知識がなくても、SwiftUI のような構文を使用して素晴らしい Web サイトを構築できます。

本トークでは、試しに iOS 関連のニュースを定期的に配信する Web サイト「iOS Osushi🍣」を Ignite にリプレイスする過程で得られた知見を紹介します。具体的には、以下のポイントについて解説します。

  • Ignite の基本機能と使い方
  • 初公開時から追加された新機能
  • 「iOS Osushi🍣」での導入プロセスと得られた成果

このトークを通じて、Swift を使った Web サイト構築にチャレンジしてみましょう!

2
LT(5分)

始めよう!カンファレンス動画鑑賞会

hironytic ひろん

iOSDCをはじめとして、様々なテックカンファレンスが過去のトーク・セッションの動画を公開してくださっています。みなさんはそれらの動画をうまく活用できているでしょうか?

私たちは、そういったカンファレンス動画を少人数で集まって鑑賞する会を開催しています。1〜2ヶ月に一度くらいのペースで活動をしていて、開催回数は25回を超えました。わいわい楽しく開催するのに必要な十分な知見も溜まってきたので、その開催方法をみなさんに共有します。

誰にでも始められる再現性の高いものになっているので、ぜひみなさんも鑑賞会を開いてみてください!

  • なぜ鑑賞会をやるのか
  • 鑑賞会の具体的な内容を紹介
  • 開催を重ねて得られた様々な知見
    • つらい部分とその乗り越え方
    • あると便利なもの
    • 思わぬ相乗効果
3
レギュラートーク(20分)

誰のための機能? フルリプレイスで学んだ、活かした機能と捨てた機能

k_torishima Koji Torishima

iOSアプリケーション開発におきましては、市場の規模や開発ツールの成熟度、エコシステムの安定性といった観点から「成熟期」を迎えていると思います。そんな中、サービス開始から10年以上継続しているサービスも多くなってきており、フルリプレイスを進めているアプリも多く見受けられるのではないでしょうか。
私自身、現在iOSアプリのフルリプレイスに携わり、仕様の再設計から始まり、UI、UXの再設計、機能実装など、多くの意思決定をチームと共に行って参りました。

本トークでは、実際にリプレイスを進めていく中で、以下の観点を元にお話しさせていただきたいと思います。
・リプレイスを進めていく上での判断基準をどのように設定したのか
・どのように意思決定を進めて行ったのか、
・iOSアプリエンジニアとしての知識を活かし、どのようにチームに貢献をしたか
・成功例、失敗例、悩んだところなど

「そろそろやらなきゃな」、「リプレイス考えているよ」、「すでに始まっている」など、今現在、そして未来のプロダクトのために動かれるすべてのエンジニアの方々に、
ちょっとだけでもプラスになるようなトーク内容としたいと思います。

以上です。

1
ルーキーズLT(5分)

実際で学校に使われている、ARを使った視線入力アプリを紹介します。

kj3music こまじ

はじめまして、私は特別支援学校の教員をしてます、駒路と申します。今回初めて参加してみました。
参加した理由としては、昨年アプリを作りまして、それをいろんな人に知っていただければと思ったからです。
どのようなアプリかと言うと、AR(拡張現実)と言う技術を使って、目だけで操作ができるアプリをつくりました。
このようなアプリは今までいくつかあったのですが、他のアプリとの1番の違いは、このアプリは、障害を持った生徒のために作られたということが1番の違いです。つまり、「教材」です。
重い障害を持った生徒がどのようなアプリを求めているかどうかを考え、作成に至りました。
また、ギガスクール構想端末(1人1台端末)で動くと言うことも大きな特徴の1つです。重い障害を持った生徒は、iPadをもらっても活用する機会があまりないため、何とか活用する機会を作るために、このようなアプリ作ったという背景もあります。
具体的なアプリは、お絵かきアプリやVOCAアプリになります。視線で絵を描いたり、視線で絵を選択することで、自分の考えを表出することにつながります。
障害を持った方の福祉用アプリという位置づけですが、誰でも簡単に使えるようなアプリになっておりますので、もしご興味がございましたら、ダウンロードしてみてください。
以上です。

1