8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

現役AndroidエンジニアがAndroid Kotlin Fundamentalsコードラボに挑戦!その1

Last updated at Posted at 2021-06-28

はじめに

約2年半前AndroidStudioに初めて触れ、
勉強会で教えてもらいながら個人アプリ開発などを行ってきた。
本業でAndroidエンジニアなったのはここ1年足らずなのだが、
Android開発楽しい!と思う反面、分からないことが多く悔しいぃぃとなることも多い...。
KotlinやAndroid開発のことをもっと理解したい!!ということで
Googleさん公式基礎トレーニングの
Android Kotlin Fundamentalsコードラボに挑戦!!

Lesson 1: Build your first app

##01.0: Install Android Studio
https://developer.android.com/codelabs/kotlin-android-training-install-studio?index=..%2F..android-kotlin-fundamentals#0

内容

  • AndroidStudioのインストール

01.1: Get started

内容

  • AndroidManifest.xmlやGradle Scriptsなど自動で作成されるフォルダの解説
  • 仮想デバイス(エミュレータ)でアプリを実行
  • 物理デバイスでアプリを実行
  • 「HelloWorld」を「HappyBirthdayto〜」に変更
  • 宿題:app_nameを変更

      

メモ

  • 常に仮想デバイスと物理デバイスの両方でテストするのが推奨されている

##01.2: Anatomy of Basic Android Project
https://developer.android.com/codelabs/kotlin-android-training-app-anatomy#0

内容

  • 自動で作成されるActivityの解説
  • xmlの解説 (LinearLayout)
  • サイコロアプリの作成
    • Buttonの追加
    • 文字列リソースの抽出
    • indViewById()の使用
    • setOnClickListener()の使用
    • Toastの使用
    • .textで文字列の変更
    • 乱数の取得
  • コーディングチャレンジ:カウントアップボタンの追加
  • 宿題:リセットボタンの追加

      
      

メモ

  • 文字列リソースの抽出
    • 文字列を選択して Option+Enter → Extract string resource
  • 1~6の乱数取得
    • (1..6).random()
  • メンバ変数の宣言だけを行いたいときは lateinit var を使う

01.3: Image resources and compatibility

内容

  • 画像が表示されるサイコロアプリの作成
    • drawableに画像を配置
    • ImageViewの追加
    • 数字と画像を紐づける
    • findViewById()する場所を変更して効率を良くする
    • デフォルト画像の設定
    • toolsでプレビュー画像を設定
  • APIレベルの解説
  • サポートライブラリの解説
  • コードチャレンジ:サイコロを2つにする
  • 宿題:クリアボタンの追加

      
      

メモ

  • when文の書き方
val drawableResource = when (randomInt) {
            1 -> R.drawable.dice_1
            2 -> R.drawable.dice_2
            3 -> R.drawable.dice_3
            4 -> R.drawable.dice_4
            5 -> R.drawable.dice_5
            else -> R.drawable.dice_6
        }
  • findViewById()は、Androidシステムがビュー階層全体を検索するためコストのかかる操作 = 重い!
  • ボタンをタップするたびにfindViewById()せずに、メンバ変数に書こう
  • ベクター画像は拡大縮小できる上、PNG画像よりも軽い = アプリファイルが小さくなる

01.4: Learn to help yourself

内容

  • Basic Activityの解説
  • Basic Activityをカスタマイズ
  • Activityの追加
  • サンプルアプリの解説
  • ランチャーアイコンの変更
  • 参考になるサイトの紹介

      
      
   

メモ

感想

経験者向けだと思って身構えていたが、Android開発未経験の人でも取り組めそうな内容だった!
ただ、コーディングチャレンジや宿題は考えて作る必要があり結構難しかった。
また、公式の情報が載っているサイトは思ったよりたくさんあることを知った!使い分けながら活用していきたい!
これは自業自得だが、英語が苦手なので日本語に自動翻訳しながら読み進めたため、ところどころ文章がおかしくて読みにくかった...。
全体を通して思ったよりも時間がかかり、いつ終わるんだろう...と気が遠くなったこともあったが新しい発見があったりアプリがどんどんできていったりと楽しかった!!
次章も楽しみ!!

かかった時間:約7時間半
※AndroidStudioやエミュレータはもともと入っていたのでインストールやダウンロードの時間は含まない

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?