初めてのアプリを作っています。
毎回同じ段階でつまづいてアプリを完成させることができません。
例えば、位置情報を使ったアプリの場合
- 「GPSで位置情報を取得して、目的地に近づいたら指定した音楽を鳴らしたい!」
- 現在地の位置情報を取得して変数に代入
- 目的の位置情報を取得して変数に代入
- 現在値の変数 - 目的地の変数が指定した値より小さくなった場合、音楽を再生
- ロジックが決まって、いざ作ろうとしても位置情報の取得方法がわからない! ⇐詰む
- このアプリ作るのムリ
- 他のアプリを作ろう
これの繰り返しです。
取得する方法がわからないから、何時間かけてもできっこない! と、思ってます
みなさんはどうやって「したいことを実現するための方法」を探しているのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/22 05:25
回答4件
0
ベストアンサー
「GPSで位置情報を取得して、目的地に近づいたら指定した音楽を鳴らしたい!」
面白そうなアイデアですね!
自分だったらどうやるだろう?という視点で回答してみます。
- 現在地の位置情報を取得して変数に代入
とりあえず「swift 現在地の位置情報を取得して変数に代入」でググってみます。
ポイントは「ios」ではなく「swift」というキーワードを添えること。
「ios」だとiPhoneの使い方、みたいなHow toサイトが多くヒットしてしまいます。
iOS - 位置情報のデータを取得、変数に格納したい(21942)|teratail
https://teratail.com/questions/21942
お、それっぽいサイトが出てきたぞ。しかも teratail やないかーい。
とにかく読んで見ます。
この質問者は何かエラーで躓いているようだけど、
consoleに nowgps=nil 緯度=35.6585 経度=139.7013 と出力されます。
という文面から緯度経度は取得できていることがわかります。
さらに読み進めていくと LocationManager
で位置情報が取れそうなことがわかります。
そのままコードを切り貼りしてビルドしてもエラーになるので、
都度エラーメッセージでググって直していく。
(ここはめげずにがんばる)
また、回答文から
【iOS Swift入門 #172】現在地の位置情報を取得する (サンプルあり)
http://swift-studying.com/blog/swift/?p=1078
のリンクが貼られているので、そちらも参考にします。
→エラーが取れた頃にようやく緯度経度が取得できるようになっているはずです。
- 目的の位置情報を取得して変数に代入
まず、目的の位置情報をどのように指定するのか考えます。
すでに公開されているアプリも参考にしてみます。
(きっと地図から目的地を選択させるアプリが多いハズ)
なので「swift 地図 中心座標 取得」あたりでググってみます。
[Ios] MapKit(Swift 2)から中心座標を取得し、UILabelで表示する
https://code.i-harness.com/ja/q/20c9186
それっぽいのが出てきました。
読んで見ると日本語がちょっとあやしいけど、
let center = myMap.centerCoordinate
で地図の中心点が取得できることがわかりました!
- 現在値の変数 - 目的地の変数が指定した値より小さくなった場合、音楽を再生
現在値の変数 - 目的地の変数
を計算したいけど、そのままだと計算できないぞ。こまった。
「swift 二点間 距離」でググってみる。
iOS/swiftで緯度・経度から2点間の距離を算出する - Qiita
https://qiita.com/ymiz/items/b00c4da44070a66c8445
なんか良さそうな記事がヒットしました。しかも安定の Qiita やん。
読んでいくと、どうやら distanceFromLocation
なる 超絶便利な function が使えるっぽいぞ!
これで求めた値が、指定した値より小さくなったら音を再生すればよいのか!
「swift 音 再生」でググる。
︙
みたいな感じです。
Swift はすぐに文法が変わるので、ネット上に書かれているソースコードをそのままコピペしてもまず動きません。
書籍も一緒です。1年前の内容はだいたいビルドできません。
でも安心してください。
Xcode さんが毎回エラーで教えてくれます。
エラーメッセージを疎かにしないでください。
大抵はエラーメッセージの中に答えが書かれています。
プログラミングに慣れないうちはいろいろとツラいことが多いと思いますが、
めげずにぜひ頑張ってみてください。
そのうちきっと楽しくなります。
投稿2018/05/22 07:05
総合スコア494
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/22 07:20
2018/05/22 08:00
2018/05/22 08:03
2018/05/22 08:13
2018/05/22 08:19
2018/05/22 12:59
0
ググってもダメ、質問してもダメ、ならば!
公式ドキュメントを読もう
Introduction to View Programming Guide for Cocoa
この辺からどうぞ。
チラっと見ただけでもCocoa Event Handling Guideなんてのがありますし。
‥いや、本当は最初に読むべきなんですけどね。
投稿2018/05/22 08:09
総合スコア16733
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/22 08:14
2018/05/22 08:22
2018/05/22 12:57
0
ぐぐる。
これに尽きます
投稿2018/05/22 05:03
総合スコア88088
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/22 05:05
2018/05/22 05:42
2018/05/22 05:48
2018/05/22 08:02
2018/05/23 07:38
2018/05/23 07:47
0
普通に、「swift gps」ってググれば見つかるのに、それでもわからないと言われると何がわからんのか?と逆に聞いてみたくなりますね。
投稿2018/05/22 05:17
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/22 05:34
2018/05/22 05:58
2018/05/22 06:29
2018/05/22 07:44
退会済みユーザー
2018/05/22 08:09
2018/05/22 13:02
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。