ルーキーズLT(5分)

iOSアプリの視点からアクセシビリティを理解する

naruogram naruogram

最近、アクセシビリティという言葉をよく聞くようになりましたが、実際に導入、考慮をしているアプリはまだまだ少ない現状です。
身近なもので言うと、文字サイズの対応もアクセシビリティの一つです。
※この概要でのアクセシビリティとは、「身体の状態や能力の違いによらず様々な利用者がアプリやサービスを円滑に利用できること」と定義します。

アクセシビリティを考慮することによるメリットは多くあります。 (例) 利用できる人が増える...

今回のトークで話す内容

  • iOSアプリでアクセシビリティ対応の導入
  • iOSアプリでアクセシビリティ対応をする際に気をつける点
  • iOSアプリでアクセシビリティに対応できているかをチェックする方法

このトークの後には、明日から導入できるような話をしますので、アクセシビリティ考慮をしたいと思っている方の力になれたらなと思います!

3
ルーキーズLT(5分)

FlutterエンジニアからiOSエンジニアになった話

naruogram naruogram

FlutterエンジニアをやっていてSwiftにも挑戦してみたい! iOSエンジニアをやっていてFlutterに挑戦してみたい!ってことありませんか?

今回の登壇で話す内容

  • FlutterエンジニアからiOSエンジニアになっても大丈夫なのか
  • Flutterで身につけた技術はiOSでも使えるのか
  • iOSでの苦戦した技術などについて(RxSwiftなど)

今回の登壇は、現役大学生が長期インターンなどの実際の現場で経験した話に基づいてお話しさせていただきます。

FlutterからiOSエンジニア、iOSからFlutterエンジニアに移行する際に、不安や障壁の解消をしたいと思います!!

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

SQLiteの視点からAppleのデータフレームワークのベストプラクティスを探求する

Ckitakishi Yuhan Chen

Core Dataを用いると、背後のデータベース(SQLite)の知識がなくとも、簡単にデータの永続化を行うことができます。しかし、SQLiteの基本知識があればより高性能で安定したアプリを構築できるでしょう。今後、他のSQLiteベースのデータフレームワークを使用する際にも、これらの知識は非常に役立つはずです。

以下のようなトピックに興味がある方は、ぜひ一緒に探求しましょう!

  1. インデックスが検索やソートを高速化する仕組みはなんでしょうか?使うにはコストもかかるため、「損をしない」ためにはどう注意すべきでしょうか?
  2. BLOBの保存において、SQLiteはファイルシステムより35%速いと言われるが、データベース内と外部ファイルどこに保存すべきでしょうか?
  3. データベースをコピーする時、.sqliteファイルを直接コピーするのはなぜ危険なのでしょうか?

残りはトークで!

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

MapKit vs Google Maps SDK:最適な選択を導き出すための比較と実用例

satoshoco Shoko Sato

MapKitとGoogle Maps SDKは、地図機能を提供するアプリケーションにとって重要なフレームワークです。それぞれに独特な機能やパフォーマンスがあり、使用状況や要件によって最適な選択は異なります。
本トークでは、これら二つのフレームワークを徹底的に比較し、それぞれの独自性、長所、短所、そして適用シーンの詳細や実際のアプリケーション開発での具体的な事例を解説します。フレームワーク選択の際に影響を及ぼす可能性のある要素、例えばアプリのユーザーインターフェース、パフォーマンス要件、開発の複雑さ、コストなどを考慮することで、アプリケーションの要件と目標に最適なフレームワークの選択をサポートします。
このトークを通じて、フレームワーク選択のプロセスをより理解し、現時点での最適な選択を提示します。

6
LT(5分)

SwiftUI VS Storyboard,Interfacebuilder,UIKit 生産効性の比較

shichimi_0_o SwiftUI素晴らしい!けど、 Storyboard,UIKitについて今一度、再考しませんか💪🏿

SwiftUIは素晴らしいと思いますが、実際の開発現場では、Storyboard,InterfaceBuilder,UIKitを用いての開発の方が、生産性を上げると感じています。
SwiftUIはわかりやすく、コードでの構築になりますので、実装のしやすさを考慮して設計されており、難易度だけでいうと、UIKitを用いて、コードでの実装をするよりは簡易であると感じます、また読みやすさでもSwiftUIでの実装は優れておりますが、やはりコーディングを行うという事は避けられません。
Storyboardでしたら、D&D💪🏿でマウスでレイアウトを構築できます。
また、レイアウトも、Autolayoutを用いてマウスで構築できます。
その点を鑑みますと、読んで構築するUIより、見て構築するUIの方が楽ではないでしょうか?

