概要
この記事は初心者の自分がRESTfulなAPIとswiftでiPhone向けのクーポン配信サービスを開発した手順を順番に記事にしています。技術要素を1つずつ調べながら実装したため、とても遠回りな実装となっています。
前回のDjangoのテンプレート機能を使ってみるまでに作ったシンプルなwebAPIをここから改造します。しかしできれば改造前のコードをそれぞれ保存し、コードを壊した際に戻したり、他の目的に流用できるようにしたいです。ただし単にコードをコピーして保管するのは管理が煩雑になる。そこでgitを活用してコードのバージョン管理を行います。
参考
環境
Mac OS 10.15
手順
- 開発マシンにGitをインストール
- プロジェクトフォルダをgitのローカルリポジトリにする
- githubにamiAppのプロジェクトを作成
開発マシンにGitをインストール
既にGitがインストールされていないか確認する。
$ git ―version
自分の場合、既にgitがインストールされていました。Xcodeと同時にインストールされるようなので、とりあえずこれを使います。
インストールする場合、macでしたらbrewでインストール出来ます。
$ brew update
$ brew install git
プロジェクトフォルダをgitのローカルリポジトリにする
ローカルのプロジェクトディレクトリ …/amiApp/ami_coupon_api
をgitのローカルリポジトリにします。ターミナルでami_coupon_api
ディレクトリに移動して、以下のコマンドを実行するだけです。
$ git init
githubにamiAppのプロジェクトを作成
githubをリモートリポジトリとして利用するので、githubのアカウントを作ってサインインします。
サインインしたら、左側のフレームの「Repositories」の右側の「New」ボタンを押して、リポジトリ作成画面に進みます。
リポジトリ作成画面でリポジトリ名や説明などを入力して、Create repositories
ボタンを押すとリポジトリが作成されます。今回はこんな設定にしました。
リポジトリ名:ami_api
説明:webAPI(python)とネイティブアプリ(swift)の連携を学習するために作った居酒屋アプリ。クーポンの配信などが出来ます。
Private/Public: Public (コードが公開されます。もともと公開する予定なのでPublicにしています。)
これまでに作成したコードをコミット対象ファイルにする
git add
コマンドでgitで管理したいディレクトリ、ファイルをコミット対象に設定します。
対象のプロジェクトのディレクトリでgit status
コマンドを実行し、状況を確認します。コミット対象にしていないファイルとディレクトリが赤く表示されます。まだ1つもadd
していないので真っ赤です。
下記のコマンドでami_coupon_ami
をコミット対象にします。
$ git add ami_coupon_api/
git status コマンドで確認すると、ami_coupon_api
ディレクトリ配下のファイルがコミット対象に追加されて緑になっています。
他のファイルも同じ要領でコミット対象に追加します。全てのファイルを一括で追加する場合は、下記のコマンドを使います。
$ git add --all
現時点の資材をローカルリポジトリにコミットする
ここまでに開発した内容を残すため、まずは自分のPCに作ったローカルリポジトリへコミットします。まずは誰がコミットしたか分かるように、ユーザ名を登録します。
$ git config --global user.name “ユーザ名”
登録した名前は git config ―list
コマンドで確認できます。
次にローカルリポジトリへコミットします。コミットする際は-m
オプションで、コメントを残します。
$ git commit -m “コメント本文”
リモートリポジトリにプッシュする
今の時点では自分のPC内で資材を管理している状態です。複数人で作業する場合にコードをシェアしたり、資材をバックアップするには、Githubで作成したリモートリポジトリにプッシュします。
まずは以下の手順でプッシュ先のリモートリポジトリを登録します。
- Githubのマイページで先ほど作成したリポジトリのURLをコピーする(ここで確認できます)
-
git remote add
コマンドでリモートリポジトリを登録する。(紐付け名は今後プッシュする際に使うので忘れないようにメモしておく)
$ git remote add [紐付け名] [Githubに作成したリポジトリのURL]
次に、git push
コマンドで登録したリモートリポジトリにプッシュします。今回は初回なのでmaster
ブランチにプッシュします。コマンドを実行するとGithubのユーザ名とパスワードの入力を求められます
$ git push [紐付け名] [プッシュ先ブランチ]
Githubのマイページを更新して、プッシュしたコードが追加されている事を確認します。
webAPI改造のためのブランチを作成し、作成したブランチに移動する。
これからwebAPIの改造をするので、改造用のブランチを作成します。まずは既に存在するブランチを確認します。
$ git branch
自分の場合、存在するブランチは master のみでした。「*」の付いているブランチが現在のブランチです。
master
ブランチをコピーしてapi改造用のブランチを作成します。
次はレスポンスをJson形式で返すように改造する予定なので、ブランチ名をdevelop_chengeToJson
としました。
なお、通常の複数人での開発では git flow という標準的なブランチ運用ルールを適用する事が多いです。その場合、小中規模の変更についてはdevelop
ブランチではなく、その更に枝分かれした feture
やbacklog
というブランチ名で管理しますが、自分の場合は1人で開発なので、develop
ブランチをどんどん作成して改造していく事とします。
コピー元のブランチにいる状態で、下記のコマンドを実行します。
$ git branch [コピーして作成するブランチ名]
新しいブランチdevelop_changeToJason)
が出来ました。
作成したブランチに移動する時は、以下のコマンドを使います。
$ git checkout [作成したブランチ名]
ちなみに、checkout
コマンドに-b
オプションを付けると新しいブランチの作成と同時に作成したブランチに移動出来ます。恐らく通常はこちらのコマンドを使う方が多いと思います。
$ git checkout -b [コピーして作成するブランチ名]
作成したapi改造用ブランチをリモートに登録する。
ローカルリポジトリに新しいブランチを作成したので、リモートにプッシュします。
git push [紐付け名] [作成したブランチ名]
なお、-u オプションをつける事で次回から[紐付け名]を省略が出来ます。
git push -u [紐付け名] [作成したブランチ名]
Githubのマイページを更新すると develop_chengeToJson
ブランチが増えています。
以上です。