Resilient use cases: less Exceptions, more Results | by Jacob Ras | Sep, 2023
Simplifying error handling using Kotlin’s sealed interfaces. One and a half years ago I wrote a post suggesting the use of kotlin.Result instead of plain try-catches: Resilient use cases with kotlin.Result, coroutines and annotations. This article is a follow-up to that one, with an updated…
My confusion related to Android storage management-related APIs | by hasib prince | Sep, 2023
Photo by Pathum Danthanarayana on Unsplash I was always confused about storage management-related APIs. When ScopedStorage was introduced confusion increased. The confusion were related to these points: Choosing APIs based on use cases Needed permissions depending on Android versions What actually internal/external storage means These…
Mastering Lightning-Fast Mobile Searches in KMP Apps: A guide for SQLite and FTS | by Federico Torres | Sep, 2023
Photo by John Cameron on Unsplash Picture this: You’re using a mobile app, trying to find crucial information, but each search query feels like an eternity. Frustration mounts as precious seconds tick away. If you’ve ever experienced this, you’re not alone. Slow search functionality can…
Accelerate Your On-device AI with the Qualcomm AI Engine | by PAD Editorial | Sep, 2023
What would you do with several teraOPS of compute available for running your machine learning models on a mobile device? That would really open up your options in robotics, edge computing, connected cameras and always-on applications, wouldn’t it? Hardware acceleration can speed up neural network…
Leveraging Kotlin Delegation to Simplify ViewModel Collaboration and State Management | by Mahmoud Afarideh | Sep, 2023
In a previous piece, we explored the design journey of our InRide screen for drivers. As technologies and needs evolve, our product does too. HamidReza, our Product Manager, came up with the idea of embedding navigation capabilities right within our existing In-Ride screen, freeing our…
CCAvenue Payment Integration in Android using Node.js | by Shaik Ahron | Sep, 2023
In this article, I will explain how to integrate CCAvenue Payment integration in Android and the backend using node.js. Note: you need to have a CCAvenue account created with your domain/ip whitelisted to make transactions in production and testing environment. You have to register your…
Adding HDR Video Capabilities to Android Apps | by PAD Editorial | Sep, 2023
TL;DR: High Dynamic Range (HDR) provides improved color, contrast, and brightness for visually stunning video experiences in media-rich Android apps. Developers can enhance their Android apps with HDR video capabilities on devices powered by Snapdragon mobile platforms. This blog dives into using Android’s Camera2 API…
Drawer Navigation using Material 3 in Jetpack Compose | by Saqib | Sep, 2023
Explaining Material3 APIs for Navigation Drawer As mentioned before Material 3 provides explicit Apis for Drawer Navigation, first we will see in brief what those APIs are and later will implement them. The main Composable provided by Material3 is ModelNavigationDrawer mentioned below. Let’s see important…
Leak detection into UI tests. Memory leaks can cause performance… | by Danil Perevalov | Sep, 2023
You can easily integrate LeakCanary into UI tests by simply including a specific code that runs when the test is completed. LeakAssertions.assertNoLeaks() After the test is completed, if you are using Espresso, you should start leak detection with LeakCanary in the method annotated with After….
Akkurate: New library for validation of your domain models | by Matthias Schenk | Sep, 2023
The next step is to create the required constraints. I start with the constraints for the street property. val addressValidator = Validator<Address> {this.street{isNotEmpty() otherwise {“Street must not be empty.”}constrain {it.matches(“[a-zA-Z\\s]+”.toRegex())} otherwise {“Street must contain only letters.”}}} The value must not be empty and also it…