Bring your app to life with less code and powerful tools using Jetpack compose

Jetpack Compose
10 Dec 2021

From the JetPack compose(AndroidX) package of The android, The Composable is the shift from the traditional development paradigm towards functional programming, as it dictates to develop the UI in form functions(block of code). 

What is Android Jetpack?

Jetpack is a suite of libraries to help developers follow best practices, reduce boilerplate code, and write code that works consistently across Android versions and devices so that developers can focus on the code itself.

What is Jetpack Compose?

Jetpack Compose is Android’s modern toolkit for building native UI. It simplifies and accelerates UI development on Android. It helps you quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.

Pros of Jetpack compose that it brings before we dive into it!!!

First thing first, traditionally we were writing layouts in XML files those were nothings but scripts which we fed to UI renderer and it renders the actual UI as per components we define and as per the rules we set in the XML files, however, in here we actually write the functions that truly render the UI on the screen.

Now, the limitation in the XML way is reusability, it’s not that we can not have reusability at all, but it does not allow us to make UI definitions in such a way that we build the building blocks separately and compose them out in whichever way we need, however that is exactly how The Compose allows us to do things.

You can write the basic build blocks in terms of composable functions(in UI perspective) of your app, then we call build composable functions where we can simply call these block-level functions and compose up the view that we want to show.

It not only brings the perk of building UI in terms of function, it brings its own perks of state management as well (reactive UI). One of the amazing features from compose is that it re-composes the block whenever there is a change in the state, with LiveData we have already but with composable it refreshes part of the composable for which the state has been changed it does not essentially refresh the whole view or the complete hierarchy(view tree).

Business constraints and feasibility!!!

Time and Effort are the two key factors that play vital roles in the feasibility of Software. 

With The Composable pattern of UI development we can develop UI much faster or to be precise It almost reduces half or even less time than it would take to develop in the traditional pattern, If we carefully analyze our UI/UX and outline all the components that are common we can and build them in singularity and reuse them wherever and whichever way we want, we can build them to accept configuration so they may look and behave differently in different contexts.

The relief Jetpack compose brings!!!

Low coupling and High Cohesion is the fundamental and key principle of Software Development. 

Writing maintainable and scalable software is the ultimate target of every developer and owner, The Composable pattern very much addresses this concern. Though we can not remove coupling in its entirety. However, Compose reduces coupling drastically.

Let’s put statistics!!!

GitHub-hrisbanes/tivi is an app that was built in a traditional UI development pattern and migrated completely to Compose UI.

APK Size:

It was around 4.49 Mbs and it reduced almost 46% to 2.39 Mbs. as the layout files were removed completely.

Method Count:

Around 40k methods were there which came down to around 23k after successful migration to Compose. It is an almost 17% reduction in method counts.

LOC:

It came down to around 16k from 19k, it had 3.6k loc of XML which reduced to around 800 loc XML post Compose.

Build Time (Relief for Developers)

Post compose is 76 secs, which was 108 secs in pre compose.

Setup Jetpack Compose

To have the best experience when developing with Jetpack Compose, you should download Android Studio Arctic Fox. That’s because when you use Android Studio to develop your app with Jetpack Compose, you can benefit from smart editor features, such as New Project templates and the ability to immediately preview your Compose UI.

There are two options to start with Jetpack Compose with Android Studio:

  1. Create a New Project with the support of Jetpack Compose: Android Studio includes new project templates to help you get started. To create a new project that includes Jetpack Compose, proceed as follows:
Jetpack Compose -Naxtre

2. Trying Jetpack Compose sample apps hosted on GitHub: by importing a sample app project from Android Studio, proceed as follows:

Open Android Studio, click on the More options button, and select Import an Android Code Sample

Search for “Compose” projects:

Jetpack Compose1 -Naxtre

Then select your preferred project and click the Next button.

Jetpack Compose2 -Naxtre

Finally, enter the project name and click the Finish button.

Jetpack Compose3 -Naxtre

Final Thoughts

It’s a great relief to have heterogeneous items in a list and manage them. With LazyColumn we can have any type of views we want and we can update them seamlessly by making the views flicker as in traditional Recyclerview.

It provides different kinds of prebuilt UI components in terms of UI/UX perspective and if at all we need a different kind of component we can build it out of the existing components, in other words, we may rarely need a library for us.

Android is touted as the right choice for startups and emerging companies. If you are searching for the right tech partner to develop an android app for your business, our Android development services ensure that it is fully capable of supporting established companies and their SME counterparts. We are an android development company that guarantees scalability with expertise in everything related to what is android app development.

Click Here Reach US now