鳩ブログ

サラリーマンが綴るブログ

XCodeを使った地図アプリを作りました

f:id:hato36:20200702100105p:plain

先日買った本の章を進めていったら地図アプリもありました。
私が昔開発をやっていた頃に、こんなアプリを作ったことはありませんでした。
やはりGPSなんて容易に制御出来るデバイスはありませんでしたし、そんなライブラリなんてなかった様に思います。しかし、スマホアプリも開発する前提のXCodeには、最初からGPSを制御できる様な関数があるのに驚きます。
今から開発を始める人には当たり前なのかもしれませんが、開発からずいぶん離れている人だと、かなり驚く環境ですよ。

 

GPSを使ったアプリの勉強

GPSを使ったアプリを作ってみたかったので嬉しい内容です。
ただ、シミュレーターを使うと、記載通りのコードで書いてもエラーが出ていて気になったので調べてみました。

エラーの内容は下記の通りです。

[GEOAddressObject] [NSLocale currentLocale] failed for NSLocaleCountryCode@

何かなと思って検索してみると、下記のサイトにたどり着きました。

swift - iOS 13シミュレーター:reverseGeocodeLocation-NSLocaleCountryCode @の[GEOAddressObject] [NSLocale currentLocale]が失敗しました - ITツールウェブ

地図がそもそも英語ですし、シミュレーターのOSも英語だったので気になっていたのですが、結局はリージョンとかiOSの設定を日本語にしておけば良かった...ということでした。iOSの設定をした後に再度実行したらエラーは無くなりました。
この辺も昔だったら日本語前提で考慮することのない部分でした。そういう目線で見ると、エラーひとつとっても面白いですね。

f:id:hato36:20200702100537p:plain

 

地名を入れると、その緯度経度をちゃんと表示するようになっていまする。(現時点ではデバッグ領域に...ですがw)

作者さんは、おそらくそもそも日本語のiOSの設定をされているので気が付かなかったのでしょうね。いったんスルーしてさらに課題を進めることにしました。

現在はiPhone 7を引っ張り出してテスト用に使っています。この状態でもXCodeのデバッガーの表示はされるので、シミュレーターが意外と起動にもたつく私の環境では実機で動作確認をするのは快適であることがわかりました。なんというか、開発環境であるXCode自体もすごいですね。

もちろん私のiPhone7のOSは、日本語なので先のエラーに引っかかることもありません。

----------とここまで書いて、本を読み進めていたら...その先に言語設定について書いてありました(汗

 

Macアプリのウィンドウの最大化

今まではMacbookをここまで熱心に触ることはなかったのですが、画面を最大化した時にリンゴマークのついたメニューバーが隠れてしまって面倒だと思っていました。

f:id:hato36:20200702120207p:plain

画面内でカーソルが動くと自動で表示/非表示をする動きをするのですが、私はこう言う動きが嫌いです。Windowsでもカーソルが画面下に行くとスタートメニューが表示される設定が可能ですが、同様に嫌いです。
なので、常にメニューは表示したままウィンドウを最大化する方法を調べました。

f:id:hato36:20200702120747j:plain

調べてみると簡単なことで、Optionボタンを押しながら、ウィンドウ左上の緑色のボタン(最大化)をクリックすると、メニューバーを残した状態で最大化してくれました。

f:id:hato36:20200709103011j:plain

こんな感じでジャストフィットします。

面倒くさがらずにもっと前に調べておけばもっと快適にMacを使えたと思うと悔しいですね。Windowsは開発も含め長年使っているのでショートカットも詳しいのですが、Macももっと触って便利に使えるようにならないと、良いアプリは作れないと思いました。コロナ禍で通勤時間が無くなった分で沢山勉強したいと思います。
ちなみに、会社はWindowsですが、あえて別のOSを知ることは無駄ではないと思っています。良い意味で隣の芝生がどうなっているのか?は知っておくべきだと思います。

この本はとても良いです。引き続き勉強していく予定です。