ProAndroidDev
839 FOLLOWERS
ProAndroidDev is a publication collecting blog posts by Android professionals and Google developer experts. Read the latest articles on these categories; Android App Development, Android Architecture, Animation, Layoutanimation, and many more.
ProAndroidDev
16h ago
App Architecture: How to map data between layers Photo by Joshua Sortino on Unsplash
This is a series of articles about how to architecture your app that it was inspired by Google Guide to App Architecture and my personal experience.
What architecture to choose for the project? A common question for many engineers and often the choice is to follow Clean Architecture principles. Put the code in different layers, usually, it’s Data, Domain, and Presentation. Each of the layers has its components logic, and data models. One of the main ideas of different layers is to have a dependency h ..read more
ProAndroidDev
16h ago
Toggle Labels With Icons — Personalizing Accessibility
As mentioned in my previous blog post, Personalizing Accessibility with Settings, accessibility for the broadest group of users often requires some personalization. What is accessible for one might not be accessible for another.
In this blog post, I will discuss one example of accessibility issues that could be solved with the help of settings: Icons and the need for text labels accompanying them. As you can see from the next section, this particular issue is personal to me, and I wanted to give an example of how to solve it.
Wh ..read more
ProAndroidDev
16h ago
Behavioral Design Pattern Purpose of the pattern
Creation of a subscriber-publisher mechanism to notify subscribers when a state changes. It’s helpful because this way, instead of having to check for state change periodically, we’re notified whenever the state changes.
What do we get from that?
Open/Closed, we can add subscribers without changes inside the publisher.
One-To-Many dependency without tight coupling.
State-based approach.
Efficient State observation.
Implementation
Typically, the implementation would look like this:
Typical Observer Class Diagram
An ..read more
ProAndroidDev
2d ago
Update Your Compass — New Android Orientation API Android provides a new Fused Orientation API from multiple sensors
Android now fuses more sensors, so you do not have to do calculations on your own.
It gives you the bearing and orientation of your device.
In specific, the new Orientation device fuses the accelerometer, gyroscope and magnetometer to bring more precise and consistent measurements of the device’s orientation. It compensates for sensor issues on the lower levels and timing of the sensors.
Implementation Dependencies
Firstly, you need to update Google Play loc ..read more
ProAndroidDev
2d ago
Kotlin Coroutines 101: Async Programming in Practice
Hello folks ✌??
As you start learning Kotlin or Android you will face the need to offload heavy tasks from the UI Thread. You won't like your users to complain about your app to be slow!
Embark on a journey from Kotlin coroutines novice to expert with this comprehensive article. We’ll guide you through the essential concepts, providing practical code samples every step of the way.
Table of Concepts
Understanding Coroutines: A Primer
Kotlin Coroutines Components
Delving into CoroutineContext: Understanding the ..read more
ProAndroidDev
2d ago
Hello devs!
When it's time to collect a flow in the fragment or composable there's always a red flashing light ?, sounds of war and a sudden fear caused by a whisper in our ears: memory leakssss.
There are great articles that show how to collect our flows safely as state, like the one from Manuel Vivo:
Consuming flows safely in Jetpack Compose
This article shows the efficient collectAsStateWithLifecycle() to avoid major issues.
But, What about flow collection in non-composable scopes like inside a LaunchedEffect?
If you have a flow to dispatch one-time events like showing an error ..read more
ProAndroidDev
4d ago
The suspension capability is the most essential feature upon which all other Kotlin Coroutines concepts are built. Your main goal in this article will be to gain a solid understanding of how it works internally.
In one line: Suspending a coroutine means stopping it in the middle.
Analogy:
Let’s first understand the actual meaning of suspension with some real-world examples:
Let's start playing a video game:
You are playing well(Suppose).
You reach a checkpoint.
You save the current position.You turn off the game and both you and your computer focus on doing different things now.
You are ..read more
ProAndroidDev
4d ago
Increase the performance of your app by caching API calls using OkHttp
Let’s be honest, we’ve all been there — frantically refreshing our app, watching the loading spinner spin endlessly as we wait for that critical API response. It’s a dance we’ve perfected, isn’t it? The rhythmic tapping of our fingers, the subtle eye rolls, and the not-so-subtle muttering under our breath. “Come on, just give me the data already!”
When it comes to building applications that interact with external APIs, caching can be a game-changer. API calls can often be slow, resource-intensive, and subject to rate ..read more
ProAndroidDev
1w ago
Practical tips and strategies for smooth mobile app releases and post-release issue management
Note: For the purpose of this blog post, I have created (and published) an open-source toy app on GitHub. The app randomly colorises the state of Colorado on a USA map when the user taps on the screen. It’s called Colorandom (pun intended).
There is a wide misconception that once you finish your dev work (add as many pre-release steps as you like here: QA, UAT, etc) you can release your mobile app and all your users will get your shiny new version. This assumption comes from the web realm where once ..read more
ProAndroidDev
1w ago
This image was created with the assistance of DALL·E 2Motivation
After writing about Glovo-animation, I was still curious about one type of movement in the app known as fling animation. I realized that learning this could help me get better at designing user interfaces. Then, I saw the same animation in another app called ELSA Speak, and it seemed like a hint that I should dive deeper into it. I decided to learn all about it and share my findings with others who enjoy making apps look nice.
Check the comments for extra tips and explanations!
En avante!
The ELSA Speak Time Picker ..read more