Edited at

チュートリアルだと気づけないAndroidアプリ開発を始める上で必要になる知識


概要

Android Kotlin codelab courseでKotlinに関する知識やAndroidのコードに関する知識はかなり手に入れることができますが、

実際に開発を始める上で必要になる知識があると感じているので、それをまとめて紹介しようと思います。


Android Studioを効率的に使う

知っておけば楽になったのに、、というのが結構たくさんあります。


なぜかビルドできない、importできないときの1次対応


  • File - Sync Project with Gradle FIlesしてみる

  • ダメならFile - Invalidate Caches and Restartを試す

  • ダメならプロジェクトをimportしなおす。ここから一度プロジェクトを消せます

image.png


CMD + SHIFT + A(Win: Ctrl + Shift + A): Actionの検索

※ CMD = Command

このコマンドを入力すると、Android Studio上でできることが全て表示され、検索することができます。まず最初にこのショートカットだけ覚えれば検索結果にそれを行うショートカットも表示されるため、何でもできるようになります

リネームなどのリファクタリングしたいとか、プロジェクトのSyncをしたい(Gradle sync)したいとか、いちいちこの項目はFileのメニューに入っていて、、とか探すの大変なので、いろんな何かがしたいときに、Actionを検索することができます。

image.png


SHIFT + SHIFT: すべての場所から検索

何かを探したい!というときに、ファイルもクラス名もメソッド名も全部探せるのがこのコマンドです。

ただ、このコマンドはすべての場所から検索するので、多少ラグがある場合があります。そこが気になってきたらファイルの検索(CMD+SHIFT+O(Win:Ctrl + Shift + N))や、シンボルの検索(CMD+OPTION+O(Win:Ctrl + Alt + Shift + N))を使い分けて覚えていくといいでしょう。


CMD + クリック(または CMD + B): 参照ジャンプ(宣言に(直接)移動)によって、移動する

(WindowsではControl + クリックなど)

コードを読んでいるときは、このファイルの実装ってどうなっているんだろう。と飛びたくなることがよくあります。また呼び出し元を検索したくなることもよくあります。そんなときはCMDを押しながらクリック、またはCMD + Bで飛ぶことができ、また宣言上で、CMD + Bで呼び出し元も検索できます。cmdb.gif


メモリを設定しよう

大きいアプリではデフォルトの1280MBではAndroid Studioのメモリサイズが足りず、フリーズして辛いことがあります。

自分が使っているPCのスペックのメモリサイズを確認して、Help - Edit Custom VM Optionsでメモリサイズを変更しておきましょう。

image.png

-Xmx4G


Project viewによるプロジェクト表示を使う

デフォルトではAndroid viewという表示になっています。この表示はシンプルにファイルを表示してくれますが、実際のフォルダ構造と違うので、実際にファイルを置いたりするときに手間取ったりします。Project viewを使うことで、実際のフォルダ構造と同じ形で表示してくれるので、トラブルを回避しやすいです。

image.png


デバッグとデバッグ時にコード実行

デバッグでとめたいときにこのあたりをクリックするとブレークポイントをはることができます。

image.png

image.png

この状態でこの虫ボタン🐞を押すことで実行時にそこを通ったときに止めることができます。

image.png

image.png

またアプリを普通に起動している状態で、途中でデバッガーをつけたくなった場合はこのボタンを押すことで、アプリの再起動無しでデバッガーをつけることができます。

image.png

止めたときに変数の中身が見たくなるかもしれません。そのときはAltを押しながら変数をクリックするとその変数の中身をみることができます。

test.gif

また計算機ボタンを押すことで、ブレークポイントで任意のプログラムを実行することができます。

calc.gif


Gradleによるビルド

Android Studioからのビルドは内部的にGradleというビルドシステムを使っています。

コンソールから以下のように./gradlew tasksを実行すると、以下のように表示されます。

このリストによって何ができるのかがわかります。

$ cd android-sample-project

$ ./gradlew tasks
> Task :tasks

------------------------------------------------------------
Tasks runnable from root project
------------------------------------------------------------

Android tasks
-------------
androidDependencies - Displays the Android dependencies of the project.
signingReport - Displays the signing info for the base and test modules
sourceSets - Prints out all the source sets defined in this project.

Build tasks
-----------
assemble - Assemble main outputs for all the variants.
assembleAndroidTest - Assembles all the Test applications.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that depend on it.
buildNeeded - Assembles and tests this project and all projects it depends on.

例えば一番上のandroidDependenciesを実行してみしょう。以下のように依存しているライブラリが表示されます。このようにビルドを実行することでAndroid Studioではアプリをビルドしています。

./gradlew androidDependencies

> Task :model:androidDependencies
debug
debugCompileClasspath - Dependencies for compilation
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.20@jar
+--- org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.10.0@jar
+--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.20@jar
+--- org.jetbrains.kotlin:kotlin-stdlib:1.3.20@jar
+--- org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:0.10.0@jar
+--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.20@jar
+--- org.jetbrains:annotations:13.0@jar
\--- com.soywiz:klock-jvm:1.1.0-eap-100@jar
...

具体的には./gradlew assembleDebug (./gradlew asDeなど省略可)のようにすることでアプリのバイナリ(apkファイル)を作ることができます。


まとめ

初心者に教えるときに効率的になる、ハマりがちなポイントを軽くお教えしました。

何かありましたらまた追記します。またこういうポイントも!みたいな所があれば気軽にコメントしてください! :pray: