質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • Swift

    6722questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • iOS

    3810questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • iPhone

    939questions

    iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

あなたはアプリ開発の時どうやってメソッドなどを探してますか?

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 19
  • VIEW 6,328

clo.momo

score 14

初めてのアプリを作っています。
毎回同じ段階でつまづいてアプリを完成させることができません。
例えば、位置情報を使ったアプリの場合

  1. 「GPSで位置情報を取得して、目的地に近づいたら指定した音楽を鳴らしたい!」
  2. 現在地の位置情報を取得して変数に代入
  3. 目的の位置情報を取得して変数に代入
  4. 現在値の変数 - 目的地の変数が指定した値より小さくなった場合、音楽を再生
  5. ロジックが決まって、いざ作ろうとしても位置情報の取得方法がわからない! ⇐詰む
  6. このアプリ作るのムリ
  7. 他のアプリを作ろう

これの繰り返しです。
取得する方法がわからないから、何時間かけてもできっこない! と、思ってます

みなさんはどうやって「したいことを実現するための方法」を探しているのでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • fuzzball

    2018/05/22 14:14

    なぜ「繰り返し」になるんでしょうか?5で止まったままにならないのですか?

    キャンセル

  • clo.momo

    2018/05/22 14:25

    すみません。説明が下手でした。GPSの場合は5で止まったまま作れないから、他のアプリを作ろうとするけどまた5の段階で止まる、の繰り返しという意味でした。

    キャンセル

回答 4

checkベストアンサー

+43

「GPSで位置情報を取得して、目的地に近づいたら指定した音楽を鳴らしたい!」

面白そうなアイデアですね!

自分だったらどうやるだろう?という視点で回答してみます。

1. 現在地の位置情報を取得して変数に代入

とりあえず「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

のリンクが貼られているので、そちらも参考にします。

→エラーが取れた頃にようやく緯度経度が取得できるようになっているはずです。

2. 目的の位置情報を取得して変数に代入

まず、目的の位置情報をどのように指定するのか考えます。
すでに公開されているアプリも参考にしてみます。

(きっと地図から目的地を選択させるアプリが多いハズ)

なので「swift 地図 中心座標 取得」あたりでググってみます。

[Ios] MapKit(Swift 2)から中心座標を取得し、UILabelで表示する
https://code.i-harness.com/ja/q/20c9186

それっぽいのが出てきました。
読んで見ると日本語がちょっとあやしいけど、

let center = myMap.centerCoordinate

で地図の中心点が取得できることがわかりました!

3. 現在値の変数 - 目的地の変数が指定した値より小さくなった場合、音楽を再生

現在値の変数 - 目的地の変数

を計算したいけど、そのままだと計算できないぞ。こまった。

「swift 二点間 距離」でググってみる。

iOS/swiftで緯度・経度から2点間の距離を算出する - Qiita 
https://qiita.com/ymiz/items/b00c4da44070a66c8445

なんか良さそうな記事がヒットしました。しかも安定の Qiita やん。

読んでいくと、どうやら distanceFromLocation  なる 超絶便利な function が使えるっぽいぞ!
これで求めた値が、指定した値より小さくなったら音を再生すればよいのか!

「swift 音 再生」でググる。

みたいな感じです。

Swift はすぐに文法が変わるので、ネット上に書かれているソースコードをそのままコピペしてもまず動きません。
書籍も一緒です。1年前の内容はだいたいビルドできません。

でも安心してください。
Xcode さんが毎回エラーで教えてくれます。
エラーメッセージを疎かにしないでください。
大抵はエラーメッセージの中に答えが書かれています。

プログラミングに慣れないうちはいろいろとツラいことが多いと思いますが、
めげずにぜひ頑張ってみてください。
そのうちきっと楽しくなります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/22 16:20

    自分も何個かwebやスマホアプリやらの開発に携わりましたが、やっぱりこういう感じで進めてます!
    できないときは誰かに聞く、誰もいないなら質問サイトで聞くという感じですね

    それでもできない場合は後回しにしてできそうな実装から先にやる、もしくは仕様の変更を考えるとか

    キャンセル

  • 2018/05/22 17:00

    ありがとうございます!こんなに時間を使ってくれてホントに嬉しいです。
    ひじょ〜〜〜〜〜に参考になりました!

    「経験者がピンポイントでドキュメントやらリファレンスを1分で調べてることを何時間もかけて調べてるんじゃないか?」

    とか思ってたけど、やっぱググれカスなんですね。

    キャンセル

  • 2018/05/22 17:03

    経験増えればピンポイント率も上がったり、直感力が上がって少しの情報でも解決できたりとかはあるかもですねえ、、、
    自分はまだそこまで行っていないですが。。。!

    キャンセル

  • 2018/05/22 17:13

    経験者が1分で調べがついているように思えるのは、前に似たようなことをやった「経験」があるので
    未経験のときと比べて調べるべきことが少ないし、新しく調べる内容が予め検討ついているからです。

    キャンセル

  • 2018/05/22 17:19

    そうそう、だんだんググるのも上手くなっていくんですよねw

    キャンセル

  • 2018/05/22 21:59

    なるほど、非常に参考になります。

    キャンセル

