Androidプログラミングについて個人的にまとめたものです。内容には間違いが含まれている場合があります。
SDK
R
- Android SDKによって自動生成されるクラス
resディレクトリ以下に存在するリソースのIDが静的変数として定義される
参考:https://developer.android.com/guide/topics/resources/providing-resources?hl=ja#Accessing
LayoutInflater
- 定義されたレイアウトから
Viewを生成するためのクラス
val context: Context
val root: ViewGroup
val attachToRoot: Boolean // 生成したビューをrootの下に付けるか
val inflater = LayoutInflater.from(context)
val view1 = inflater.inflate(R.layout.layout_id, root, attachToRoot)
// これを一挙に行う関数が用意されている
// このとき、attachToRootは(root != null)になる
val view2 = View.inflate(context, R.layout.layout_id, root)LiveData
- 値のセットを通知するためのクラス
observe()で通知を受けるObserverのインスタンスを追加する- observerのlifetimeを指定できる
setValue()でobserversに通知する- フラグメントでは
onActivityCreated()の中でviewLifecycleOwnerをownerにしてobserveすると良い- こうすると、observerを適切なタイミングで生成・除去してくれる
参考:ttps://blog.usejournal.com/observe-livedata-from-viewmodel-in-fragment-fd7d14f9f5fb(2025/07/05現在、リンク切れ)
UI要素
参考:https://note.com/numero_dev/n/n2e0ec0105cea
- StatusBar:アプリに関わらずデバイスの状態を表示する最上部の領域
- NavigationBar:アプリに関わらず画面遷移を行うボタンを配置する最下部の領域
- NavigationDrawer:横からスライドするナビゲーション
- メニューのアイテム数が5つ以上のときに使うことを推奨している
- BottomNavigation:フッターに付くナビゲーション
- メニューのアイテム数が3~5つのときに使うことを推奨している
- BottomSheet:下からスライドする領域
- Dialog:ユーザーに操作を選択させるときに使う
- Snackbar:画面下部に表示するメッセージ
- アクションを1つ併記できる
- Toast:任意の場所に表示できるメッセージ
RecyclerView
参考:https://qiita.com/naoi/items/f8a19d6278147e98bbc2
- 項目を並べて表示するためのビュー
Adapter<VH extends ViewHolder>
- RecyclerViewに表示されるビューにデータをセットするための抽象クラス
- 項目の数を返す
getItemId() VHを生成するonCreateViewHolder()VHにデータをセットするonBindViewHolder()
- 項目の数を返す
RecyclerViewにセットされる
ViewHolder
- 1行分のビューを保持する抽象クラス
Adapterの型パラメータとして使用する
LayoutManager
- 項目の並べ方を制御するための抽象クラス
- 一般的なリスト表示を実現する
LinearLayoutManagerが用意されている
Toolbar
- App barを実現するためのクラス
- 他のコンテナと同様に配置してビューを操作する
- アクティビティにActionBarとしてセットすることもできる
AppCompatActivity.setSupportActionBar(toolbar)でセットする- その場合、処理はアクティビティのメソッドで実装する
Fragment
参考:https://mixi-inc.github.io/AndroidTraining/fundamentals/2.02.activity-and-fragment.html
- 付け替え可能なUIセットを管理するためのクラス
- ユーザーはいくつかのメソッドを実装する必要がある
onCreateView- ビューをinflateしてリターンする
onViewCreated- 生成したビューに対する操作を行う
onActivityCreated- フラグメントを再開するときには呼ばれない
- 生成が完了したアクティビティにアクセスできる
onDestroyViewonCreateViewで生成したものを破棄する- Back stackに積むときにも呼ばれる
- フラグメントの付け替えは
FragmentManagerから行う
FloatingActionButton
参考:https://stackoverflow.com/questions/30769080/bottom-align-floating-action-button
Tips
- 2019年11月以降、Google Playへ登録するアプリはAPIレベル28(Android 9.0)以上をターゲットとする必要がある
参考文献
翻訳 android best practice — Qiita Kotlinでインクリメンタルサーチをやってみる — Qiita Bottom Align Floating Action Button — Stack Overflow