So for example, in data visualization tool, we were handling an e-commerce project. Now in e-commerce project, we wanted to understand that how a particular parameters of traffic can help us in improving our conversion. So that was the parameter we were trying to solve. Now what we did was we created some KPIs, optimizing performance and managing resources effectively. In Android ecosystem, it's very crucial in order to ensure a smooth UI experience and prolonged battery life. What I did was mainly with the performance optimization mainly, I use it for profiling and benchmarking like using the Android Studio. There is an option for profiler and sys trace where you can optimize the overall memory leaks or memory that is caching out by using maybe by making use of this profiler technique. Regularly the profiler app we can use to identify the performance such as very slow UI, rendering or memory leaks, we can use, make use of leak canary as well as these kind of things. You can efficiently render any UI like you can reduce the number of times a pixel is drawn by optimizing the view hierarchy and using constraint layout instead of the nested layout. That is one thing, memory management is an added advantage where you can avoid memory leaks and bitmap optimization, where you can use bitmap loading strategies like Glid, Glide or Picasso based on your bitmap factory operations to downsample the images and network optimization is the one thing like you can actually call the APIs like retrofit only and cache the response to reduce the network load. One more thing is battery optimization like you can minimize the background work like you can use job scheduler or work manager to schedule background tasks efficiently and avoid using background service unless when you actually need it or when there either case if it is necessary only you can make use of it resource management coming to that aspect like a string resources. I have used like you can make use of string resources for any text to instead of faster images to reduce the APK size and support multiple web destinies. Now we have WebP also to reduce the size of image means a component like view model and live data to manage UI data to survive configuration changes at least you can do with that one. Then you can handle the persistent state like you can use this method called as a save instance state and view model to save and restore the UI state during configuration changes and you can efficiently manage thread management as well. Like you can avoid loading runtime operation on the main thread by using a sync task executor service or Kotlin can route things for background tasks. Then you have data optimization like to optimize SQL lite queries to reduce execution time and memory usage use indexing and avoid complex joins that is about resource management. I know what that's what I know about that one.
