LoginSignup
1
3

More than 3 years have passed since last update.

[はじめてのiOSアプリ]xcodeで地図アプリを作成(その9)

Last updated at Posted at 2020-01-13

はじめに

iOSアプリを作ってみたいけど
何から始めて良いのかわからない

とりあえず、
「やってみました」記事を参考に
地図アプリを真似てみようと思う

という記事の9回目です。

今回は、いままでやってきたことを git でソースコード管理し、GitHub にて公開までします。
とりあえず、今回のシリーズは、これで終了の予定。

懺悔(ざんげ)

  • 今回のシリーズは、アプリを「作ってみる」ことが主眼だったので git に関することは「あとまわし」だったけど、本当であれば「最初」にすることだと思います
  • そのようなこともあり、今回の記事は、あとからgitでソースコード管理し、GitHubと連携することになります
  • 一部の方には参考になると思いますが、多くの方には参考になりません

GitHubアカウントの作成

  • ブラウザで、ここ↓にアクセス
    • https://github.com/join
    • 手順などの詳細は、他の記事を参照してください
    • 簡単に作成できるはずです

ソースコード管理対象の確認

  • 【なぜ?】
    • 権利(著作権など)の侵害は、法律違反
      • 違反すると罰せられる
      • 他人のものを、自分のもののように公開するのは、格好が悪くない?
  • 手順

    • 「ターミナル」アプリを起動
      • Launchpadからでも、アプリメニューからでも、好きな方法で起動する
        launchpad_terminal.png
    • 「ターミナル」にて以下のように、プロジェクトフォルダ全体に対し検索
      • 【なぜ?】
        • cd で地図アプリ(MyGpsMap)のプロジェクトフォルダへ移動している
          • プロジェクトフォルダの位置に関しては、この記事を参照
        • grep コマンドは、テキストファイル内の文字列を検索するツール
        • -r オプションは、サブフォルダ全てを検索対象と指定している
        • -i オプションは、大文字小文字を区別せず検索することを指定している
        • 'copyright' は、検索文字列を指定している
        • 最後の * は、全てのファイルが対象であることを指定している
    console
    % cd $HOME/github/shinobee/MyGpsMap/
    % grep -r -i 'copyright' *           
    
    • 実行結果は、以下の通り
      • 他者(shinobee以外)が copyright を持っているファイルが見つからない
      • プロジェクトフォルダ全体を公開しても大丈夫
      • プロジェクトフォルダ全体を公開してくれた方が、使う(git cloneする)人もファイルの過不足が気にならないので「楽」だと思います
    console
    MyGpsMap/ViewController.swift://  Copyright © 2019 shinobee. All rights reserved.
    MyGpsMap/AppDelegate.swift://  Copyright © 2019 shinobee. All rights reserved.
    MyGpsMap/SceneDelegate.swift://  Copyright © 2019 shinobee. All rights reserved.
    Binary file MyGpsMap.xcodeproj/project.xcworkspace/xcuserdata/shinobee.xcuserdatad/UserInterfaceState.xcuserstate matches
    MyGpsMapTests/MyGpsMapTests.swift://  Copyright © 2019 shinobee. All rights reserved.
    MyGpsMapUITests/MyGpsMapUITests.swift://  Copyright © 2019 shinobee. All rights reserved.
    

GitHubリポジトリの作成

  1. GitHubにログイン

    • ブラウザで https://github.com/login を表示
    • 【なぜ?】
      • OSS(Open Source Software)のプロジェクトは、GitHubで公開で間違いないから
      • GitHubでのプロジェクト作成は、ブラウザを使うから
        • 自分は、他の手段を知らない
  2. GitHubにリポジトリを新規作成

    • 画面右上の「+」をクリックし、「New repository」を選択
    • 以下のようにレポジトリ情報を入力
      • [Repository name]は、MyGpsMap
      • [公開範囲]は、Public
        • このプロジェクトは「公開」する
        • 必要に応じて「非公開 Private」を選択しても可
      • [Initialize this repository with a README]は、チェックを入れないでOK
      • [.gitignore]は、変更しないでOK
      • [Add a license]は、変更しないでOK github-create-new-repository.png
    • [Create repository]ボタンをクリックして、しばらく待つ
      • 作成されたら、以下↓のように表示される github-created-new-repository.png

