Compose's snapshot system is really neat, as I've talked and written about before. Once you know how it works, you can do some cool tricks with it, and derivedStateOf is a rich example of this. I recently gave a talk focused more on explaining the algorithms with animated diagrams, so this article will focus on code, including examples from the actual Compose source. 📖This article is part of a se
Why am I doing this?I’ve been working to develop a robust architecture, with a small learning curve and recognizable to all developers. The aim was to have something project-agnostic. Simply put, we wanted all developers to be comfortable with the architecture, so that they could more easily contribute to other projects (that they may or may not know in detail), if and when needed. Building an arc
Over the past year I’ve been playing around a lot of multiplatform toolkits, primarily Kotlin Multiplatform, which has allowed me to explore writing mobile UIs on platforms other than Android. I’ve often found myself knowing how to model or implement something in Jetpack Compose, but struggling to quickly translate it to other UI toolkits. This blog series has been written as a self-reference for
Jetpack Compose は「より優れたアプリを迅速にビルドする」というスローガンを掲げていますが、優れたアプリの重要な要素の一つが UI のパフォーマンスです。 この記事では、まず Compose と View のレイアウトシステムを簡単に比較して Compose の強みを説明し、それから Compose でパフォーマンスの高いレイアウトを作るコツを例を交えて紹介します。 Compose のレイアウトシステムの改善 View のレイアウトシステムの問題点 View では一つのレイアウトを複数回測定(measure)することが許されていて、実際その状況に陥ることもよくあります。例えば、LinearLayout の baselineAligned はデフォルトで true なので、明示的に baselineAligned をオフにせずに LinearLayout 内で layout_w
TL;DR To prevent synchronization issues and unexpected behaviors: – Avoid delays/asynchronous behaviors between typing and updating TextField state. – Avoid holding TextField state using a reactive stream (e.g. collecting from StateFlow using the default dispatcher) – Define TextField state variables with Compose APIs like MutableState<String>.Hoist TextField state to the ViewModel when needed e.g
マイクロソフト、株式会社楽天、株式会社ファーストリテイリングでさまざまな国内及び、グローバル向けの製品のプロダクトマネージメントを行うとともに、開発組織強化のためにAgile開発の導入、オフショア開発拠点の立ち上げなどに従事。2018年9月、株式会社メルカリに参画。現在はProducts FoundationのDirectorを務める。 ある意味、メルカリのエンジニアリングは敗北を味わった ──まず、「GroundUp App」が始まったきっかけから教えてください。 @kwakasa:新しいメルカリのWeb版のプロジェクトが始動した3〜4ヶ月後の2020年半ばぐらいですね。プロダクトマネージャーとデザイナーから「Webだけではなくアプリもアップデートしたらどうか」という話が出たことがきっかけです。 ただ、僕は基本的には「ソフトウェアは書き換えるべきではない」と思っています。ソフトウェアの改
育休前は React と go をよく書いていましたが、育休が終わって Android の仕事につくことになったので、Jetpack Compose の勉強をしました。といっても自分ばズブの素人というわけではなく、Jetpack Compose が導入される前には Android のエンジニアで、確かマルチモジュールが世の中に出始めたかな〜ぐらいの時代で Web 方面に進んだので、そこらへんの時代で知識が止まっています。 Jetpack Compose とは https://developer.android.com/jetpack/compose Android ネイティブアプリケーションを、宣言的 UI でアプリを作ることができるキットです。これまで Android は Activity(いわばウィンドウ。一画面に必ず1つしかない) や Fragment(いわばウィンドウの上における、
ミラティブのAndroidエンジニアのmorizoooです。 MirrativのAndroidアプリでは、新規で作る画面には積極的にJetpack Composeを活用しています。 tech.mirrativ.stream Mirrativは、多くのユーザーがゲームや雑談などの配信をしており、配信を盛り上げるための演出として通常のアニメーションに加えてLottieも織り交ぜ、リッチなアニメーションを実装しています。 Jetpack Compose導入以前は、AnimationListenerのCallbackを入れ子にする形で複雑なアニメーションを実現していたのですが、いざJetpack Composeで実装しようとなるとどう実装するのが良いのか苦心しました。 今回の記事では、実際にアプリで使っているアニメーションを例に、Jetpack Composeで作ったアニメーションを紹介します。
Have you ever measured the performance of your composable and discovered it is recomposing more code than you expect? “I thought Compose was meant to intelligently skip composables when state hasn’t changed?” you might ask. Or when reading Compose code you might see classes annotated with @Stable or @Immutable and wonder what those mean? These concepts can be explained by Compose stability. In thi
こんにちは、クックパッド事業本部 買物サービス開発部の佐藤(@n_atmark)です。 私の所属する買物サービス開発部ではクックパッドアプリにおける買い物機能*1の開発を行なっており、私は2020年の上期から買い物機能のモバイルアプリ開発の担当をしています。 2020年上期〜2021年上期では、クックパッドiOSアプリの買い物機能開発に、 2021年下期からは、クックパッドAndroidアプリの買い物機能開発に携わっています。 クックパッドアプリの買い物機能開発に関する詳細はクックパッド開発者ブログにもまとまっていますので、ぜひ合わせてご覧ください。 techlife.cookpad.com techlife.cookpad.com 前述の通りクックパッドアプリにおける買い物機能をiOS/Android両プラットフォーム向けに開発しているのですが、実はそれらの開発には共通している点がありま
こんにちは。 「B/43」のAndroidアプリ開発に携わっている あんざいゆき(yanzm) です。 先日「B/43」のAndroidアプリをリリースしました🎉🎉 play.google.com この記事では「B/43」のAndroidアプリで採用している技術や苦労した点、工夫した点などを紹介します。 採用している技術(抜粋) Jetpack Compose 一番の特徴は Full Jetpack Compose にした点です。 開発のお話をいただいた今年の春時点で Jetpack Compose は beta 版がリリースされており、夏には stable 版がリリースされることも発表されていました。 今から開発するなら Jetpack Compose でやりたいと思っていたところ、iOS / Android エンジニアをしている nakamuuu からも Jetpack Compo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く