Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UIKitのMapKitを SwiftUIに移行できるのか
Search
kazumalab
January 21, 2025
Technology
1
60
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
340
Wedding × VRについて
kazumalab
0
100
Other Decks in Technology
See All in Technology
20251127 BigQueryリモート関数で作る、お手軽AIバッチ実行環境
daimatz
0
400
命名から始めるSpec Driven
kuruwic
3
760
Digital omtanke på Internetdagarna 2025
axbom
PRO
0
150
"'TSのAPI型安全”の対価は誰が払う?不公平なスキーマ駆動に終止符を打つハイブリッド戦略
hal_spidernight
0
210
AI駆動開発によるDDDの実践
dip_tech
PRO
0
160
MCP・A2A概要 〜Google Cloudで構築するなら〜
shukob
0
110
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
2
1.3k
Active Directory 勉強会 第 6 回目 Active Directory セキュリティについて学ぶ回
eurekaberry
16
5.4k
Pandocでmd→pptx便利すぎワロタwww
meow_noisy
2
1.1k
インフラ室事例集
mixi_engineers
PRO
2
160
How native lazy objects will change Doctrine and Symfony forever
beberlei
1
310
翻訳・対話・越境で強いチームワークを作ろう! / Building Strong Teamwork through Interpretation, Dialogue, and Border-Crossing
ar_tama
4
870
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Cult of Friendly URLs
andyhume
79
6.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Music & Morning Musume
bryan
46
7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Typedesign – Prime Four
hannesfritz
42
2.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
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でいいよね
少し告知させてください