Tagbangers Blog

AndroidStudio基本の「キ」

昨年からAndroidアプリの開発をしていて、最近その面白さに気づき始めました、入社1年目の柿添です。

今回はAndroidアプリの基本のおさらいと、プログラムを書く上で知っておくといいことを以下の流れでご紹介しようと思います。

  • Androidアプリのレイアウトファイルとクラスファイル

  • ActivityとFragment

  • キャッシュ対策

  • 役に立つショートカットキー

  • Androidアプリのレイアウトファイルとクラスファイル

    Androidアプリの画面を構成しているものは、大きく分けて「レイアウトファイル」と「クラスファイル」になります。
    レイアウトファイルは、文字通りAndroidの画面に表示される、テキストや画像、ボタンなどディスプレイに映される「ビュー」によって構成されるファイルです。レイアウトファイルの生成には、1.XMLで記述する方法2.Javaのコードから生成するという2つの方法があります。
    クラスファイルは、レイアウト上でタップや画面のスクロールなど行われた時に、その動作の処理をJavaコードで行うファイルです。そしてこのクラスファイルにはさらにActivityFragmentという2つのファイルに分けることができます。
     
  • ActivityとFragment

    この2つはAndroidアプリ開発を行う上で非常に重要です。

    Activityとは、スマートフォンのウィンドウを保持し、レイアウトファイルで生成したテキストや画像などを表示させ、ユーザーのタッチ操作に反応するクラスファイルです。画面構成としては、1つの画面につきActivityは1つ表示されるので、ActiivtyからActivityへ画面遷移するときは、遷移元と遷移先で画面が入れ替わります。
    Fragmentは、Activity1つにつき、複数存在させることができます。そのため、1つのActivityで実装していたことを、機能単位でFragmentに分けて実装できます。基本的にFragmentを利用する際は以下のステップを踏んで行います。
  1. Fragmentのクラスを作成

  2. FragmentのViewの構築に利用するレイアウトファイルの作成

  3. ActivityからFragmentを呼ぶ

    Activity、Fragmentについて簡単に書いてみましたが、身近なものでいうと
  • Activityは引き出しはあっても中身のない空の「たんす」
  • FragmentはActivityの引き出しに入れる「衣類や小物」、「タンスカバー」

    と考えればわかりやすいでしょうか?



  • キャッシュ対策

    AndroidStudioでコードを書いていると時々、コードが赤くなることがあります。
    それは書いたコードが間違ってるんだろ!という声が聞こえそうですが、確かにそれもあります。というかその可能性が大です。ただし、たまにですがコードは正確に書かれている(例えばついさっきまで正常に動いていたコードとか)のに、エラーが出てしまうことがあります。理由はAndroidStudioのキャッシュにあります。このキャッシュが悪さをすると、さっきまで動いていたファイルにエラーが表示されます。このエラー対策には以下3つの手段があります。
  1. 「Gradle」から「app」にある「clean」でキャッシュをクリーンにする

  2. 「File」から「Invalidate Cashes/Restart」でキャッシュのクリアもしくは再起動をかける

  3. 「Build」から「Clean Project」もしくは「Rebuild Project」を使用する


  • 役に立つショートカットキー

    AndroidStudioはIntelliJ IDEAの開発ツールをベースに構成されています。なのでどちらか一方でショートカットキーを習得したら、両方の作業効率が上がります。まさに一石二鳥。私もまだ全てのショートカットキーを覚えたわけではありませんが、現時点で一番使えると思うキーを紹介したいと思います。

    Command + Shift + F

    例えば、ソースコードをダウンロードしてコードを調べたい時、あるコードがどう使われているかを知りたくなったとします。
    そんな時、上記のショートカットキーを使えば、気になったコードがどのように使われているか、プロジェクト内の全コードから調べることができます。このキーを知るまで、僕はコードをたどってこのファイルで使われているかな、と推測しながら作業を行なっていました。ただこの方法は個人の能力に依存してしまうところが大きく、非効率的でした。これを知ってからは作業効率はもちろん、プログラムの流れもわかるようになりました。