Android StudioでHello World!を表示する原理
Android Studioとgitlabの環境構築をすることができました。
早速、アプリを開発...
...と言いたいところですが、androidアプリがどのような原理で動作しているのか、どのようなライブラリが用意されているのかなど、全く知らない状態です。
まずは基本の勉強です。
今回は、Andoroid Studioで空のプロジェクトを作成すると「Hello World!」と表示されるシンプルなアプリがデフォルトで作成されますが、この原理について記載します。
私は普段業務でC++を扱っており、偏った知識があるかもしれませんが悪しからず..。
プロジェクトの作成
Android Studioを起動し、「ファイル」→「新規」→「新規プロジェクト」を選択します。
空のアクティビティを選択して「次へ」を押下、
任意のプロジェクト名を入力して設定はデフォルトのままで「完了」を押下します。
新しくプロジェクトが作成されて、下記のファイルがあらかじめ作成されています。
このプロジェクトウィンドウでは目的に応じてビューを切り替えられるようになっていますが、Androidビューで開発を進めます。
基本的に下記のビューを使用することになります。
主なファイルの特徴は下記のとおりです。
- MainActivity:アプリの画面です。1画面につき1つのアクティビティファイルが必要で、デフォルトプロジェクトでは1画面しかないので、ここでもファイルは1つだけです。
- res/drawable:画像を使用する際はここに画像をあらかじめ保存する必要があります。デフォルトではAndroidの画像が用意されているようです。
- res/layout:画面のデザインを記述します。
- res/mipmap:アプリのアイコン画像が保存されています。
- res/values:文字列はここで定数として管理します。基本的にコード内でハードコーディングするのは望ましくないので、ここで定義した定数を都度参照するようにします。
画面のデザインをres/layoutで、動作をActivityで開発することで効率よく作業を進めることができるようですね。
MainActivity
下記のコードがデフォルトで記述されています。
MainActivityというクラスはAppCompatActivityというクラスを継承して、
その親クラスで定義されているonCreateをオーバーライドしていますね。
onCreateはC言語などでいうmain関数のようなもので、アプリを起動するとまずここの処理が走ります。
次に、setContentViewというメソッドにR.layout.activity_mainという引数を渡しています。これはどうやらsetContentViewというメソッドがR.leyout.activity_mainで定義されている内容を表示させているようです。
ではR.leyout.activity_mainとは何者でしょうか。
activity_main.xml
下記のコードがデフォルトで記述されています。
MainActivityではsetContentViewでこのファイルのベース名を指定していたようです。
このファイルにTextViewというヴィジェットが定義されており、
12行目で「android:text="Hello World!"」と定義されています。
この文字列がアプリの画面に表示されていたわけです。
まとめ
Android Studioでは簡単に開発ができるように様々な機能が準備されています。
まずは、これらの使い方を勉強していくことがアプリ開発への近道のように感じました。
私の性分でonCreateのメソッドの中身はどうなっているのか、といった細かいことを調べたくなってしまうのですが、当面の間はやめておこうと思います...。
余談ですが、私はAndroid Studioの環境を構築した後に開発方法をWebで独学してやろうと数時間ネットサーフィンをしていましたが、あまりにも時間がかかってしまうので挫折しました...。
あきらめて本を買って勉強を始めたところ、Webを自転車に例えるなら本は新幹線にのっているような速さで知識を深めることができました。
はじめからケチらず本を買うべきでした...。
gitlabでソースコード管理
先日、Android Studioの開発環境構築を構築することができました。
本格的にスマホアプリを開発していく前に、ソースコードの管理方法について検討したいと思います。
手段
ソースコード管理手段として検討したのはgitlabとgithubの2つです。
2つの手段を比較サイトで見ていたところ、下記の点から今回はgitlabを採用します。
- 無料
- ソースコードを非公開でサーバーにあげることができる
- 容量が無制限
まだ趣味の域を出ておらず、ランニングコストがかからないことは重要です。
ですが、こんな自分でもすごいアプリを開発できてしまうかもしれないと妄想すると、ソースコードは秘密にしておきたいと感じました。笑
gitのインストール
PCにgitをインストールします。
下記のサイトが非常にわかりやすく解説をしており、とても参考になりました。
上記サイトで説明されているtortoise gitをインストールするとGUIで簡単にソースコード管理をすることができますが、今回はAndroid Studioからコミット・プッシュなどをしてしまうので不要です。
gitlab アカウント作成
gitlabのホームページでアカウントを作成します。
この手順に関してはネットで検索をすると詳しく解説されたページがいくらでも見つかりました。
併せてプロジェクトの作成もしてしまいます。
SSHキーの作成
SSHキーを作成して、gitlabとAndloid Studioへ設定を行います...
と、言いたいところですが今回はパスワード方式で通信します。
SSHキーの設定を試みましたが実現することができませんでした...。(後述)
Android Studioの設定
Android Studioでgitの設定をしていきます。
プロジェクトを開き、「VCS」→「バージョン管理統合を使用可能にする(E)...」→「Git」を選択
これでローカルにリポジトリが作成されました。
gitをインストールしたパスの設定などは自動で行ってくれるみたいですね。
次に、プロジェクト内のファイルを管理対象ファイルに設定します。
ファイル名は色によって下記の意味をもちます。
- 赤色:管理対象外
- 緑色:管理対象に追加予定
- 白色:最新の状態
ちなみに、背景が緑色にマークされているファイルはテストファイルであることを意味しているそうです。
他にもファイルの内容に応じて色分けされます。
プロジェクトのトップで右クリック→「Git」→「追加」を選択することで
全てのファイルを管理対象にすることができます。
しかし、ビルドで生成した設定ファイルなど管理対象に含めたくないファイルもあるはずです。
そういったファイルは「.gitignore」ファイルに記載することで管理対象外にすることができますが、あらかじめ管理不要なファイルは自動で設定してくれているみたいでした。
あとはコミット、プッシュ、マージで無事gitlabでソースコード管理をすることができました。
はまりポイント
gitlabとAndroid Studio間はsshで通信したかったので、しばらく設定と格闘していましたが実現することはできませんでした。
ネットで調べてみてもかなり古いサイトばかりで記載されている手順通りには進みません...。
サイトにはプラグインからGitLab Projectをインストールすればできると書いてありましたが、できないのでインストールせずに実現しました。
ご存じの方がいましたら、教えていただけますと幸いです。
Android Studioのヘルプサイト
余談ですが、Android Studioのヘルプサイトが全く大したことが書いてなくて不親切だと憤っていたんですが、ところどころダイアログの隅っこにある?マークをクリックすると詳しいサイトに飛べました...。早く押すべきだった...。
職場ではかなり昔から使われているソフトでソースコード管理を行っており、自分の知識が古いままであることに懸念を抱いています。
時代に置いて行かれないためにも、いろんなものに触っていきたいものです...。
android studioとJDKの関係
Android Studio
アンドロイドのスマートフォンアプリを開発するために必要な開発環境です。
使用されるプログラミング言語は主にjava、Kotlinです。
kotlinはjavaと比較して、少ない行数で実装することができます。実行時にjavaのソースコードに変換されるので、javaの互換性があります。
JDK(Java SE Development Kit)
Javaプログラミングをする上で必要なコンパイラやデバッガ、ライブラリ、仮想マシン環境が含まれています。
Android Studioで開発する上でJDKのインストールが必要か
Android Studioをインストールすると最新バージョンのOpenJDKがバンドルされています。(組み合わされています)
Android Studioから実行する場合はJDKを別途インストールする必要はなさそうですね。