Nov 14RoomのKotlinコード生成Room 2.6.0 からKSPでKotlinのコード生成が可能になりました。 Kotlinコード生成を有効にすることでの制約や変更点などをまとめておきます。 Kotlinコード生成の設定 Kotlinコード生成するにはKSPを使用する必要があります。KSPについての解説は省略しますが、詳細は公式ドキュメントなどを参考にしてください。 有効にするにはKSPの引数に以下のように …Android5 min readAndroid5 min read
Nov 5ComposeのオーバースクロールエフェクトComposeでスクロール処理するときに、オーバースクロール時のエフェクトでいくつか注意することがあるので、まとめておきます。 Android 12以降はオーバースクロールすると、ストレッチして戻るような挙動になっています。それより前のバージョンは端のほうにグレーの効果が表示されるようになっています。Android7 min readAndroid7 min read
Oct 1Navigation ComposeでstartDestinationに引数を渡す方法Navigation Compose で最初の画面に引数を渡す方法についてです。 例えば、Activityのパラメータをそのまま Composable 関数に渡したい場合などがあります。そのときにどのようにすれば良いかを紹介します。 例えば、以下ように最初の画面に id パラメータを渡したい場合です。 NavHost( navControll …Android3 min readAndroid3 min read
Sep 10ComposeでLifecycleを監視する(2023年9月バージョン)ComposeでLifecycleを監視するには DisposableEffect を使う方法が一番使用されてるのかなと思います。公式ドキュメントにも記載されています。 Lifecycle 2.7.0-alpha01 からこれがちょっと簡単に記述できるようになります。 注意: まだalphaなので今後変更があるかもです。 FlowでLifecycleの状態を取得 currentStateAsSta …Android4 min readAndroid4 min read
Jul 2WindowInsetsのConsumeについてWindowInsets には Consume/Consumption(消費)の仕組みがあります。この仕組みについてまとめます。 ※この記事ではComposeについてのみ解説しています。 Consume/Consumption WindowInsetsの消費とはどういうことかというと、親要素でWindowInsetsのPaddingを設定したあとに、子要素で同じものを設定したとしても何も起き …Jetpack Compose6 min readJetpack Compose6 min read
May 28Jetpack ComposeでカスタムShapeを実装するJetpack Composeには Shape というのがあり、これを使って、画像を切り抜いたり、背景色を塗ったり、ボーダーを描いたりすることができます。 Compose側では CircleShape , RoundedCornerShape , CutCornerShape などが定義されていますので、基本的なものはこれらで対応可能になっています。 もし、定義されていないShapeを使用したい場合は、自分でカスタムのShapeも実装することが可能です …Jetpack Compose5 min readJetpack Compose5 min read
Apr 10Kotlinのdata objectKotlin 1.9でリリース予定で、これを書いてる時点の最新バージョン(1.8.20)ではPreview機能として使用できる data object について簡単にまとめておきます。 基本はドキュメントを読んでもらえば良いかなとは思います。 What's new in Kotlin 1.8.20 | Kotlin Release date: April 3, 2023 The Kotlin 1.8.20 release is out and here are some of its biggest highlights: You can also…kotlinlang.org 通常の object との違いなどを見ていきます。 toString() data object では toString() が定義され …Kotlin7 min readKotlin7 min read
Apr 2JetpackComposeのmovableContentOf状態を保持したまま要素の配置を変更可能にする movableContentOf について紹介します。 movableContentOf の基本 まずは例として以下のように条件によって縦と横の並びを変更したいとします。 @Composable fun MovableContentSample() { // ... if (vertical) { Column { …Android4 min readAndroid4 min read
Feb 23GradleのDependency lockingGradleは依存関係のバージョン指定に動的バージョンを使用することができますが、このバージョンを固定する機能があるので、それについてまとめておきます。 Locking dependency versions Use of dynamic dependency versions (e.g. 1.+ or [1.0,2.0)) makes builds non-deterministic. This causes builds to break…docs.gradle.org 他言語のライブラリ管理のロックファイル(BundlerのGemfile.lockやnpmのpackage-lock.json)と似たようなものになります。 動的なバージョン ぼくが観測している範囲では基本的にあまり …Gradle10 min readGradle10 min read
Jan 20Composeの様々なクリック処理ComposeではModifierを使ってクリックを処理する方法がいくつかありますので、それらをまとめておきます。 Modifier.clickable clickable は一番シンプルなクリックイベントを処理するものになります。 Box( modifier = Modifier.clickable { // クリックされたときの処理 } ) この cli …Jetpack Compose6 min readJetpack Compose6 min read