AROAは、高専プロコン第33回群馬大会 課題部門提出作品です。
企画書 AROA -拡張現実で日常に競争を-
AROA_Androidは、AROAのAndoridアプリです。
AROAは、Andorid, WearOS, Nrial Air のアプリケーションで構成されます。
Andoridアプリは主な機能を担っています。
Androidアプリ単体でも動作しますが、WearOS と Nrial Air と連携させることで進化を発揮します。
main
動く状態のアプリを置くようにしたい
dev
開発途中で機能を統合していくブランチ
feature/hogefuga
機能を開発する為のブランチ
-
git switch dev
でdevブランチに移動する。 -
git switch -c ブランチ名
で、devブランチから新規ブランチを作成します。
ブランチ名のつけ方に関しては、 ブランチ命名規則 を参照してください。 -
作業をします。この際、コミットの粒度を細かくすることを意識してください。
詳しくは コミット粒度について を参照 -
作業中に15分調べたり考えてもわからない事がある際は、
Draft Pull Requestを用いて、わからない箇所を聞くとコードを見ながら意見を出し合えます。
Draft Pull Request の使い方
もし、この機能の使い方がわからない時は、プロジェクトの管理者に直接連絡して聞くとよいです。
優しく教えてくれます。 -
作業が完了したら、dev ブランチにプルリクエストを投げます。
この際、チームリーダーや、リポジトリのオーナーをレビュワーに指定してください。
プルリクエストの投げ方は、 プルリクエストの作成方法 を参照してください。
この際、コードレビューをする人はこの記事を熟読している事が推奨されています。 -
レビュワーのコードレビューを待ちます。
レビューが帰ってきたら、レビュワーの指示に従い、コードの修正またはマージを行ってください。
この際、コードレビューを受ける人はこの記事を熟読している事が推奨されています。 -
コードレビューが完了し、無事にマージされたら基本的にはブランチは削除して構いません。
別途、管理者の指示がある場合はそれに従いましょう。
本プロジェクトは、以下の環境を想定しています。
ツール名 | バージョン |
---|---|
AndroidStudio | Chipmunk 2021.2.1 Patch 2 |
Git | 2.37.1.windows.1 |
JDK | 1.8 |
また、各種設定は済んでいるものとします。
git clone https://github.com/nitoc-ict/AROA_Android.git
または
git clone [email protected]:nitoc-ict/AROA_Android.git
でリポジトリをクローンします。
今の所はこれだけで完了です。
API_KEYを記入したファイルなどが必要になったら追記してください。
コミットの粒度(コミットをする間隔)は、できれば小さいほうが良いです。
なぜなら、レビュワーが変更を追跡しやすいからです。詳しくはこの記事を読むとわかると思います。
本プロジェクトでは、以下のルールでコミットを分けるようにしてください。
- ファイル名、クラス名、メソッド名、変数名を変更したときに名前の変更だけをコミットする
- この場合は、コミットメッセージで変更前と変更後を書くとよいです。
- 機能ごとにコミットする
- ファイルは1つずつコミットする
- そのファイルの役割をコミットメッセージで書くと分かりやすいです。
- ファイルが複数ある場合は、依存関係順にコミットしてください。
例:クラスAの内部でクラスBを使用している場合は、クラスBからコミットしてください。
一番意識してほしいのは、一連のコミットを見た人がどんな作業をしているのかを理解できるか?ということです。
逆に言えば、レビュワーに伝われば本プロジェクトでは問題ないです。
この記事を見れば意識すべきことは大体わかります。
しかし、上記の記事結構面倒だと思うので、参考程度にして大丈夫です。
基本的には以下のテンプレートを元に書いてください。
タイトル
タイトルには、そのブランチで何をしたのかをできるだけ簡潔に記述してください。
本文
# issue
ここには、関連するissueを書いておきます。
#1 という感じでissue番号だけで良いです。
# 変更内容
これは必須です。このプルリクエストにはどのような成果が含まれているのかを記述してください。<br/>
詳しくはコミットメッセージを見ればわかると思うので、概要で構いません。
場合によっては本文と同じでも大丈夫です。
# 変更理由
これは必要であれば書いてください。
文字通り、なぜその変更を行ったのかということですが、
基本的に「必要な機能だから。」になると思うので本プロジェクトでは基本的に書かなくても良いと思います。
何か特別に伝えておきたい意図などがあれば書いておいてください。