jetc.dev Newsletter Issue #163
This week, we watch a bunch of KotlinConf videos touching on Compose!
We also consider
@Immutable, work with Navigation for Compose, and explore
FlowRow(). We take some photos and we update our custom theme based on Material 3
platform color choices. And, we look at a Google-created toolchain for creating
composables via Figma… that is not Relay.
(the idea was so nice, we built it twice!)
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
The overall discussion surrounds line height in
TextView() and related
composables. The context is a common developer challenge: why doesn’t the UI exactly
match the Figma design? Learn more about
in this week’s highlighted Kotlinlang
#compose Slack thread.
KotlinConf 2023 and Android Worldwide April 2023
JetBrains held KotlinConf! While this conference was about Kotlin generally, there were several sessions with Compose-related content, including:
- Avoiding common coroutines mistakes in Compose
- Compose Multiplatform on iOS
- Confetti: building a Kotlin Multiplatform conference app in 40min
- Modern Compose Architecture with Circuit
- Reflections on a Year of Compose
- Showkase: Automated UI Infrastructure in Jetpack Compose using KSP
- You can do desktop too!
Android Worldwide April 2023 also published a few Compose-related videos, including:
- Building Multiplatform Apps with Compose
- Compose: Beyond Android development
- Material Design 3 in Compose
Posts, videos, and other new information related to Jetpack Compose!
sinsamaki examines how to animations work with the
VerticalPager() composables, looking at
it with modifiers like
drawWithContent() to achieve
Jayant Kumar plays around with nested navigation graphs in Navigation for Compose,
navigation() in the
NavHost() DSL to define the nested routes. This follows
Jayant’s earlier post introducing Navigation for Compose.
Alexander Yudenkov and Nikita Afonasov explore
for allowing content to “wrap” when the particular axis gets filled (e.g., wrap onto
the next row once the width is filled with content).
Other Interesting Links
- How to make expandable text with a button in Jetpack Compose
- Medium: Understand Drawing Arc of A Path In Jetpack Compose Canvas
- Medium: Learn Jetpack Compose Canvas Cubic and Quadratic Bezier And Its Usage
- Medium: Making Graph Plotting Function in Jetpack Compose
- Medium: Deep Linking in Jetpack Compose — Android
- Medium: How To Set A Gradient Background In Jetpack Compose
- TikTok like navigation with Jetpack Compose and the ModalBottomSheetLayout in Android
- Slides: Collapsing toolbar with parallax effect and curved motion in Jetpack Compose
- Medium: Exploring rememberCoroutineScope in Jetpack Compose
- Medium: Managing state in Jetpack Compose: remember vs derivedStateOf vs savableState
- Android Jetpack Compose – Rotation Animation
- Medium: Jetpack Compose Testing — Conditional Clickable Components
- Medium: Implementing Bottom Navigation in Jetpack Compose
- Medium: Handling User Input in Jetpack Compose: A Complete Guide
- Medium: Introduction to Animations in Jetpack Compose
- Medium: Android ViewModel, Repository, Room and Retrofit with Jetpack Compose
- Medium: Jetpack Compose: Login screen with validation
- Using Jetpack Compose’s LocalClipboardManager
- Medium: Multi theme in jetpack compose
100% pure code!
Last year, Google introduced Relay, a Figma plugin to code-generate composables from designs. Google’s Android Automotive OS team has created tooling around a similar workflow, though theirs is somewhat more complex to set up.
Joe Birch published a library that wraps ExoPlayer in a
PreviewCard() Compose for TV composable,
designed to show a snippet of a video when the card gets the focus, such as while a user
is navigating through a carousel.
Mejdi Hafiane created a
SwitchedCard() composable, which switches between
two cards using animations to simulate the cards sliding over top of each other.
CardContent() composables to define what goes onto each card.
Other Interesting Links
- 2023-11-21: Compose/Material3/Wear Compose updates! remember()! Adaptive layouts! Compose Multiplatform in 2024! @firstname.lastname@example.org on BasicTextField2()! Compose Multiplatform charts! And... is TV Compose in trouble?!?
- 2023-11-14: Compose Compiler! BasicTextField2()! @email@example.com and animations! Optimization! @firstname.lastname@example.org, JetBrains, and Fleet! JetBrains and plotting! And... we collapse?!?
- 2023-11-07: Compose Multiplatform! Chips in fields! Diffing! Custom fonts in Glance app widgets! Heatmaps! PIN input! And @email@example.com is in a bit of a haze?!?