Best of AndroidSeptember 2024

  1. 1
    Article
    Avatar of devtoDEV·2y

    Digging Deep to Find the Right Balance Between DDD, Clean and Hexagonal Architectures

    Choosing the right architecture for software can be challenging. The author shares their journey and practical experiences in balancing Clean Architecture, Domain-Driven Design (DDD), and Hexagonal Architecture in their project, TimeMates. Key highlights include ensuring the separation of concerns, maintaining a consistent mental model, and reusing value objects effectively while avoiding unnecessary boilerplate. The post emphasizes the importance of practical implementation over theoretical adherence and encourages developers to use critical thinking tailored to their specific needs.

  2. 2
    Article
    Avatar of communityCommunity Picks·2y

    How we developed our addictive and delightful widget

    Duolingo has developed a colorful smartphone widget to help learners maintain their language learning habit by providing visual reminders of their streak progress. Initially conceptualized during a hackathon following the iOS 14 widget update, the widget aims to motivate action through simplicity and Duo's engaging personality. Its effectiveness in improving user retention prompted further iterations and promotions. Duolingo has expanded the widget’s availability to Android and continues to explore new designs and functionalities to keep it distinct and engaging for users.

  3. 3
    Article
    Avatar of thevergeThe Verge·2y

    Microsoft launches a Windows app for iPhones, Macs, and Android devices

    Microsoft has launched a new Windows app for a variety of platforms including macOS, iOS, web browsers, Android, and Windows PCs. This app allows users to stream a copy of Windows from sources like Windows 365 and Azure Virtual Desktop. The app includes features such as a customizable home screen, multi-monitor support, and USB redirection. It is limited to Microsoft work and school accounts and is designed to transition existing Remote Desktop clients. The app is available on the Microsoft Store, Apple’s App Store, and Android's public preview today.

  4. 4
    Video
    Avatar of philipplacknerPhilipp Lackner·2y

    The ONLY Correct Way to Load Initial Data In Your Android App?

    The post discusses various methods to load initial data in Android apps, evaluating three main approaches: using the Jetpack Compose launched effect, initializing in ViewModel's init block, and leveraging flow collection. Each method's benefits and drawbacks are examined, highlighting a newly preferred approach using flow collection for improved control and testing.

  5. 5
    Article
    Avatar of thnThe Hacker News·2y

    Google's Shift to Rust Programming Cuts Android Memory Vulnerabilities by 52%

    Google's transition to memory-safe languages like Rust has significantly reduced memory vulnerabilities in Android, dropping from 76% to 24% over six years. The company highlights that adopting Safe Coding principles and focusing on new memory-safe code over rewrites makes the approach scalable and cost-effective. Additionally, Google's strategy includes offering interoperability between Rust, C++, and Kotlin, aiming for a paradigm shift in coding practices to enhance security.

  6. 6
    Article
    Avatar of communityCommunity Picks·2y

    How to implement push notifications in React Native (Android)

    Learn how to implement push notifications in a React Native Android app using OneSignal. Steps include setting up a Firebase project, configuring OneSignal, and adding necessary code and permissions in the React Native app. OneSignal offers features like segmentation, automation, and A/B testing, making it a powerful tool for user engagement.

  7. 7
    Video
    Avatar of philipplacknerPhilipp Lackner·2y

    Keyboard & Focus Management In Jetpack Compose - Android Studio Tutorial

    This tutorial covers focus and keyboard management in Jetpack Compose for Android. It explains how to create a smooth form-filling experience by automatically moving the focus to the next text field using IME actions, and submitting the form directly from the keyboard. Detailed steps are provided to implement these features programmatically.

  8. 8
    Article
    Avatar of hnHacker News·2y

    VadimBoev/FlappyBird

    The author shares their journey of creating a lightweight Flappy Bird clone for Android using C. Despite initial failures with C++ and significant APK size, they eventually succeeded by minimizing resource weights, using OpenSLES for sound, and upng for decoding PNG files. The game was developed with Visual Studio 2022 and Android Studio, emphasizing a final APK size of under 100 Kilobytes.

  9. 9
    Article
    Avatar of habrhabr·2y

    React Native Splash Screen — support for different themes

    The dev.family team shares a comprehensive guide on installing a splash screen in a React Native app with support for both light and dark themes. The guide includes step-by-step instructions for both iOS and Android platforms. It details the installation and configuration process using the react-native-splash-screen library and provides examples for handling different themes in app assets and layout configurations.

  10. 10
    Article
    Avatar of pandProAndroidDev·2y

    Design Server-Driven UI with Jetpack Compose and Firebase

    Server-driven UI (SDUI) is an architectural pattern reducing client-side logic by rendering UI components based on data received from the backend, enhancing flexibility and performance. Large companies like Airbnb and Netflix use this approach for consistency across platforms. SDUI helps in quicker updates without app releases, maintaining a consistent UI, and reducing the burden on mobile developers. However, it introduces challenges in terms of latency, performance, complexity, and cost. The post details the implementation with Jetpack Compose and Firebase Realtime Database, covering action handlers, component versioning, and more.

  11. 11
    Video
    Avatar of philipplacknerPhilipp Lackner·2y

    Save User Credentials With the Google Credential Manager - Android Studio Tutorial

    Learn how to use Android's Credential Manager to improve username-password authentication by saving credentials in Google’s Credential Manager. This allows for easier future logins and cross-device usability. The guide walks through building a sign-up and sign-in form, implementing a Credential Manager to save credentials, and using existing credentials to log in. A detailed walkthrough covers setting up dependencies, creating necessary classes, and managing credentials using suspending functions. Integration across apps and websites with digital asset links is also mentioned.

  12. 12
    Article
    Avatar of javarevisitedJavarevisited·2y

    How to Use the Android Keystore for Secure Data Storage

    Learn how to use the Android Keystore to securely store cryptographic keys and sensitive data in your Android app. The post provides a step-by-step guide on generating, encrypting, and decrypting data using the AES algorithm, while also covering key access controls like biometric authentication.

  13. 13
    Article
    Avatar of javarevisitedJavarevisited·2y

    My Journey in Learning Advanced Android Development: Why I Read More Than I Write

    To become a better Android developer, prioritize reading code over writing it. Understanding other developers' solutions helps you learn optimization, structure, and coding conventions. Reading open-source libraries provides a broader perspective on coding styles and architectures, which can significantly improve your own work. Foundational learning comes from analyzing others' code, making your own code more thoughtful and efficient.

  14. 14
    Video
    Avatar of philipplacknerPhilipp Lackner·2y

    Master Kotlin Coroutines & Flows With My NEW Masterclass!

    Learn to master asynchronous and reactive programming in Android using Kotlin coroutines and flows through an in-depth masterclass. This course covers essential topics such as coroutine cancellation, error handling, synchronization, performance optimization, and effective use of different flow types. Structured for both beginners and experienced developers, it also includes homework assignments for thorough understanding, and offers practical applications to bridge knowledge gaps and prepare for tech interviews.

  15. 15
    Article
    Avatar of androiddevAndroid Developers Blog·2y

    Gemini in Android Studio: Code Completion Gains Powerful Model Improvements

    Gemini in Android Studio significantly enhances AI code completion, aiming to boost developer productivity. Launched in May 2024, it offers real-time code suggestions based on context, compared to reactive feedback from earlier tools. This feature is beneficial for tasks like defining business logic and writing tests. Recent updates, including the switch to Gemini 1.5 models, led to a 40% relative increase in acceptance rate. Developers can enable this feature via the Gemini button in the editor's settings. Google emphasizes the responsible use of AI, ensuring code privacy.

  16. 16
    Article
    Avatar of dotnet.NET Blog·2y

    Android Asset Packs for .NET & .NET MAUI Android Apps

    Asset Packs enable developers to create and manage larger app bundles by separating assets into different packages. These asset packs can be delivered using three different methods: InstallTime, FastFollow, and OnDemand, providing flexibility in how and when assets are downloaded and installed. The new .NET 9 release simplifies the process of creating these packs using MSBuild Metadata, benefiting both .NET Android and .NET MAUI developers. The guide explains how to set up and manage asset packs within your projects and offers local testing tips.

  17. 17
    Video
    Avatar of philipplacknerPhilipp Lackner·2y

    Upload a File With Progress Bar Using Ktor - Android Studio Tutorial

    Learn how to use Ktor client in Android to upload a file with a progress bar. The tutorial explains setting up the necessary dependencies, creating a file picker, and displaying a progress bar during the upload. It also covers handling different states in the ViewModel using Kotlin coroutines and flows, and how to display completion or error messages.

  18. 18
    Video
    Avatar of philipplacknerPhilipp Lackner·2y

    Android Studio Ladybug, Compose/Fragment Interop & More - Philipp's Android News September 2024

    Philipp's Android News for September 2024 highlights several updates for Android developers, including the new Android Studio Ladybug with integrated Gemini AI assistant, which enhances coding by providing code transformations, documentation, and unit test generation. The update also improves interoperability between fragments and Jetpack Compose, making it easier to embed and test these UI components together. Additionally, new features for simulating sensor data and analyzing crash logs have been introduced, alongside support for Google Pixel 9 devices.

  19. 19
    Video
    Avatar of philipplacknerPhilipp Lackner·2y

    How to Navigate From ViewModels With a Custom Navigator - Android Studio Tutorial

    Learn a different approach to navigation in Android using a custom Navigator with Jetpack Compose. This method allows for easy global navigation from ViewModels without directly coupling them to NavControllers. It also simplifies UI testing by providing a Navigator interface that can be managed independently. The tutorial includes setting up dependencies, defining destinations, creating a Navigator interface, and integrating with Koin for dependency injection.

  20. 20
    Article
    Avatar of androiddevAndroid Developers Blog·2y

    Tools, not Rules: become a better Android developer with Compiler Explorer

    Google engineers have added support for Java and Kotlin in Compiler Explorer, an interactive website that aids developers in understanding how source code is translated to assembly language and examining compiler optimizations. This tool allows studying efficiency in coding patterns and helps in making informed decisions without merely memorizing optimization rules. Among the explored concepts are minification with R8, AOT and JIT compilation, and baseline profiles, showing practical ways to make Android apps faster and more efficient.

  21. 21
    Article
    Avatar of pandProAndroidDev·2y

    Mastering Navigation in Jetpack Compose: A Guide to Using the inclusive Attribute

    Jetpack Compose has transformed Android UI development with a modern, concise, and powerful approach. A critical feature for managing navigation between screens is the `inclusive` attribute within the `popUpTo` function. This attribute determines whether a specific destination should be removed from the navigation back stack, aiding in streamlined user flows. Practical examples include login flows, multi-step processes, and order cancellation, where using `inclusive = true` prevents users from returning to previous screens, enhancing the app's usability.