見出し画像

そうだ、Android アプリを作ろう~準備編~いざログ取り大作戦

前回の記事(Android Studioにそっと触れてみる3) で「Android Studio に用意された架空デバイス」ことAVDを使用してアプリのひな型を動かすことに成功した。今回からはオリジナルのAndroidアプリを作っていきたいと思う。しかし、まずはオベンキョウが必要ということで、準備編からスタートしよう。

作りたいアプリなどない

プログラミングスキルの習得時あるあるだが、「プログラミングスキルの習得」をゴールにすると、無限壁打ちのようになり、精神的にきつくなってくる。何かを作るための手段。そうと捉えると、プログラミングとは健全な関係が築ける気がする。そこでオリジナルアプリを作るというゴールを設定したいが、作りたいと思えるアプリなんて思いつかない。この世にはすでに便利なアプリがごまんとあり、わざわざ自分の手を動かさなくても、既製品で大抵のことはできてしまう。豊かさはときに人のクリエイディビティを奪う

無理やりアイディアを出してみる

とはいえ、そんなことを書いていては先に進まないので、なんとかアイディアをひねり出してみる。ここはひとまず、ドロイド君の可愛い画像を何枚か表示させるアプリを作ってみようではないか。「それってわざわざアプリにする必要ある?」という意地悪な心の声が聞こえてくるが、無視して手を動かそう。

アプリのひな型はどのような作りになっているか

ドロイド君の画像を表示させるにあたり、いま使用しているアプリのひな型について知る必要がある。いま使っているひな型は以前の記事(Android Studioにそっと触れてみる)でプロジェクト作成時に「Basic Activity」なるものをチョイスして作られたものだ。ツールウィンドウと呼ばれる画面左のウィンドウを見ると、その構成要素を見ることができる。

ひな型を構成するものたち

いろいろな物が含まれていて、Android Studioをそっと閉じたくなるけど、ここではメインはjavaフォルダ内の3ファイルだと考えよう。MainActivity、FirstFragment、SecondFragmentの3つだ。

よく分からないソースコードを理解するために

とはいえ、この3つのファイルの中身を眺めていてもどんな仕組みでアプリが動いているかよく分からない。そんなときは、実際に動かしてみよう。というわけで、MainActivity.javaのソースコードに下記のような変更を入れてみた。

public class MainActivity extends AppCompatActivity {

    private AppBarConfiguration appBarConfiguration;
    private ActivityMainBinding binding;
    private final String TAG ="debug:MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e(TAG, " onCreate() call");
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

追加したのは2行。まず、以下のように文字列の定義を行い、

private final String TAG ="debug:MainActivity";

それをログに出力する以下の処理を入れた。Log.e()関数はログ出力のために用意された仕組みだと覚えよう。

Log.e(TAG, " onCreate() call");

Log.e()を初めてソースに入力すると、文字の一部が赤くなる。

なぜか一部分が赤い

そんなときはその部分にカーソルを当てて、「Alt」+「Enter」(※windowsの場合)を押すと、文字が黒色になる。赤色になっていたのはLog.e()を使用するために必要なクラス(道具)がインポートできておらず、それを注意喚起しようとするAndroid Studioのサービス精神だったというわけ。上記の操作を行うとAndroid Studioが勝手にソースを変更してそれを行ってくれる。そういう面倒見が良いところもまた、Android Studioの魅力のひとつだ。

このLog.e()をMainActivity.javaのそれぞれのメソッドに入れてみる。以下の5つだ。
1.onCreate()
2.onCreateOptionsMenu()
3.onOptionsItemSelected()
4.onOptionsItemSelected()
5.onSupportNavigateUp()
ダブルクォーテーションで囲った文字列内のonCreate()の部分は、例えばonClick()の中に入れる場合はonClick()に変更する。

注意点としては、onCreate()に入れる際は、super.onCreate(savedInstanceState); の行よりも後ろに入れることくらいだろうか。

ログ取り大作戦、開始

準備が終わったら、前回同様画面上部の右矢印を押す。すると、ビルドが実行され、成功すればAVDでアプリが起動する。もしビルドが失敗した場合は、追加したソースコードにエラーの要因があるので探してみて欲しい。ちなみに、よくプログラマーはビルドが失敗したことを怒られたと何故か擬人化して表現する(例文:Android Studioに怒られちゃったよ)。怒られてもめげない心が大事だ。

この部分の一番右アイコン

アプリを動かしながら画面下のLogcatタブを開いてみよう。端末から出力されているログをリアルタイムで見ることができる。

何やらいっぱい表示されている

上のウィンドウにdebug:MainActivityと入力すると、自分が入れたログだけを表示することができる。

邪魔なログが消えた

この状態でアプリ色々と操作してみよう。動かしながらログを見ると、「どんな操作をした時に、どんなメソッドがコールされるか」が分かり、意味不明だったソースコードが徐々に自分の中で意味を持ち始める。

こんな感じで触りながらログをチェック

今回は、ログ出力をやってみた。次回はそのログをもとにこのMainActivityをつぶさに見ていこうと思う。

いいなと思ったら応援しよう!