<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>transitions on Carrion.dev</title><link>https://carrion.dev/en/tags/transitions/</link><description>Recent content in transitions on Carrion.dev</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>ignacio@carrion.dev (Ignacio Carrión)</managingEditor><webMaster>ignacio@carrion.dev (Ignacio Carrión)</webMaster><copyright>&amp;copy;{year}, All Rights Reserved</copyright><lastBuildDate>Fri, 04 Apr 2025 08:00:00 +0100</lastBuildDate><atom:link href="https://carrion.dev/en/tags/transitions/index.xml" rel="self" type="application/rss+xml"/><item><title>Custom Animations and Transitions in Jetpack Compose</title><link>https://carrion.dev/en/posts/custom-animations-transitions-compose/</link><pubDate>Fri, 04 Apr 2025 08:00:00 +0100</pubDate><author>ignacio@carrion.dev (Ignacio Carrión)</author><atom:modified>Fri, 04 Apr 2025 08:00:00 +0100</atom:modified><guid>https://carrion.dev/en/posts/custom-animations-transitions-compose/</guid><description>Custom Animations and Transitions in Jetpack Compose Creating smooth, meaningful animations is crucial for delivering a polished user experience. This article explores how to create custom animations and transitions in Jetpack Compose, from basic animations to complex custom implementations.
Creating Custom Animations Custom animations allow for more complex and unique visual effects:
Custom Animation Specs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 @Composable fun CustomAnimatedButton( onClick: () -&amp;gt; Unit, content: @Composable () -&amp;gt; Unit ) { var isPressed by remember { mutableStateOf(false) } val scope = rememberCoroutineScope() val scale by animateFloatAsState( targetValue = if (isPressed) 0.</description><dc:creator>Ignacio Carrión</dc:creator><media:content url="https://carrion.dev/images/kotlin/pulsating-dot.gif" medium="image"><media:title type="html">featured image</media:title></media:content><category>android</category><category>compose</category><category>animation</category><category>transitions</category></item></channel></rss>