ベータコンピューティングの活動や技術、開発のこだわりなどを紹介するブログです。



Androidアプリケーション開発を経験して学んだこと#ツール編

この記事について

こんにちは、Beta Computing株式会社でアルバイトをしていますAndroidアプリケーション開発担当です。
現在、Androidアプリケーションの開発を学んでおり、そこで得た知識をこの記事で書いていこうと思います。
ただし、どのようなアプリケーションを開発したかはここでは秘密保持の関係上述べることはできませんのでご了承ください。

目次

Androidアプリケーションを開発して思ったこと

Androidアプリケーションの開発において、私が感じたことを述べます。
まず、コードの書き方やツールの更新が非常に早いことが挙げられます。1、2年前に書かれた記事を参考にしても、新しい技術や流行が出現したことで、その情報が古くなってしまうことがよくありました。私は主に本を購入して技術を学んでいましたが、本は体系的に学べるメリットがある一方で、出版時点ですでに技術が古くなってしまうデメリットもあることを学びました。これらのことから、アプリケーションの開発においては、常に最新の情報を追いかけることが重要だと感じました。
また、経験からしか分からないことが多いということも感じました。インターネット上には様々なコードの書き方やツールの使い方が説明されていますが、それらの最適解を知る方法は限られています。私がアプリケーションを作る過程で、Androidアプリ開発担当の有明さんから様々な指摘を受け、多くのツールや技術を学ぶことができました。私が勉強不足だったこともありますが、普通にインターネットや書籍で調べても知ることができなかった知識がたくさんありました。これらのことから、アプリケーション開発においては、経験を積むことが重要だと感じました。 以上が、私がAndroidアプリケーション開発において感じたことです。常に最新の情報を追いかけることと、経験を積むことが重要だということが分かりました。今後も、これらのことを意識してアプリケーション開発に取り組んでいきたいと思います。

学んだこと

1. GitBucketについて

アプリケーションのバージョン管理およびコードレビューは、GitBucketと呼ばれるツールを使用して行いました。
GitBucketは、Web上でGitを管理するためのGitのホスティングサービスの1つです。
また、自分のサーバー上で管理・運営することができ、GitHubのように外部にソースコードを公開せずにWeb上でリポジトリを管理することができます。
GitBucketはオープンソースで公開されており、弊社でも社内用サーバに導入しています。

私はGitHubやGitLabを使用した経験がありましたので、少し慣れない部分もありましたが、基本的な使い方はすぐに慣れることができました。しかし、プルリクエストを立ててからマージする流れは今でも時々混乱します。
そこで、本項ではGitBucketを使用してプルリクエストを立ててからマージするまでの手順を簡単にまとめておこうと思います(リポジトリの作成やCloneなどは既に行われているものとします)。

手順1:プルリクエスト画面を開く

まずGitBucketを開くと、下のような画面になると思います。

右のメニューの中から「Pull requests」を選択します(画像の吹き出しを参考にしてください)。
次に右上の「New pull request」ボタンをクリックして新しいプルリクエストを作成していきます。

手順2:マージ先とマージするブランチを指定する

まず、ページ上部でマージ先とマージするブランチを作成します。今回はsubブランチをmainブランチにマージしたいので、下の画像のように選択します。左がマージ先のブランチで、右がマージするブランチです。

選択後は「Create pull request」ボタンをクリックして次の画面に進みます。

手順3:プルリクエストの内容を記述

ここでは、プルリクエストの内容を記述していきます。まず下の画面上部にタイトルと変更内容を記述する場所がありますので、そちらにそれぞれ記述します。 ここでは、他の方がレビューすることになるので、丁寧に書きます。

内容に問題が無ければ、右下の「Create pull request」をクリックします。

手順4:プルリクエストを確認する

無事プルリクエストを作成できれば、「pull requests」のメニューから先ほど作成したプルリクエストの詳細画面にたどり着けることができます。以下がその画面です。

ページ下のコメント欄からコメントすることも可能です。レビューする側の人はこちらから指摘事項を投稿します。

手順5:マージしてクローズする

