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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kazumalab
January 21, 2025
Technology
1
63
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
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
850
1,000 にも届く AWS Organizations 組織のポリシー運用をちゃんとしたい、という話
kazzpapa3
0
180
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
460
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
220
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
100
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
200
20260204_Midosuji_Tech
takuyay0ne
1
160
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
510
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
1k
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
210
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
440
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
94
Ruling the World: When Life Gets Gamed
codingconduct
0
150
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
240
Believing is Seeing
oripsolob
1
58
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
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でいいよね
少し告知させてください