Mac業界の最新動向はもちろん、読者の皆様にいち早くお伝えしたい重要な情報、
日々の取材活動や編集作業を通して感じた雑感などを読みやすいスタイルで提供します。

Mac Fan メールマガジン

掲載日:

移動ログアプリを作ってみよう1

著者: 沼田哲史

移動ログアプリを作ってみよう1

歩き回りながらデバックするアプリ

今回は、iPhoneに搭載されているGPSを使って、現在位置の緯度・経度の情報を取得するアプリケーションの作成にチャレンジしてみましょう。加えて、iPhoneに表示した地図の上に、自分の移動した場所を書き込みながら、移動にかかった時間や移動した距離を計算して、健康を管理したり、旅行の思い出を振り返ったりできる機能を追加していきたいと思います。

iOSはユーザのプライバシー保護を最優先に考えているOSなので、アプリで位置情報を取得したいと思っても、そう簡単には取得させてもらえません。位置情報を扱うアプリは、OSからユーザにメッセージを表示してもらい、位置情報を使っても良いことを確認してもらう必要があるからです。そのため、位置情報を使う機構自体は単純なのですが、ほかのアプリ制作と比べて、プライバシー保護の設定を行う手順が少しだけややこしくなります。それを乗り越えて、iPhoneを持って自分の家の周りを歩き回りながらデバッグする面白さを体験してください。

【STEP 1】プロジェクトを作ろう

Xcodeのメニューから[File]→[New]→[Project]を選んで、新しいプロジェクトを作成します。プロジェクトの種類には[Single View Application]を選択して、右下の[Next]ボタンを押しましょう。

[Product Name]には[Walk Memory]と入力して、[Organization Identifier]には[mytest]と入力し、[Language]に[Swift]を選択して右下の[Next]ボタンを押してください。最後に保存場所を選んでプロジェクトの作成を完了させます。

位置情報にアクセスする設定を行うために、ウィンドウ左上の青いプロジェクトアイコンを選択しましょう。

[Info]タブを選択したら、[+]ボタンを押して新しい設定キーを追加します。リストから[Privacy – Location Always Usage Description]を選択して追加します。値には「位置情報を記録」と入力しておきましょう。

【STEP 2】実装の準備

[Build Phases]のタブを選択し、[Link Binary With Libraries]の[+]ボタンを押して[CoreLocation.framework]を追加します。Core Locationは、位置情報を取得するためのフレームワークです。

画面左側のファイル一覧から[ViewController.swift]を選択して、Core Locationを使用するためにコードを追加しましょう。図のようにimport文を1行追加します。これで位置情報を取得する準備は完了です。

【STEP 3】位置情報を取得して表示する

(1)上記の図のように、クラス宣言のコードの後ろにCLLocationManagerDelegateを追加して、位置情報を受け取れることを宣言します。また、その下に位置管理と位置ラベルの変数を2つ追加します。

(2)位置を管理するマネージャを作成して、セットアップするコードと、その情報を表示するラベルを作成するためのコードを図のようにviewDidLoad()メソッドに追加します。位置管理のdistanceFilterプロパティを使って、10メートル移動するごとに新しい位置情報が通知されるようにしています。この数値を調整することで、100メートルおきや250メートルおきに位置情報を記録するように変更できます。startUpdatingLocation()メソッドを呼び出すことで、位置情報の受信が始まります。

(3)最後に図のようなメソッド実装をViewController.swiftの最後に追加します。このメソッドは位置変更が通知されるたびに呼び出されますので、そのタイミングで、画面に表示したラベルに位置情報を表示します。

(4)ウインドウ左上の[?]ボタンをクリックし、このアプリを実行すると、初回起動時には位置情報の取得を許可するためのメッセージが表示されます。[Allow]ボタンを押して許可しましょう。

(5)無事に位置情報が取得できて、画面に緯度と経度が表示されました。ちなみにMacのサファリでグーグル・マップを表示して「35.702, 139.775」と検索すると、その場所の地図を表示できます。

(6)デバッグ中にウインドウ中央部に表示される三角形のアイコンをクリックすると、デバッグ用に位置情報を設定できます。東京やロンドンなど、いろんな場所に移動できるので、試してみてください。

【まとめ】

今回は位置情報を取得して表示するアプリを作成しました。このアプリはシミュレータ上でも動かせますし、iPhoneにインストールして歩き回ると、いろんな場所の緯度・経度を計測できます。

 

次回のテーマ

移動ログアプリを作ってみよう2(地図上への位置表示)

※今回のソースコードはMac Fan WEB上に公開しています。こちらを参照して、ぜひXcodeにチャレンジしてみましょう。

●サンプルコードURL●

https://goo.gl/bZv2bp

【冒険記】

新しく登場したMacBookプロにタッチバーが搭載されました。これからいろんなソフトが活用法を模索して、どんどん使いやすくなっていくと、やがてなくてはならないものになっていくはずです。これから2、3年後の世界が楽しみですね。

【冒険記】

その昔、マウスが登場したとき、それまでキーボードしかなかったプログラミングの世界がガラッと違うものに変わりました。今後はタッチバーと一緒に、スウィフトプログラミングがどう変わっていくのか、ぜひ皆さんも考えてみてください。

Dr.さざめき(aka.沼田哲史)

1978年1月生まれ。某大学でプログラミングを教えつつ、ふらっとヨーロッパ旅行に出かけて美味しいものを食べ歩いたり、時折、iOSプログラミングの本を出したり。Mac歴16年。いつかアメリカ西海岸でお昼から美味しいIPAビールを飲みながらプログラミングするのが夢です。Twitter @sazameki