+5

ググってもダメ、質問してもダメ、ならば!

 公式ドキュメントを読もう

Introduction to View Programming Guide for Cocoa

この辺からどうぞ。
チラっと見ただけでもCocoa Event Handling Guideなんてのがありますし。

‥いや、本当は最初に読むべきなんですけどね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/22 17:14

    特に若者に顕著なんですが、英語のドキュメントを英語だからという理由だけで敬遠してしまってなかなか本質にたどりつけない、というのはよくありますよね。(←老害脳)

    キャンセル

  • 2018/05/22 17:22

    エラーメッセージすら読もうとしないのですからドキュメントに至っては‥。
    まぁ私もエラーメッセージくらいは読みますが、英語のドキュメントはめったに読まないですねw

    キャンセル

  • 2018/05/22 21:57

    公式ドキュメントって素晴らしい!!!
    google翻訳使えば問題なく読めました!エラーも読めましたよ。
    問題は、公式ドキュメントにも一切ないのってないってことはswiftで作るなってことなんですかね。

    キャンセル

-2

ぐぐる。
これに尽きます

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/22 14:05

    ググってわからないパターンもありますが、
    その時は自分の実力がまだそれに手を付ける
    段階ではないってことになりますね。

    もっと基礎を抑えるとか簡単なことから始めるとか。
    調べて理解できるなら、実装もできると思いますが。

    キャンセル

  • 2018/05/22 14:42

    ぼくもそう思って、基礎を学ぶことから始めました。
    ところが、やりたいことを実現するための方法を解説しているところがググってもでてきません。
    でてこないからその方法を身につけることができない、向上しない。停滞。行き詰まってます。
    こういう書籍はぼくの目的に合っているでしょうか?

    [改訂新版]Swiftポケットリファレンス

    キャンセル

  • 2018/05/22 14:48

    ぐぐってもでてこない、と言うなら勉強しましょう。
    いろんな資料を読みあさり、書籍を購入し、ベンダに問い合わせる、当たり前にあなたが今までやってきたことを、当たり前に実行するだけです

    キャンセル

  • 2018/05/22 17:02

    経験の積み方は間違ってないからあとは情報を集めろ!ってことですね。
    非常に参考になりました。
    ありがとうございました。

    キャンセル

  • 2018/05/23 16:38

    初心者に安直にググれ。というのは案内も何もない何十万冊もある図書館から特定の本を探せ。というものではないでしょうか?

    キャンセル

  • 2018/05/23 16:47

    しかし、ぐぐらないことにはなにも始まりませんぜ。
    少なくとも私は、ぐぐることでいろんな言語を覚え、ぐぐることでいろんな知見を得ました。
    初心者という理由で、ぐぐることを教えない、というのは犯罪的でしかないと私は思いますがどーでしょう。

    キャンセル

-3

普通に、「swift gps」ってググれば見つかるのに、それでもわからないと言われると何がわからんのか?と逆に聞いてみたくなりますね。

swift gps の検索結果

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/22 14:34

    すみません。説明不足でした。GPSは例えとしてあげました。

    現在詰んでるのは次の2つです。

    ・macOSアプリで画面をクリックした座標を取得する
    ・取得した座標の色を取得

    この2つ、ググってもでてきません。
    この2つを実現する方法はどうやって調べますか?

    キャンセル

  • 2018/05/22 14:58

    その2つはすでに質問していますよね。
    ここで改めて聞くことではありません。

    キャンセル

  • 2018/05/22 15:29

    実装方法ではなくて、実装方法の調べ方が知りたいんですね。

    対象の言語を触ったことが無いのでよくわかりませんが、C#でいう所のネームスペースやクラスの名前から関係がありそうな所を狙いをつけて調べていくのもいいと思います。

    キャンセル

  • 2018/05/22 16:44

    すみません。質問済みでした。

    経験者はピンポイントで実装方法を見つけてるに違いない!と思ってました。
    違うんですね。非常に参考になりました!ありがとうございました!

    キャンセル

  • 2018/05/22 17:09

    同じものを過去に作ったことがあるというような状況でない限り、初めから実装方法なんて知らないです。当然職業プログラマであっても同じです。
    むしろ知っていることであっても、これで正しかったかな?とリファレンスを読んで確認しています。ここのテラテイルの回答をするときでさえそうです。
    ググるというのは一つの解決策ですが、正当性がなく、情報の正しさという点ではあまり当てにするものでもありません。その記事が書かれた時期や、バージョンによっては動かないなんてことはザラです。もっとも本家のリファレンスを正しく調べることが一番です。

    キャンセル

  • 2018/05/22 22:02

    職業プログラマの人でもそうなんですね。
    それなら初心者が調べるのに時間かかるのって当然のことですね。
    初心者の「上級者はこうに違いない!」って存在しないプログラマーのイメージと比べるからダメなんですね。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Swift

    6722questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • iOS

    3810questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • iPhone

    939questions

    iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。