【Kotlin】Android developers公式の学習コース④(デバッグ)【やってみた】
・Android アプリでは、Log クラスを使用し出力をログに記録する方法がある。
出力をログに記録する関数は以下がある↓
Log.v()
Log.d()
Log.i()
Log.w()
Log.e()
これらのメソッドには 2 つのパラメタがある。
1つ目は「タグ」といい、ログメッセージのソースを識別する文字列(テキストをログに記録したクラス名とか)
2 つ目は実際のログメッセージ。
★ログの使用開始手順↓
①MainActivity.kt でクラス宣言の前にTAGという定数を追加し、その値をクラス名 MainActivityする
private const val TAG = "MainActivity"
②MainActivityクラスにlogging() という新しい関数を追加
fun logging() {
Log.v(TAG, "Hello, world!")
}
③onCreate()メソッド内でlogging()を呼び出す
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
logging()
}
④アプリを実行して実際のログを確認。ログは画面下部 [Logcat] ウィンドウに表示。
※ログタグは通常、クラスの外で宣言される。この変数は MainActivity の外で宣言されるのに非公開として宣言されるからMainActivity.kt でしかアクセスできない。だから、他のクラスでもTAG 変数を宣言できる
【Kotlin】Android developers公式の学習コース③(単体テスト)【やってみた】
公式には以下説明があったけどよくわかんなかった・・
「app/build.gradle ファイルを開き、依存関係を確認する」
まずapp/build.gradle が見つからなかったw
ExampleUnitTest.ktの中にはExampleUnitTestクラスがある。中身はこれ↓
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}
※assertEquals()メソッドは 2 つのパラメタ(期待値と実際値)を取る。
★単体テストの実行
addition_isCorrect()メソッド宣言の横にある矢印(行番号のすぐ横の緑のやつ)をクリックし[Run ‘ExampleUnitTest.addition_isCorrect'] を選択して実行。
★単体テストの作成
・@Testアノテーションをつける。アノテーション宣言(インポート)も忘れずに↓
import org.junit.Test
※ctrl + Enterでサジェスト出る
・指定する数値がある数値の範囲内かテストしたい場合はアサーションメソッドは assertTrue()にする。
ampleUnitTest {
@Test
fun generates_number() {
val dice = Dice(6)
val rollResult = dice.roll()
assertTrue("The value of rollResult was not between 1 and 6", rollResult in 1..6)
}
}
※( )の間にカーソルを置きCtrl + Pしたらメソッドが取るパラメタを示すツールチップが 見れる。Condition(条件のBool)は条件式をかく。
【Kotlin】Android developers公式の学習コース②【やってみた】
Androidアプリ作成二日目。
今日の収穫↓
・使いたい文字列はハードコーディングせずstrings.xmlに登録してから使う。当たり前だけど忘れずに。
([app] > [res] > [values] > strings.xml)
Ex)
<resources>
<string name="app_name">Happy Birthday</string> // アプリ名
<string name="happy_birthday_text">Happy Birthday!</string>
<string name="signature_text">From Sam.</string>
</resources>
<TextView
android:fontFamily="sans-serif-light"
android:text="@string/happy_birthday_text"
android:textColor="@color/black"
android:textSize="34sp"
/>
※strings.xmlに登録した文字列をレイアウトのとこで取得して使うには
レイアウトのtextに@string/happy_birthday_text指定したらよい。
・画像を文字の下に配置したい場合
Component Tree内のConstraintLayoutにある色んな要素(textViewやimageViewとか)
の一番上にimageViewを移動させたらよい。
・Android Studio の [Resource Manager] を使用すると画像やその他リソースを追加して配置できる
[View] > [Tool Windows] > [Resource Manager]
・ImageView はアプリ内で画像を表示するための UI 要素
・ImageViews にはアプリを利用しやすくする内容説明を設定するように
・ユーザーに表示するテキストは文字列リソースに抽出(strings.xml)し、他言語への翻訳をしやすくした方がいい
・Androidでは、main() 関数を呼び出す代わりにアプリ初回起動時に Android システムが MainActivity の onCreate() メソッドを呼び出す
・MainActivity.kt クラスを変更して、アプリにインタラクティブな動作を追加できる
・setOnClickListener() を使って Button に on-click リスナーを設定し、Button がクリックされたときの動作を追加できる
・IntRange で random() 関数を呼び出し乱数を生成できる((1..6).random())
・インスタンスを作成するとき、クラスに値を指定できる。たとえばclass Dice(val numSides: Int) のように指定してから、Dice(6) でインスタンスを作成できる
・関数は値を返せる。関数定義で返されるデータ型を指定し関数本体で return使用して値を返す(例: fun example(): Int { return 5 })
・whenを使用すると、値の比較に基づいてコンパクトな形式でコードを実行できる。
・setImageResource() を使ってImageView に表示される画像を変更できる
・when式などの制御ステートメントで色んなケースを処理できる。状況に応じて異なる画像を表示したりとか
難しいーーーーー!!!
【Kotlin】Android developers公式の学習コース①【やってみた】
今日からAndroid developers公式のKotlin学習コース?を始めてみた!
ビデオも結構あったしオンライン上でのKotlin実行環境も用意されててすごい便利だった!
今日の収穫↓
・Android Studioアップデートした
・新しいプロジェクト作成した(Birthday Cardのアプリ)
・一連の手順を繰り返したい場合repeat()が使える
fun main() {
printBorder()
}
fun printBorder() {
repeat(3) {
print("=")
}
}
・Layout Editor で Android アプリの UI が作成できる
・アプリの画面に表示されるものは、ほぼすべてが View と考えていい
・TextView は、アプリ内でテキストを表示するための UI 要素
・ConstraintLayout は、他の UI 要素のコンテナ
・Views はConstraintLayout 内で水平方向と垂直方向に制約する必要あり
・余白はView とそれが入ってるコンテナの端との距離を表す
・TextView にはフォント、テキストサイズ、色とかの属性を設定できる
…難しい!!けど楽しい!!
【Kotlin】paizaラーニングのKotlin体験編②【やってみた】
今日の収穫↓
・プログラムの実行時、ターミナルでプログラムの入出力先の指定ができる
・入力されたデータが等しいか判定
equals()を使う。
a.equals("b") 等しい 変数aは"b"と等しい
・Kotlinでのfor文
カウンター変数 i でカウントし終了条件である 3 まで繰り返し処理をする
fun main() {
val greeting = "Hello world"
for(i in 1 .. 3) {
println(greeting)
}
}
・複数行のデータの受け取り
繰り返し処理の中でreadLine()を使うと、標準入力から1行ずつ複数行のデータを受け 取れる
受け取った整数回だけ繰り返す↓
fun main() {
val count = readLine()!!.toInt() // 回数を標準入力から受け取って表示
println(count)
val greeting = "Hello world" // ↑で受け取った回数だけ変数greetingで文字列表示
for (i in 1 .. count) {
println(greeting)
}
}
【Kotlin】paizaラーニングのKotlin体験編①【やってみた】
Androidアプリ開発勉強のためにKotlinを勉強してみようと思う。
演習とか無料でできるやつ探したけど、paizaラーニングで体験できるらしいからやってみた。
とりあえず今日の収穫↓
・val か var で変数を宣言
val : 一度だけデータを入れられる
var : 何度もデータを入れられる
・変数に文字列を代入
val greeting:String = "Hello"
・変数に整数を代入
var num:Int = 100
・型推論
データの型は宣言を省略できる
・整数と文字列の連結
整数データに文字列を連結する場合はtoString()で文字列に変換してから
fun main() {
val price = 100
println(price.toString() + "円")
}
※逆に、文字列に整数を連結する場合は変換いらない
・データの受け取り(文字列)
readLine()を使う、データを受け取る関数。実行時に渡したデータ(入力タブから)を変 数nameに代入してる↓
fun main() {
val name = readLine()
println("Hello ${name}")
}
データの受け取り(整数)の場合
fun main() {
var num = readLine()!!.toInt()
println(num + 1)
}
toInt()で読み取った文字列を数値データに変換。「.」(ドット)で前の関数の結果を受け取り次の関数で処理。
!!は受け取るデータが必ず存在することを指定するものらしい。推奨されない書き方らしいけど消したらエラーになった。