1
ルーキーズLT(5分)

FlutterでSwiftUIぽい書き方を再現する

naruogram naruogram

Flutterを使っていて、UIの構築する際に、SwiftUIぽい書き方をしたいと思いませんか?

最近の海外でFlutterをSwiftUIぽい書き方をするのが流行っています。その導入方法からメリット・デメリットを解説していきたいと思います。

今回はSwiftUI経験者、FlutterでSwiftUIぽい書き方を導入してみたい人向けの内容です。

FlutterでSwiftUIぽい書き方をするメリット

  • iOSエンジニアがすぐFlutterでUIを組むことができる
  • Flutter独特のネストを解消することができる
  • FlutterエンジニアがSwiftUIをキャッチアップする機会になる

このトークがSwiftUIの障壁、Flutterの障壁をなくすことができたら幸いです。

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

できる!Xcode Cloud完全移行

watura

Xcode Cloudは、2022年夏にリリースされたAppleのCI/CDです。

これまでCircle CIで行っていたテストやApp Distribution、AppStoreConnectへの配信を全てXcode Cloudに移行しました。
移行したことで、アプリのテストや配信がよりスムーズになりました。

さらに、アプリの配信をTestFlightに移行し、効率化のためのAppStore Connect APIを使うスクリプトも作成しました。
しかし、スナップショットテストやdSYMのアップロードなど、移行には一筋縄で行かない点もたくさんありました。
他のタスクで使用しているCIについても触れながら、Xcode Cloudのメリットについてお話しします。

Xcode Cloudを使いこなして、より安価でスムーズな開発を実現しましょう!

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

CoreHaptics完全入門

shiba1014_ Satsuki Hashiba

Hapticsとは、iPhoneを操作しているときに「ポコッ」と振動するアレです(「ポポポポ」とか「ブーーーン」とかもあります)。
UXを向上させたりアプリのらしさを演出したりできる強力なフィードバックツールですが、その扱い方は公式ドキュメントを軽く読むだけでは理解できないほど難解です。
このトークを聞いて、あなたのアプリをhaptics付きのより魅力的なものにしましょう。

このトークでは以下のことをお話をします:

  • CoreHapticsの使い方
  • Hapticsを構成するパラメータの解説
  • 動的なhaptics/オーディオ付きのhaptics
  • Hapticsのベストプラクティス

このトークを聞くと以下のことができるようになります:

  • 複雑なhapticsを実装できる
  • Hapticsを導入すべき箇所がわかる
  • デザイナーさんとの協業方法がわかる
12
レギュラートーク(40分)

街中がキャンバスに!Geospatial Creatorではじめるお手軽VPSの世界

ikkou HEAVEN chan / ikkou

昨年のiOSDC JapanではARKit 6のLocation Anchorをはじめとする“Visual Positioning Service/System”のVPSの世界を紹介しました。
その後、Geospatial Creatorが登場したことにより、VPSを生かしたコンテンツ作りがより身近に、よりお手軽になりました!
文字通り街中をキャンバスとして、現実世界とバーチャルな世界を統合できます!

VPSの最新動向にあわせて、Geospatial Creatorの基礎からVPSコンテンツの具体的な制作方法までお伝えします。百聞は一“体験”にしかずなので、iOSDC Japanの会期中は、実際に会場付近などでGeospatial Creatorを使ったVPSコンテンツをお試しいただけます!

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

きたるべきSpatial Webの世界を見据えたWebXRのこれまでとこれから

ikkou HEAVEN chan / ikkou

iOSDC Japan 2020、2021で発表してきた『iOSではじめるWebAR』シリーズの最新版です!

先日のWWDC23でVision Proが発表されましたが、あわせてSafariのレンダリングエンジンであるWebKitがWebXR Device APIに対応することも公開情報として発表されました。

これまでSafariがWebXR Device APIへの対応を明言してこなかったことも、3Dモデルを表示するAR Quick Lookやmodel要素もすべてはこのVision Proを見据えてのものだったと今ならわかります。

