はじめに
iOSアプリを作ってみたいけど
何から始めて良いのかわからない
とりあえず、
「やってみました」記事を参考に
地図アプリを真似てみようと思う
という記事の9回目です。
今回は、いままでやってきたことを git でソースコード管理し、GitHub にて公開までします。
とりあえず、今回のシリーズは、これで終了の予定。
懺悔(ざんげ)
- 今回のシリーズは、アプリを「作ってみる」ことが主眼だったので git に関することは「あとまわし」だったけど、本当であれば「最初」にすることだと思います
- そのようなこともあり、今回の記事は、あとからgitでソースコード管理し、GitHubと連携することになります
- 一部の方には参考になると思いますが、多くの方には参考になりません
GitHubアカウントの作成
- ブラウザで、ここ↓にアクセス
- https://github.com/join
- 手順などの詳細は、他の記事を参照してください
- 簡単に作成できるはずです
ソースコード管理対象の確認
- 【なぜ?】
- 権利(著作権など)の侵害は、法律違反
- 違反すると罰せられる
- 他人のものを、自分のもののように公開するのは、格好が悪くない?
- 権利(著作権など)の侵害は、法律違反
-
手順
- 「ターミナル」アプリを起動
- 「ターミナル」にて以下のように、プロジェクトフォルダ全体に対し検索
- 【なぜ?】
- cd で地図アプリ(MyGpsMap)のプロジェクトフォルダへ移動している
- プロジェクトフォルダの位置に関しては、この記事を参照
- grep コマンドは、テキストファイル内の文字列を検索するツール
- -r オプションは、サブフォルダ全てを検索対象と指定している
- -i オプションは、大文字小文字を区別せず検索することを指定している
- 'copyright' は、検索文字列を指定している
- 最後の * は、全てのファイルが対象であることを指定している
- cd で地図アプリ(MyGpsMap)のプロジェクトフォルダへ移動している
- 【なぜ?】
console% cd $HOME/github/shinobee/MyGpsMap/ % grep -r -i 'copyright' *
- 実行結果は、以下の通り
- 他者(shinobee以外)が copyright を持っているファイルが見つからない
- プロジェクトフォルダ全体を公開しても大丈夫
- プロジェクトフォルダ全体を公開してくれた方が、使う(git cloneする)人もファイルの過不足が気にならないので「楽」だと思います
consoleMyGpsMap/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リポジトリの作成
-
GitHubにログイン
- ブラウザで https://github.com/login を表示
- 【なぜ?】
- OSS(Open Source Software)のプロジェクトは、GitHubで公開で間違いないから
- GitHubでのプロジェクト作成は、ブラウザを使うから
- 自分は、他の手段を知らない
-
GitHubにリポジトリを新規作成
- 画面右上の「+」をクリックし、「New repository」を選択
- 以下のようにレポジトリ情報を入力
- [Create repository]ボタンをクリックして、しばらく待つ
XcocdプロジェクトとGitHubリポジトリの連携
-
GitHubアドレスを登録
- 「ターミナル」にて以下のように、コマンドを実行
- 【なぜ?】
- GtHubでリポジトリを作成したあとに表示された「Quick setup」に書かれていたから
- このコマンドを実行することで、GitHubのリポジトリを連携づけできる
- 『プロジェクトに教えてあげる』と考えるほうが理解しやすいかも
- 【なぜ?】
console% cd $HOME/github/shinobee/MyGpsMap/ % git remote add origin https://github.com/shinobee/MyGpsMap.git
- 「ターミナル」にて以下のように、コマンドを実行
-
GitHub と同期
- 「ターミナル」にて以下のように、コマンドを実行
- 【なぜ?】
- GtHubでリポジトリを作成したあとに表示された「Quick setup」に書かれていたから
- このコマンドを実行することで、GitHubのリポジトリと同期(今回はpush≒アップロード)できる
- なお、この時点では全てのファイルが同期(push)されていない
- 今までの記事では、ソースコード管理をしてこなかったので、Xcodeが自動作成した初期状態のファイルが同期(push)対象
- これ↑が理解できない人は、他の人の記事をもとにGitについて勉強しましょう
- 【なぜ?】
console% git push -u origin master
- なお、以下のようなコマンド実行結果が出力(表示)された
consoleEnumerating 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'.
- 「ターミナル」にて以下のように、コマンドを実行
-
プロジェクトフォルダ以下の全てのファイルを git で管理
-
「ターミナル」にて以下のように、コマンドを実行
- 【なぜ?】
- プロジェクトに関連する全てのファイルを対象とするため
- git のコマンドオプション add で管理対象ファイルを追加することを指示
- git のコマンドオプション '.' ドットで、カレント(現在の)フォルダ以下全てを指定
console% cd $HOME/github/shinobee/MyGpsMap/ % git add .
- 【なぜ?】
-
-
プロジェクトフォルダ以下の全てのファイルを git で管理
-
「ターミナル」にて以下のように、コマンドを実行
- 【なぜ?】
- commit で管理対象ファイルを確定させることを指示
- -m オプションで、コメントを記録
console% cd $HOME/github/shinobee/MyGpsMap/ % git commit -m 'update MyGpsMap project'
-
-
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
- 【なぜ?】
-
今回の到達点
- プロジェクト(MyGpsMap)がGitHubにて公開された状態になった
さいごに
- このシリーズの最初に書いた「+αの目標」は達成できたのでしょうか?(自問)
- 説明を書き始めると、どこまで深く説明して良いのかわからなくなる
- 軽く読み切れる記事のボリュームを考えて説明を書いていたので、説明不足感があったかもしれません
- その中で、できるだけ説明を書いたつもりだけど、余計にわかり難くなったとしたら、ごめんなさい
+αの目標[再掲]
世の中に「やってみました」記事は、たくさんある。
多くの場合、同じことをすれば同じ結果を得ることができる。
しかし「なぜそのようなことをするのか?」を
解決できないから自分が成長しない。
『人が書いた「やってみました」記事を参考に
できるだけ「なぜ?」を解決しながらやってみよう』(汗)
連載
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その1:プロジェクト作成)
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その2:地図表示)
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その3:位置情報取得)
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その4:位置情報と連携した地図表示)
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その5:アプリアイコン設定)
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その6:拡大・縮小ボタン追加)
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その7:地図を拡大・縮小)
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その8:地名表示)
- [はじめてのiOSアプリ]xcodeで地図アプリを作成(その9:ソースコード管理)