XcocdプロジェクトとGitHubリポジトリの連携

  1. GitHubアドレスを登録

    • 「ターミナル」にて以下のように、コマンドを実行
      • 【なぜ?】
        • GtHubでリポジトリを作成したあとに表示された「Quick setup」に書かれていたから
        • このコマンドを実行することで、GitHubのリポジトリを連携づけできる
        • 『プロジェクトに教えてあげる』と考えるほうが理解しやすいかも
    console
     % cd $HOME/github/shinobee/MyGpsMap/
     % git remote add origin https://github.com/shinobee/MyGpsMap.git
    
  2. GitHub と同期

    • 「ターミナル」にて以下のように、コマンドを実行
      • 【なぜ?】
        • GtHubでリポジトリを作成したあとに表示された「Quick setup」に書かれていたから
        • このコマンドを実行することで、GitHubのリポジトリと同期(今回はpush≒アップロード)できる
        • なお、この時点では全てのファイルが同期(push)されていない
        • 今までの記事では、ソースコード管理をしてこなかったので、Xcodeが自動作成した初期状態のファイルが同期(push)対象
        • これ↑が理解できない人は、他の人の記事をもとにGitについて勉強しましょう
    console
     % git push -u origin master
    
    • なお、以下のようなコマンド実行結果が出力(表示)された
    console
    Enumerating objects: 33, done.
    Counting objects: 100% (33/33), done.
    Delta compression using up to 4 threads
    Compressing objects: 100% (29/29), done.
    Writing objects: 100% (33/33), 11.30 KiB | 2.82 MiB/s, done.
    Total 33 (delta 3), reused 0 (delta 0)
    remote: Resolving deltas: 100% (3/3), done.
    To https://github.com/shinobee/MyGpsMap.git
    * [new branch]      master -> master
    Branch 'master' set up to track remote branch 'master' from 'origin'.
    
    • ブラウザでgithubのリポジトリを表示したら以下のような状態
      github-init.png
  3. プロジェクトフォルダ以下の全てのファイルを git で管理

    • 「ターミナル」にて以下のように、コマンドを実行

      • 【なぜ?】
        • プロジェクトに関連する全てのファイルを対象とするため
        • git のコマンドオプション add で管理対象ファイルを追加することを指示
        • git のコマンドオプション '.' ドットで、カレント(現在の)フォルダ以下全てを指定
      console
         % cd $HOME/github/shinobee/MyGpsMap/
         % git add .
      
  4. プロジェクトフォルダ以下の全てのファイルを git で管理

    • 「ターミナル」にて以下のように、コマンドを実行

      • 【なぜ?】
      • commit で管理対象ファイルを確定させることを指示
      • -m オプションで、コメントを記録
      console
       % cd $HOME/github/shinobee/MyGpsMap/
       % git commit -m 'update MyGpsMap project'
      
  5. git の内容をGitHubと同期

    • 「ターミナル」にて以下のように、コマンドを実行

      • 【なぜ?】
        • Mac上での変更内容をGitHubに登録するため
      console
      % git push 
      Enumerating objects: 35, done.
      Counting objects: 100% (35/35), done.
      Delta compression using up to 4 threads
      Compressing objects: 100% (24/24), done.
      Writing objects: 100% (24/24), 126.10 KiB | 21.02 MiB/s, done.
      Total 24 (delta 5), reused 0 (delta 0)
      remote: Resolving deltas: 100% (5/5), completed with 5 local objects.
      To https://github.com/shinobee/MyGpsMap.git
      091844c..c7f6b12  master -> master
      
    • ブラウザでgithubのリポジトリを再表示(reload)したら以下のような状態

      github-pushed.png

今回の到達点

  • プロジェクト(MyGpsMap)がGitHubにて公開された状態になった

さいごに

  • このシリーズの最初に書いた「+αの目標」は達成できたのでしょうか?(自問)
    • 説明を書き始めると、どこまで深く説明して良いのかわからなくなる
    • 軽く読み切れる記事のボリュームを考えて説明を書いていたので、説明不足感があったかもしれません
  • その中で、できるだけ説明を書いたつもりだけど、余計にわかり難くなったとしたら、ごめんなさい
+αの目標[再掲]
世の中に「やってみました」記事は、たくさんある。
多くの場合、同じことをすれば同じ結果を得ることができる。
しかし「なぜそのようなことをするのか?」を
解決できないから自分が成長しない。
『人が書いた「やってみました」記事を参考に
できるだけ「なぜ?」を解決しながらやってみよう』(汗)

連載

  1. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その1:プロジェクト作成)
  2. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その2:地図表示)
  3. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その3:位置情報取得)
  4. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その4:位置情報と連携した地図表示)
  5. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その5:アプリアイコン設定)
  6. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その6:拡大・縮小ボタン追加)
  7. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その7:地図を拡大・縮小)
  8. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その8:地名表示)
  9. [はじめてのiOSアプリ]xcodeで地図アプリを作成(その9:ソースコード管理)
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3