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
kazumalab
January 21, 2025
Technology
1
61
UIKitのMapKitを SwiftUIに移行できるのか
「集まれSwift好き!Swift愛好会Vol.91 @dely」での発表資料です
kazumalab
January 21, 2025
Tweet
Share
More Decks by kazumalab
See All by kazumalab
今、CTOに求められるものとは?
kazumalab
0
350
Wedding × VRについて
kazumalab
0
100
Other Decks in Technology
See All in Technology
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
60k
RALGO : AIを組織に組み込む方法 -アルゴリズム中心組織設計- #RSGT2026 / RALGO: How to Integrate AI into an Organization – Algorithm-Centric Organizational Design
kyonmm
PRO
3
930
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
1
1.6k
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
16
4.7k
202512_AIoT.pdf
iotcomjpadmin
0
190
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
610
Cloud WAN MCP Serverから考える新しいネットワーク運用 / 20251228 Masaki Okuda
shift_evolve
PRO
0
140
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
170
First-Principles-of-Scrum
hiranabe
3
1.6k
Node vs Deno vs Bun 〜推しランタイムを見つけよう〜
kamekyame
1
370
【Agentforce Hackathon Tokyo 2025 発表資料】みらいシフト:あなた働き方を、みらいへシフト。
kuratani
0
110
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
750
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
sira's awesome portfolio website redesign presentation
elsirapls
0
110
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
410
Design in an AI World
tapps
0
110
How GitHub (no longer) Works
holman
316
140k
Darren the Foodie - Storyboard
khoart
PRO
1
2.1k
Why Our Code Smells
bkeepers
PRO
340
58k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Are puppies a ranking factor?
jonoalderson
0
2.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
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でいいよね
少し告知させてください