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
iOSアプリで測る!名古屋駅までの 方向と距離
Search
Ryu-nakayama
April 26, 2025
Programming
0
160
iOSアプリで測る!名古屋駅までの 方向と距離
Nagoya.swift #1の登壇資料です
Ryu-nakayama
April 26, 2025
Tweet
Share
More Decks by Ryu-nakayama
See All by Ryu-nakayama
「ジェン文字」をアプリ内で使ってみよう
ryunakayama
0
46
SwiftDataと連携したWidgetを作ってみた
ryunakayama
1
77
Swift Macroでメソッドの実行時間を計測できるようにしてみた
ryunakayama
1
140
Appleの審査担当の方とお話ししてみた!
ryunakayama
0
250
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
310
Translation API について 〜WWDC24〜
ryunakayama
0
290
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
1.7k
新卒1年目がプロジェクトを進めるときにコケたポイント
ryunakayama
1
1.8k
期限が近づいてきた!Privacy Manifests対応
ryunakayama
5
11k
Other Decks in Programming
See All in Programming
Носок на сок
bo0om
0
1.3k
Cursor/Devin全社導入の理想と現実
saitoryc
29
22k
リアーキテクチャの現場で向き合う 既存サービスの読み解きと設計判断
ymiyamu
0
100
Designing Your Organization's Test Pyramid ( #scrumniigata )
teyamagu
PRO
5
1.5k
Cloudflare Workersで進めるリモートMCP活用
syumai
5
580
Lambda(Python)の リファクタリングが好きなんです
komakichi
5
270
Storybookの情報をMCPサーバー化する
shota_tech
3
1.1k
2025年のz-index設計を考える
tak_dcxi
12
4.5k
開発者フレンドリーで顧客も満足?Platformの秘密
algoartis
0
230
SwiftDataのカスタムデータストアを試してみた
1mash0
0
150
ぽちぽち選択するだけでOSSを読めるVSCode拡張機能
ymbigo
14
6.3k
“技術カンファレンスで何か変わる?” ──RubyKaigi後の自分とチームを振り返る
ssagara00
0
110
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.3k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
GraphQLとの向き合い方2022年版
quramy
46
14k
Faster Mobile Websites
deanohume
307
31k
Into the Great Unknown - MozCon
thekraken
38
1.8k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
How to Ace a Technical Interview
jacobian
276
23k
For a Future-Friendly Web
brad_frost
177
9.7k
Become a Pro
speakerdeck
PRO
28
5.3k
Transcript
iOSアプリで測る!名古屋駅までの 方向と距離 コミュニケーションプラットフォームディビジョン プロダクトユニット iOSアプリ開発グループ 中山 龍 2025年04月26日 Nagoya.swift #1
自己紹介 中山 龍 (なかやま りゅう) • 株式会社kubell ◦ 新卒3年目のiOSエンジニア(22) ◦
「Chatwork」アプリの開発を担当 • 愛知県在住 • ひとこと ◦ @ryu_develop せっかくのNagoya.swiftということで 位置情報ネタを選んだけど、他の方と 少しネタ被りしてるかも?
今日、この会場に来るまでに名古屋駅を 使った方いらっしゃいますか?
名古屋駅が 分かりますか? • 何km先にあるか • どの方向にあるか
名古屋駅が 分かりますか? • 何km先にあるか • どの方向にあるか これをiOSアプリで測ってみましょう
01 | 距離を測る
距離を測る 現在地から目的地の距離を測る ↓ 二点の座標がわかると距離を測れそう ↓ 現在地と目的地の座標がわかるようにしてみましょう! 7
現在地の座標を取得する
現在地の座標を得るには 端末の現在地の座標を取得する方法 Core Locationを使う 9
現在地の座標を得るには(1) 1. Core Locationをimportする 2. CLLocationManagerのインスタンスを作成 3. CLLocationManagerDelegateに準拠した型を作成する • CLLocationManagerインスタンスのdelegateに代入する
10
現在地の座標を得るには(2) 4. 位置情報取得の許諾を得るための処理を記述する 5. 位置情報の更新を開始する 11
現在地の座標を得るには(3) 6. didUpdateLocationsのメソッド内で現在の緯度・経度が取得できる • 新しい位置情報が利用できる時に呼ばれる 12
現在地の座標を得るには(3) 6. didUpdateLocationsのメソッド内で現在の緯度・経度が取得できる • 新しい位置情報が利用できる時に呼ばれる 13 これで現在地が取得できた
目的地の座標を取得する
目的地の座標を得るには 今回は目的地の指定に MapKitを使う 15
目的地の座標を得るには(1) 1. MapKitをimportする 2. MKMapViewDelegateに準拠した型を作成する • MKMapViewのdelegateに代入する 16
目的地の座標を得るには(2) 3. didSelectのメソッド内で選択された緯度・経度が取得できる • MKMapViewで地点がタップされた時に呼ばれる 17
目的地の座標を得るには(2) 3. didSelectのメソッド内で選択された緯度・経度が取得できる • MKMapViewで地点がタップされた時に呼ばれる 18 これで目的地が取得できた
02 | 方向を測る
端末の方向を得るには 端末の向いている方向を取得する方法 Core Locationを使う 20
端末の方向を得るには 1. 「現在地の座標を得るには」の1〜5の手順で、CoreLocationで位置情報を取得 できるようにする 2. didUpdateHeadingのメソッド内で端末の向き(北からの角度)が取得できる • 新しい端末の向きの情報を受けたときに呼ばれる 21
端末の方向を得るには 1. 「現在地の座標を得るには」の1〜5の手順で、CoreLocationで位置情報を取得 できるようにする 2. didUpdateHeadingのメソッド内で端末の向き(北からの角度)が取得できる • 新しい端末の向きの情報を受けたときに呼ばれる 22 これで端末の方向が取得できた
03 | 名古屋駅はどっちに何km?
名古屋駅はどっちに何km? 現在地の座標と目的地の座標がわかったので、 • 現在地→目的地の距離(ここから名古屋駅までの距離) • 現在地から目的地への方角 が計算できます! そして、端末の向いている方向(方角)もわかるので、 • 目的地のある方向
もわかります! 24
そして、この会場から名古屋駅へは... [実演] 実際にアプリで測る 25 000
まとめ
まとめ • Core LocationとMapKitを使用することで、現在地から名古屋駅までの距離と 方向を知ることができた! • Core Locationを使用すると、端末の「位置」「向き」などが取得できる ◦ 情報の取得には許可が必要
• MapKitを使用すると、選択した任意の地点の「位置」などが取得できる • 位置情報など、モバイルアプリならではの機能を使い、よりよいサービス・体 験を作り出すことができそう!! 27
働くをもっと楽しく、創造的に 28