レビューが終わり、いよいよマージすることになった場合は、先ほどの画面の真ん中にある「Merge pull request」ボタンをクリックしてマージします。
その際、コメントを書く画面に移るので、コメントを書いて「Confirm merge」ボタンをクリックしマージを確定します。
この手順を踏めば、プルリクエストは自動的にクローズされるようです。
私はよくこの手順を間違えてマージする前にクローズしたりしていました。

以上がGitBucketにおけるプルリクエストからマージまでの手順となります。
普段様々なツールを使い分けていると混乱してしまうのでこの機会に使い方整理してみました。

Git Bucketの詳しい情報は以下からご覧ください。

GitBacket詳細はこちら(GitBucket公式ページ)


2. GitHub Desktop(GUI)について

今回の開発ではGUI(グラフィカルユーザーインターフェース)であるGitHub Desktopを使用してGitを操作しました。
私がGitを勉強するために読んでいた本の内容がコマンドによる操作中心で、今までGUIには触れてきませんでしたが、勉強目的でGUIを導入してみました。
GitのGUIクライアントには色々ありますが、今回はGitHub Desktopが一番使いやすそうに見えたのでこちらの説明をします。
まずGitHub Desktopを導入して感じたことは、直感的でとてもわかりやすく、操作が簡単だということです。
以下の画像がGitHub Desktopの画面一例です。
リポジトリの選択、ブランチの選択、コミットまでクリック一つで可能です。
さらにコマンドを打つことを無く差分を確認したり(真ん中の緑の枠をご覧ください)、コミットするファイルの選択も簡単に選択することができます(ファイル右のチェックから可能です)。
しかも変更も勝手に認識されます。

もちろんプッシュもクリック一つでできます。下の画像をご覧ください(さらには、画面の中央でコミット後にプッシュできることを提案してくれますね)。

また、「History」タブを開けば、今までのコミット履歴を変更差分と共に簡単にかつ視覚的に確認することができます。下の画像をご覧ください。

ブランチの新規作成も簡単です。下の画像をご覧ください。

さらにはCherry-pickと呼ばれる他のブランチのコミットを別のブランチに適応させる操作もGitHub Desktopだとドラッグ&ドロップだけで出来てしまいます。

これには感動しました。

以上がGitHub Desktopの基本的な使い方になります。コマンドより簡単に操作が出来るため基本的にはこちらを使っていこうと思います。

GitHub Desktop詳細はこちら(GitHub Desktop公式ページ)


3. Kotlinについて

今回のAndroidアプリケーションの開発言語にはKotlinを使用しました。
私はJavaを既に学習しており、Androidアプリケーション開発においてもJavaを用いようと考えていましたが、Kotlinの方が効率的かつ安全にアプリケーションを開発できるとのアドバイスをいただき、Kotlinによる開発に挑戦することとなりました。

kotlinとは?

まずkotlinとはどのような言語でしょうか。 KotlinはJavaと互換性のある、JVM(Java仮想マシン)上で動く言語です。つまりJavaのコードはKotlinで呼び出すことが可能ですし、その逆も可能です。 また、Javaよりもコードを簡潔に書くことが出来ます。 以下はKotlinの一例です。

fun main() {
  println("Hello, world")
  // Hello, worldと出力されます
}

さらにkotlinにはnull安全性が保証されています。
null安全性は簡単にいえば、non-nullable型などを導入することでnullに関連する例外が起こらないようにしてくれるシステムです。
non-nullable型とは、nullを代入することを許さない型です。
そもそもnullを使わないようにすることで、Javaで起こりがちだったNullPointerException例外を極力排除することが出来ます(ただし入出力などでは適切にnullを扱う必要があります)。

以上がKotlinの大まかな特徴になります。KotlinはAndroidアプリケーション開発の公式言語であり、今後もよりKotlinの需要は増えていくと考えていますので、私も乗り遅れないようにKotlinについてもっと勉強しようと思います。

Kotlinについては、以下の公式サイトからさらに詳しく知ることが出来ます。

kotlin詳細(Kotlin公式サイト)

まとめ

本記事では、Androidアプリケーション開発を通して学んだことの中でもツールに関連するものをまとめました。
このような便利なツールは、知らないだけで他にもたくさんあり、自分でも探してみようと思いました。それらを使いこなして自分の力にしたいと考えています。