{"id":791,"date":"2023-08-17T15:05:36","date_gmt":"2023-08-17T12:05:36","guid":{"rendered":"https:\/\/barisuslucan.com\/en\/?p=791"},"modified":"2023-08-17T15:05:36","modified_gmt":"2023-08-17T12:05:36","slug":"jetpack-compose-navigation-animations-made-simple","status":"publish","type":"post","link":"https:\/\/barisuslucan.com\/en\/kotlin\/jetpack-compose-navigation-animations-made-simple\/","title":{"rendered":"Jetpack Compose Navigation: Animations Made Simple"},"content":{"rendered":"<p>Jetpack compose allows developers to seamlessly integrate impressive animations between screens to enrich the use experience. This results in a reduction of code and enhances its readability. The feature of Jetpack Compose simplifies the complexity of animations in mobile app development, saving developers time.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-799 aligncenter\" src=\"https:\/\/barisuslucan.com\/en\/wp-content\/uploads\/2023\/08\/navigation-animated.gif\" alt=\"navigation animated\" width=\"146\" height=\"300\" \/><\/p>\n<p><br \/>Before we start do not forget to implement the below dependency:<\/p>\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"implementation &quot;androidx.navigation:navigation-compose:2.7.0&quot;\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">implementation<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">androidx.navigation:navigation-compose:2.7.0<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<p><br \/>And then let&#8217;s prepare example screens:<\/p>\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"@Composable\nfun ScreenA(navController: NavController) {\n    Box(\n        modifier = Modifier\n            .fillMaxSize(),\n       contentAlignment = Alignment.Center\n    ) {\n\n       Text(\n           modifier = Modifier\n               .padding(top=15.dp)\n               .align(Alignment.TopCenter),\n           text = &quot;Screen A&quot;,\n           fontSize = 25.sp,\n           fontWeight = FontWeight.Bold,\n       )\n\n       Button(\n           onClick = {\n               navController.navigate(&quot;SCREEN_B&quot;)\n           }\n\n       ) {\n           Text(text = &quot;Screen B&quot;)\n       }\n    }\n}\n\n@Composable\nfun ScreenB() {\n    Box(\n        modifier = Modifier\n            .fillMaxSize(),\n        contentAlignment = Alignment.Center\n    ) {\n        Text(\n            text = &quot;Screen B&quot;,\n            fontSize = 25.sp,\n            fontWeight = FontWeight.Bold\n        )\n    }\n}\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D08770\">@Composable<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">fun<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">ScreenA<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">navController<\/span><span style=\"color: #D8DEE9FF\">: <\/span><span style=\"color: #D8DEE9\">NavController<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">Box<\/span><span style=\"color: #D8DEE9FF\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">modifier<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Modifier<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">fillMaxSize<\/span><span style=\"color: #D8DEE9FF\">()<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">       <\/span><span style=\"color: #D8DEE9\">contentAlignment<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Alignment<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Center<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">       <\/span><span style=\"color: #88C0D0\">Text<\/span><span style=\"color: #D8DEE9FF\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">           <\/span><span style=\"color: #D8DEE9\">modifier<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Modifier<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">               <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">padding<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">top<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">15<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">dp<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">               <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">align<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">Alignment<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">TopCenter<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">           <\/span><span style=\"color: #D8DEE9\">text<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Screen A<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">           <\/span><span style=\"color: #D8DEE9\">fontSize<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> 25<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">sp<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">           <\/span><span style=\"color: #D8DEE9\">fontWeight<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">FontWeight<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Bold<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">       )<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">       <\/span><span style=\"color: #88C0D0\">Button<\/span><span style=\"color: #D8DEE9FF\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">           <\/span><span style=\"color: #D8DEE9\">onClick<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">               navController.navigate(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">SCREEN_B<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #88C0D0\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">           }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">       ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">           Text(text = <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Screen B<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #88C0D0\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">       }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">@Composable<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">fun ScreenB() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    Box(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        modifier = Modifier<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">            .fillMaxSize(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        contentAlignment = Alignment.Center<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        Text(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">            text = <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Screen B<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">fontSize<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> 25<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">sp<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">fontWeight<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">FontWeight<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Bold<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n<p><br \/>Set up your navigation host like the below.<\/p>\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"                NavHost(\n                    navController = navHostController,\n                    startDestination = &quot;SCREEN_A&quot;\n                ) {\n                    composable(\n                        route = &quot;SCREEN_A&quot;\n                    ) {\n                        ScreenA(navController = navHostController)\n                    }\n\n                    composable(\n                        route = &quot;SCREEN_B&quot;,\n                        enterTransition = {\n                            slideIntoContainer(\n                                towards = AnimatedContentTransitionScope.SlideDirection.Companion.Left,\n                                animationSpec = tween(700)\n                            )\n                        },\n\n                        exitTransition = {\n                            slideOutOfContainer(\n                                towards = AnimatedContentTransitionScope.SlideDirection.Companion.Left,\n                                animationSpec = tween(700)\n                            )\n                        },\n                        popEnterTransition = {\n                            slideIntoContainer(\n                                towards = AnimatedContentTransitionScope.SlideDirection.Companion.Right,\n                                animationSpec = tween(700)\n                            )\n                        },\n                        popExitTransition = {\n                            slideOutOfContainer(\n                                towards = AnimatedContentTransitionScope.SlideDirection.Companion.Right,\n                                animationSpec = tween(700)\n                            )\n                        }\n                    ) {\n                        ScreenB()\n                    }\n                }\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #88C0D0\">NavHost<\/span><span style=\"color: #D8DEE9FF\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                    <\/span><span style=\"color: #D8DEE9\">navController<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">navHostController<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                    <\/span><span style=\"color: #D8DEE9\">startDestination<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">SCREEN_A<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                ) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                    <\/span><span style=\"color: #88C0D0\">composable<\/span><span style=\"color: #D8DEE9FF\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #D8DEE9\">route<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">SCREEN_A<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                    ) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #88C0D0\">ScreenA<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">navController<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">navHostController<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                    <\/span><span style=\"color: #88C0D0\">composable<\/span><span style=\"color: #D8DEE9FF\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #D8DEE9\">route<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">SCREEN_B<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #D8DEE9\">enterTransition<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                            <\/span><span style=\"color: #88C0D0\">slideIntoContainer<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                                <\/span><span style=\"color: #D8DEE9\">towards<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">AnimatedContentTransitionScope<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">SlideDirection<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Companion<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Left<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                                <\/span><span style=\"color: #D8DEE9\">animationSpec<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">tween<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">700<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                            <\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #D8DEE9\">exitTransition<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                            <\/span><span style=\"color: #88C0D0\">slideOutOfContainer<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                                <\/span><span style=\"color: #D8DEE9\">towards<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">AnimatedContentTransitionScope<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">SlideDirection<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Companion<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Left<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                                <\/span><span style=\"color: #D8DEE9\">animationSpec<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">tween<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">700<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                            <\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #D8DEE9\">popEnterTransition<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                            <\/span><span style=\"color: #88C0D0\">slideIntoContainer<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                                <\/span><span style=\"color: #D8DEE9\">towards<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">AnimatedContentTransitionScope<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">SlideDirection<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Companion<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Right<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                                <\/span><span style=\"color: #D8DEE9\">animationSpec<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">tween<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">700<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                            <\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #D8DEE9\">popExitTransition<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                            <\/span><span style=\"color: #88C0D0\">slideOutOfContainer<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                                <\/span><span style=\"color: #D8DEE9\">towards<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">AnimatedContentTransitionScope<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">SlideDirection<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Companion<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Right<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                                <\/span><span style=\"color: #D8DEE9\">animationSpec<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">tween<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">700<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                            <\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                    ) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                        <\/span><span style=\"color: #88C0D0\">ScreenB<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n<p><br \/>The properties <span style=\"color: #00ffff;\">enterTransition, exitTransition, popEnterTransition<\/span>, and <span style=\"color: #00ffff;\">popExitTransition<\/span> are utilized to define animations during screen transitions. Let&#8217;s delve into these properties in detail:<br \/><br \/><strong>enterTransition:<\/strong> This defines the animation to be used when a screen is being displayed. For instance, when transitioning to the ScreenB, this animation is executed.<\/p>\n<ul>\n<li><code>slideIntoContainer<\/code>: Allows the screen to slide in from the outside.<\/li>\n<li><code>towards = AnimatedContentTransitionScope.SlideDirection.Companion.Left<\/code>: Indicates that the screen slides in from the left.<\/li>\n<li><code>animationSpec = tween(700)<\/code>: Specifies that the animation will last for 700 milliseconds.<\/li>\n<\/ul>\n<p><strong><br \/>exitTransition:<\/strong> This defines the animation to be used when a screen is being overlaid by another screen. For example, when transitioning away from the ScreenB to another screen, this animation is executed.<\/p>\n<ul>\n<li><code>slideOutOfContainer<\/code>: Allows the screen to slide out to the outside.<\/li>\n<li><code>towards = AnimatedContentTransitionScope.SlideDirection.Companion.Left<\/code>: Indicates that the screen slides out to the left.<\/li>\n<\/ul>\n<p><strong><br \/>popEnterTransition:<\/strong> This defines the animation to be used when the back button is pressed or when navigating backward using the NavController.<\/p>\n<ul>\n<li><code>slideIntoContainer<\/code>: Allows the screen to slide in from the outside.<\/li>\n<li><code>towards = AnimatedContentTransitionScope.SlideDirection.Companion.Right<\/code>: Indicates that the screen slides in from the right.<\/li>\n<\/ul>\n<p><br \/><strong>popExitTransition:\u00a0<\/strong> This defines the animation for how the previous screen will disappear when the back button is pressed or when navigating backward using the NavController.<\/p>\n<ul>\n<li><code>slideOutOfContainer<\/code>: Allows the screen to slide out to the outside.<\/li>\n<li><code>towards = AnimatedContentTransitionScope.SlideDirection.Companion.Right<\/code>: Indicates that the screen slides out to the right.<\/li>\n<\/ul>\n<p>Through these animations, transitions between screens are made smoother and more aesthetically pleasing. This code snippet facilitates sliding transitions between ScreenA and ScreenB screens.<\/p>","protected":false},"excerpt":{"rendered":"<p>Jetpack compose allows developers to seamlessly integrate impressive animations between screens to enrich the use experience. This results in a reduction of code and enhances its readability. The feature of Jetpack Compose simplifies the complexity of animations in mobile app development, saving developers time. Before we start do not forget to implement the below dependency: And then let&#8217;s prepare example screens: Set up your navigation host like the below. The properties enterTransition, exitTransition, popEnterTransition, and popExitTransition are utilized to define animations during screen transitions. Let&#8217;s delve into these properties in detail: enterTransition: This defines the animation to be used when&#8230;<\/p>\n","protected":false},"author":1,"featured_media":789,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[29],"tags":[],"class_list":["post-791","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kotlin"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/posts\/791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/comments?post=791"}],"version-history":[{"count":6,"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/posts\/791\/revisions"}],"predecessor-version":[{"id":800,"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/posts\/791\/revisions\/800"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/media\/789"}],"wp:attachment":[{"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/media?parent=791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/categories?post=791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/barisuslucan.com\/en\/wp-json\/wp\/v2\/tags?post=791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}