Safariが歩んできたWebXRのこれまでと現状、そしてきたるべきSpatial Webの世界を見据え、想定されるWebXRのこれからをお伝えします。

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

Swift Concurrency Debugging ~安全に利用し、既存のコードとスムーズに連携するための3つのポイント~

stzn3 shiz

Swift Concurrencyは、強力な型システムによって、同時並行処理時のデータ競合防止の静的な保証を目標としています。
しかし、クラッシュの発生や期待したスレッドで処理が実行されないなど、実際はさまざまな問題が起きます。これは、デフォルトではSwift6未満で完全なSendabilityチェックが行われない、既存のシステム(DispatchQueueなど)に対してコンパイラが静的に安全性を保証できない、などの原因が考えられます。
そこで、これを補完するための多くのツールが、公式から提供されています。
本トークでは、
「事前に防ぐ」
「問題をすぐに検知する」
「原因を調査する」
という3つのポイントで活用できる、さまざまなツールについて見ていきます。
Swift Concurrencyをより安全に利用し、既存のコードとよりスムーズに連携するためにできることを一緒に整理してみませんか?

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

SwiftUI Gridで効率的かつ柔軟なUIレイアウトを実現しよう

os_yoshi yoshitaka

iOS 16で登場したGridは、VStackやHStackを使用した従来の2次元のUIレイアウト手法に比べ、より柔軟かつ効率的なUIの実装を可能にします。特に異なるデバイスや画面サイズでの表示において力を発揮するでしょう。しかしながら、VStackやHStackを使用した実装で十分対応できているのにあえてGridを使う必要があるのか?既存の実装をわざわざGridに置き換える価値があるのか?という疑問を抱くかもしれません。

本トークでは、Gridを使用して実現できる様々な可能性、それぞれの実装方式におけるメリットとデメリットについて、同じデザインを従来のVStackやHStackの実装とGridを用いた実装で実現し、比較しながら考察していきます。

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

新規事業におけるiOSアプリ開発の技術選定

_funzin funzin

新規事業を開始する際、技術選定は重要な意思決定の一つとなります。アプリ開発において、選択した技術は事業の成果を大きく左右する可能性があります。この記事では、昨年リリースした「クラシルリワード」のiOSアプリ開発における技術選定の過程を紹介します。

技術選定は新しい技術の採用可能性、チームメンバーのスキルセットなど様々な要因により変動します。今回のトークを通して我々の経験が、皆様の新規事業開発やアプリ開発における技術選定に役立てば幸いです。

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

OpenAPIを活用したiOSアプリ開発

_funzin funzin

OpenAPIを利用することでAPIの設計・ドキュメント化・テストなどを効率的に管理することが可能です。WWDC2023でのswift-openapi-generatorの登場により、iOS開発におけるOpenAPIの活用に新たな可能性が広がりました。このトークでは、実際のプロダクト開発におけるOpenAPIの利用事例として、API ClientのConcurrency化やRequestとResponseの自動生成などを取り上げます。また、swift-openapi-generatorの登場によって、Swift Package Pluginを使用したクライアント側のコード生成の自動化など、開発プロセスの変化についても解説します。

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

konan::abort() に対する防衛術 < ヤミノクラッシュニタイスルボウエイジュツ > : デラックス・エディション

kuroruri くろるり

KotlinMultiplatformForMobileの導入によりアプリ開発者はビジネスロジックの差異という問題を乗り越える事が出来ましたが、一方で独自の問題も待ち構えています。
KMM内でerrorがthrowされそれがKMM内で適切にハンドリングされなかった場合にアプリはクラッシュし、おまけにそのクラッシュはkonan::abort()という一つのクラッシュに纏められてレポートされます。
どの処理でクラッシュしたか詳細なStackTraceは提供さておらず、この状態からクラッシュを解消するための道筋を立てる事は困難でしょう。
本セッションではそのような原因不明な闇のクラッシュに対し、起きる前後それぞれで出来ることを考えていきます。

40分拡大版ではそも何故Kotlin側でerrorがハンドリングされない設計になってしまうのか、検査例外に関する歴史を踏まえた考察もしていきます。

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

