Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UIKitのMapKitを SwiftUIに移行できるのか
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kazumalab
January 21, 2025
Technology
73
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UIKitのMapKitを SwiftUIに移行できるのか
「集まれSwift好き!Swift愛好会Vol.91 @dely」での発表資料です
kazumalab
January 21, 2025
More Decks by kazumalab
See All by kazumalab
今、CTOに求められるものとは?
kazumalab
0
370
Wedding × VRについて
kazumalab
0
110
Other Decks in Technology
See All in Technology
GoでCコンパイラを作った話
repunit
0
130
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
430
シンガポールで登壇してきます
yama3133
0
250
AI時代の闇と光
tatsuya1970
0
110
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
440
伝票作成AIエージェントを支える、LLMOpsとインフラの選択肢 / AICon2026_takeda
rakus_dev
0
140
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
420
kaonavi Tech Night#1
kaonavi
0
120
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
220
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
2
430
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
1
550
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
280
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Code Review Best Practice
trishagee
74
20k
Technical Leadership for Architectural Decision Making
baasie
3
440
For a Future-Friendly Web
brad_frost
183
10k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
880
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Designing for Timeless Needs
cassininazir
1
380
Transcript
UIKitのMapKitを SwiftUIに移行できるのか
自己紹介 武田 和馬(kazumalab) 株式会社LinQというスタートアップの会 社にいます SwiftとRubyを書きます 位置情報共有 (whoo)とかショートドラマ (DramaTik)のアプリとか作ってます FRUITSZIPPERオタクです
今回のテーマ ”そろそろMapKitをSwiftUI化 できないか? ”
□MKAnnotationViewを継承した AnnotationViewを作って... □MapViewにregisterして... □MKMapViewDelegateのviewForでAnnotationViewを返し て... UIKit x MapKitだと
UIKitのAnnotation
SwiftUIのMapViewとAnnotation
実際に表示
パフォーマンスはどうなのか? 1万のAnnotationを表示するの をUIKitとSwiftUIで比較 関東周りにAnnotationを敷き詰めるとこういう感じになる
UIKit iPhone16 Pro Max(iOS18.2)で動作
SwiftUI 明らかに SwiftUIのほうが起動時の時間が遅い。 60秒ぐらいかかっている。 (色々試して見たけどやっぱり遅い ) iPhone16 Pro Max(iOS18.2)で動作
SwiftUIで個数を減らす 個数 かかった時間 10,000 60s 5,000 13.91s 2,000 2.66s 1,000
1.2s 軽量のアプリケーションなら問題ないが、いろんなデータを Mapに表示したい場合は工夫が必要そう。
whooで大事なこと リアルタイムに Annotationを 動かす必要があります
Annotationを動かす(UIKit)
UIKitで1万個動かす このコードを `Timer.scheduledTimer` で1秒ごとに動かす
パフォーマンス 1万個を同時に動かす割にCPUが10%ぐらいの負荷。思ったより軽いかも ...?
SwiftUIでもやろうとした ピクリとも動かない。
そもそも AnnotationのcoordinateはBindingではないから更新されても動かない UIViewRepresentableを使ってMapKitからUIKitじゃないとだめっぽい
結論 結果的にSwiftUIの機能だけを使って開発するのは厳しそう whooは数が表示するアノテーションの数も多いので SwiftUIだとパフォーマン ス影響が出そう まだ、UIKitでいいよね
少し告知させてください