2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHONE APPLIAdvent Calendar 2024

Day 4

Jetpack Compose のチュートリアルをはじめからやり直してみた

Posted at

きっかけ

以前から jetpack compose に関するコードや記事を書いてきた

ところが最近、アプリを制作しても具体的にどうやって実装すれば良いかが見えてこなくて悩んでいる。

やり直す前

なぜ実装方法が見えていないのかを自分なりに考えてみた。

すると、自分の現状が基礎を理解していない状態であることがわかった。

  • そもそも@Composable ってどういう役割だっけ?
  • Android View から移行すると何が良かったんだっけ?
  • 基本的な文法があやふや
  • そう言った状況だからアプリ制作が進まない

そこで、 Android Developer サイトにある Jetpack Compose のチュートリアルをはじめからやり直すことにした。

今回はその中で一番最初のコースを行う。

チュートリアルで分かった機能など

チュートリアルをやっていく中で、こんな機能が jetpack compose にあるとわかったので、拾えた範囲でシェアしたい。

あくまでもこれは参考程度に。詳しくは各自でチュートリアルを確認を。

  • @Composable はコンパイラに「これはJetpack Compose で使う部品だ」と伝えるもの

  • Composable 関数の中にパラメータを変える物を入れることは非推奨

  • 変化があった関数だけ作動するようになっており、そうでないものはスキップされる

  • ButtononClick でフラグを変化させると padding を操作してセルの展開、収縮を行うことができる

  • for 文を使用してデータ文だけ Column にデータを追加できる(lazyColumn の方がシンプルに記述できる)

  • lazyColumnitems で簡単にスクロールリストを作成できる

  • preview は Preview したい関数の上に2行書いて darkMode ありと比較できる

  • セルの展開、折りたたみにアニメーションをつけられる

    • 今回行ったのはバネのようなアニメーションが展開時につけられるもの
  • rememberSaveableremember をより強力にしたもの

    • 画面回転しても値を保持する
  • onContinueClicked を使って他の関数でクリックされたのを感知してフラグを変更できる

  • 検索バーの虫眼鏡はマテリアルデザイン(プリセット)ですでにある

  • 丸アイコン→ ContentScale.crop + clip(CircleShape)

  • surfaceVariant color でコンポーネントをシックに仕上げる

  • Surface の shape.medium で角を取る

  • Button コンポーネントの enableに条件式を書けばボタンが活性化する条件を指定できる

    • enable = { count > 0 }
  • mutableStateOf(initialState:Boolean)androidx.compose.runtime.getValue, setValue のライブラリ導入で状態の変更を保存するコードを短く記述できる

    • viewModel を利用する時に便利

やってみてどうだったか

今回 essentials という一番最初のコースを1巡した。

最初に思ったことが、

基礎を知っているか否かでその後が大きく変わる

ということを実感した。

基本的な機能でも jetpack compose は多数の機能を搭載しており、なかなか一発で理解して利用することが難しい。

しかし、その基本的な機能の重なりによってアプリができているため、複雑な機能を実装する上でもこの知識は大いに役に立つと今回の学習を通じて確信した。

また、essentials の最後には viewModel や状態変化検知フローなどアーキテクチャの部分が含まれている。
こちらが理解し実装することに一番苦労した箇所だった。

ただ、やっていく中でそれぞれのメソッドの関係や役割などが見えはじめ、学習する前よりも確実に力が身についたと実感している。

行き詰まったら初歩に立ち返ることも選択肢の一つ

わたしは、これまでアプリ制作に行き詰まりすっかりやる気を無くしてしばらくIDEなどを立ち上げていなかった。

しかし、今回の学習を通して成果物とはならなくても、自分の中で分かったことが増やしていくことはやる気を復活させる特効薬であると考えるようになった。

もし、あなたが最近開発でわからないことが増えて困っていると感じている場合は、それぞれのツールのチュートリアルなどをやり直して、足りない知識などを確認してみるのも一つの手になる。

急がば回れ

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?