konan::abort() に対する防衛術 < ヤミノクラッシュニタイスルボウエイジュツ >

kuroruri くろるり

KotlinMultiplatformForMobileの導入によりアプリ開発者はビジネスロジックの差異という問題を乗り越える事が出来ましたが、一方で独自の問題も待ち構えています。
KMM内でerrorがthrowされそれがKMM内で適切にハンドリングされなかった場合にアプリはクラッシュし、おまけにそのクラッシュはkonan::abort()という一つのクラッシュに纏められてレポートされます。
どの処理でクラッシュしたか詳細なStackTraceは提供さておらず、この状態からクラッシュを解消するための道筋を立てる事は困難でしょう。
本セッションではそのような原因不明な闇のクラッシュに対し、起きる前後それぞれで出来ることを考えていきます。

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

リアクティブプログラミングと向き合う 〜RxSwiftの代わりは結局何なのか〜

tomsan96 とむ

ここ数年でCombineやSwift Concurrencyが登場し、WWDC2023ではObservationの発表もありました。
現在RxSwiftに代わる様々な選択肢があります。
一方で実際のプロダクトへの導入となるとOSバージョンの制約や学習コストなどの課題もあります。
CombineまたはSwift Concurrencyだけで対応する、何かと何かを併用する、そもそもリアクティブプログラミングが必要かなど結局どうすべきか悩んでいる方も多いのではないでしょうか。
このセッションでは、最新のトレンドや今後の展望を踏まえながら選択肢を比較し、スキルマーケット『ココナラ』アプリにおける具体的な導入方針についてお話します。
移行先の選択肢や考え方・テスト設計について具体的な例を学ぶことで、既存プロジェクトにおける移行や新規プロジェクト・個人開発でどの技術を用いるかの判断材料を得られます。

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

Macroの時代到来!いろいろなMacroを作ってあなたのSwiftライフをより快適に

ryu_hu03 りゅう

ついにSwift5.9からMacroが使用できるようになります。
SwiftのMacroはCのプリプロセッサマクロのように単純な文字列置換ではなく、ASTを元に任意のコードを展開することができるものです。
Macroの登場により、ボイラーテンプレートは消えさり、あなたのSwiftライフはより快適になること間違いなしでしょう。
そこで本トークでは、Macroを実装するのに必要なSwiftSyntaxの基礎をはじめ、さまざまなMacroの案を考え、実装していきます。

内容:

  • SwiftSyntaxの基礎
  • Macroでできること
  • Macroの実装
  • Macroのデメリットについて
12
ルーキーズLT(5分)

~新卒2年目の挑戦~大規模アプリのリアーキテクチャを推進する

oskmr_ miseri

私たちのチームではSwift Concurrency対応やSwiftUIの導入に向けてFluxベースのアーキテクチャを脱却し、全面的なリアーキテクチャを進めています。
そんなチームである日突然リアーキ担当に任命された新卒2年目の私。
Swift Concurrencyヨクワカラナイ、大規模なプロジェクト初めての若手エンジニアがどのようにしてプロジェクトを推進したのか、その挑戦を5分で紹介します。

本トークでは若手がリーダーシップをとって大きなプロジェクトを推進する際の視点から、以下の内容に焦点を当ててお話しします。

  • リアーキテクチャにいたる背景と課題
  • 新しいアーキテクチャの設計
  • チームで浸透させるための取り組み
11
レギュラートーク(20分)

iOSアプリ開発における効果的なUnitTestの戦略とその実装

h1d3mun3 h1d3mun3

バグのない安全なプログラムであることを確認する方法の一つに、UnitTestがあります。
適切に構築されたUnitTestがあれば、安全なプログラムであることを何度でも高速に確認することができます。
昨今ではXcode CloudなどのCI/CDツールの導入が容易になり、Unit TestをCI上で実行することでプロダクトの品質を高く保ったまま開発を進めることができます。

UnitTestはiOSエンジニアであれば比較的気軽に始められる一方、UnitTestでどこをテストしなければならないのかなど、テストに関する考え方を抑えておかないと適切にUnitTestが構築できない場合があります。
本セッションでは適切なUnitTestの構築のために必要なテスト戦略と、UnitTestの考え方についてお話し、実装について触れます。
皆様がUnitTestに少しでも興味を持っていただければ幸いです。

4