20 dépôts
Structural design patterns and best practices for building maintainable Android applications.
Distinct from Android App Modularization: Shortlist candidates focus on execution and modularization rather than the high-level architectural pattern of the entire app.
Explore 20 awesome GitHub repositories matching mobile development · Android App Architecture Patterns. Refine with filters or upvote what's useful.
LearningNotes est une base de connaissances technique et un guide d'étude d'ingénierie axé sur les internes du framework Android, l'architecture système et l'optimisation des performances mobiles. Il sert de référence pour analyser la séquence de démarrage d'Android, l'amorçage des processus et l'initialisation des services système. Le projet fournit des guides détaillés sur les performances mobiles, notamment des stratégies pour réduire les empreintes mémoire, identifier les fuites de mémoire et optimiser le décodage d'image. Il couvre en outre la communication inter-processus Android utilisant AIDL et le pilote de noyau Binder, ainsi que des manuels d'architecture logicielle pour découpler la logique métier des interfaces utilisateur via des modèles comme MVVM et MVP. Au-delà du développement mobile, le dépôt inclut une base de connaissances en informatique pour la préparation aux entretiens techniques, couvrant les structures de données, les algorithmes et les concepts de système d'exploitation. Il propose également une référence pratique pour le contrôle de version Git, détaillant la gestion des dépôts, la synchronisation et les flux de travail de branchement.
Analyzes the application of MVVM and dependency inversion patterns to decouple business logic from the presentation layer.
MVVMHabit is an Android development framework and base library that implements the MVVM architecture using Android Architecture Components. It provides a pre-integrated foundation designed to decouple business logic from user interface rendering and lifecycle management. The project distinguishes itself by bundling a comprehensive set of architectural templates, including a reactive event bus for decoupled component communication, token-based data exchange between logic instances, and a single-activity fragment hosting system to reduce manifest overhead. The framework covers broad capability
Provides a foundation for building maintainable mobile apps using MVVM and Google Architecture Components.
This is an open-source Android application that serves as a reference implementation for modern app architecture. It demonstrates a modular, testable structure built with Kotlin, Coroutines, and Jetpack libraries, organized into independent feature modules that each follow Clean Architecture and the MVVM pattern. The project enforces coding standards through an automated static analysis pipeline that integrates linting, formatting checks, and code quality tools directly into the build process, failing the build on any violations. It uses reusable Gradle convention plugins to standardize build
Demonstrates a modular, testable Android application architecture using modern Jetpack libraries, Clean Architecture, and feature modules.
This is a Go backend template that structures a web service into domain, usecase, controller, and repository layers with strict dependency inversion. It provides a foundation for building maintainable and testable REST APIs by separating business logic from transport and data access concerns. The project implements JWT-based authentication, issuing access and refresh tokens for user signup, login, and protected endpoint access. It uses the Gin HTTP framework to build a Docker-packaged REST API with public and private route groups, request validation, and middleware-based authentication. Depen
Provides structural design patterns and best practices for building maintainable Android applications.
AndroidX is the official collection of Android Jetpack libraries for building Android applications. It provides a suite of backward-compatible APIs that expose modern platform features on older Android versions, ensuring consistent functionality across devices. The project is built around lifecycle-aware component architecture, with tools like ViewModel for preserving UI data across configuration changes, LiveData for lifecycle-aware data observation, and WorkManager for constraint-based background task scheduling. The project distinguishes itself through compile-time code generation and type
Provides opinionated, lifecycle-aware components that reduce boilerplate and make configuration changes easier to handle.
EffectiveAndroidUI est une collection d'implémentations de référence et de projets exemples démontrant les modèles architecturaux d'interface utilisateur Android, les stratégies de navigation et les techniques de gestion des ressources. Il fournit des exemples pratiques d'implémentation des modèles Model-View-Presenter et Model-View-ViewModel pour séparer la logique métier de l'interface utilisateur. Le projet présente des démonstrations de logique de transition d'écran centralisée et de communication entre fragments. Il inclut des exemples de gestion des ressources utilisant des qualificateurs personnalisés pour organiser les actifs et adapter les mises en page en fonction de la densité et de la taille de l'écran. Le dépôt couvre de larges domaines de capacité, notamment la gestion des dépendances pour contrôler la durée de vie des objets, l'optimisation de la mise en page pour les interfaces réactives et l'optimisation des performances des listes utilisant le recyclage de vues pour les grands ensembles de données.
Demonstrates structural design patterns like MVP and MVVM for building maintainable Android applications.
Ce projet est une implémentation de référence de l'architecture Model-View-Presenter pour les applications Android. Il sert d'exemple structurel sur la façon de séparer la logique métier de l'interface utilisateur via un framework basé sur le présentateur. L'implémentation se concentre sur une approche d'architecture propre, utilisant des présentateurs pour servir de médiateur à toute communication entre le modèle de données et la vue. Elle emploie un pattern de vue passive et un découplage basé sur l'interface pour isoler l'interface utilisateur des règles de domaine. L'architecture incorpore une logique de domaine basée sur l'interacteur et une séparation en couches pour réduire le couplage systémique. Cette structure permet des tests unitaires agnostiques à la plateforme, permettant à la logique d'application d'être vérifiée au sein d'une machine virtuelle Java standard sans nécessiter le framework Android ou un appareil physique.
Structures the Android application using MVP patterns to ensure maintainability and separation of concerns.
Ce projet est une collection organisée de guides d'entretien technique et de documents de référence axés sur le développement Android et l'architecture système. Il fournit un ensemble structuré de questions d'entretien quotidiennes et de réponses détaillées conçues pour aider les ingénieurs logiciels à se préparer aux entretiens d'embauche professionnels. Le dépôt inclut des guides d'étude spécifiques pour les fondamentaux du langage de programmation Kotlin et les modèles d'architecture Android. Ces matériaux sont organisés en problèmes techniques catégorisés et solutions à travers divers domaines de l'informatique pertinents pour l'ingénierie mobile. Le contenu est délivré via des fichiers formatés en markdown et une structure de fichiers statique, utilisant un workflow de contrôle de version pour fournir des mises à jour régulières.
Explains core design patterns and structural best practices for modern Android applications.
Mosby est un framework de couche de présentation pour les applications Android conçu pour gérer l'état de l'application et les intentions utilisateur. Il fonctionne comme un outil architectural qui implémente à la fois les patterns Model-View-Intent (MVI) et Model-View-Presenter (MVP). Le framework utilise un flux de données unidirectionnel pour maintenir une source de vérité unique, garantissant que les mises à jour d'état restent prévisibles en traitant les intentions via un chemin logique unique. Il sépare la logique métier de la couche de vue pour découpler la logique de présentation des classes Activity et Fragment d'Android. Le système fournit des capacités pour la gestion d'état et la coordination de la navigation, synchronisant l'état de l'application avec les transitions d'écran.
Offers structural design patterns for organizing Android applications to separate business logic from the user interface.
Ce projet fournit un ensemble de directives de développement Android, de normes d'architecture et un guide de style de codage. Il établit des règles de formatage et d'implémentation uniformes pour assurer la cohérence et la maintenabilité du code pour les applications construites sur la plateforme Android. Le projet inclut un modèle de structure de projet standardisé qui définit des hiérarchies de dossiers et des mises en page de fichiers cohérentes. Ces normes sont conçues pour maintenir une expérience de développement prévisible à travers plusieurs flux de travail. Les directives couvrent les modèles architecturaux, y compris la séparation par couches de la logique métier et de la présentation, l'isolation des modules par fonctionnalité et le flux de données unidirectionnel. Il aborde également l'utilisation de l'injection de dépendances pilotée par interface et une hiérarchie de paquets standardisée.
Defines architectural design patterns and structural guidelines for building maintainable Android applications.
Ce projet est un modèle d'application Android Kotlin de référence et un ensemble d'implémentations exemples démontrant les principes de l'Architecture Propre (Clean Architecture). Il fournit une conception structurelle qui isole les règles métier fondamentales de l'interface utilisateur et des sources de données dans des modules distincts et en couches. L'implémentation se concentre sur le modèle Modèle-Vue-VueModèle (MVVM) pour découpler la logique de l'interface utilisateur des modèles de données. Elle utilise un framework d'injection de dépendances pour automatiser la création d'objets et gérer les cycles de vie des composants, tout en employant un modèle de dépôt (repository pattern) pour abstraire les requêtes de données à travers la mémoire, le disque et les sources cloud. L'architecture intègre une organisation de paquets basée sur les fonctionnalités et des configurations de build modulaires pour maintenir la cohérence sur tout le projet. Elle inclut également une stratégie de test complète qui combine des tests unitaires pour la logique métier avec l'instrumentation pour l'interface utilisateur et des modules de mock pour la validation de la couche de données.
Demonstrates structural design patterns and Clean Architecture principles for building maintainable Android applications.
This project is a reference implementation of the Model-View-Presenter (MVP) architecture for Android applications. It focuses on separating business logic from the user interface by decoupling data logic, UI presentation, and view layers. The implementation distinguishes itself through the inclusion of a boilerplate generator that automatically creates the activity, presenter, and view files required for the MVP pattern. It utilizes a compile-time dependency injection framework to manage object lifetimes and a reactive programming workflow to handle asynchronous data streams and event propag
Organizes code into separate layers specifically tailored for maintainable Android application development.
Ce projet est un parcours d'apprentissage structuré et une feuille de route de compétences conçus pour guider les développeurs à travers l'écosystème Android. Il sert de cursus d'ingénierie mobile et de guide de carrière, organisant les connaissances techniques requises pour construire des applications évolutives, des concepts de base aux compétences professionnelles avancées. Le guide se différencie en fournissant une carte hiérarchique des connaissances requises, séquençant les sujets techniques dans un ordre logique. Il inclut une collection organisée de ressources d'étude et de documentation technique, ainsi que des outils pour suivre la progression de l'apprentissage à travers le cursus spécifié. La feuille de route couvre un large éventail de domaines de développement, y compris l'architecture d'application, la conception d'interface utilisateur et l'animation, ainsi que l'intégration système pour les capteurs matériels et les opérations réseau. Il fournit également des conseils sur le stockage de données, la sécurité des appareils et le processus de publication des applications sur le Play Store.
Covers the study and implementation of scalable architectural patterns specifically for Android applications.
LiveEventBus is an AndroidX communication library that provides a message bus for decoupled data transfer between application components. It utilizes LiveData to implement a lifecycle-aware message bus, ensuring that event subscriptions are automatically managed based on the state of Android components to prevent memory leaks. The library includes an inter-process communication bridge that allows the transfer of serialized data and events between different processes or separate applications. It also features a sticky event dispatcher that retains and immediately delivers the most recent messa
A communication system that automatically manages event subscriptions based on Android component lifecycles.
This project is a clean architecture reference implementation and modular project template for Android development. It provides a structural blueprint designed to isolate business logic from external frameworks and user interfaces. The template emphasizes a modular approach to organize code into independent modules, which is intended to improve build times and long-term project scalability. It demonstrates the application of domain-driven design to keep core business rules and entities independent from the underlying platform. The implementation covers several key architectural patterns, inc
Provides a comprehensive scalable architectural pattern for Android applications with separated layers.
Ce dépôt sert de ressource éducative pour implémenter des modèles de programmation asynchrone dans les applications Android en utilisant Kotlin Coroutines et Flow. Il fournit une collection d'exemples pratiques et de tests unitaires conçus pour démontrer comment gérer les tâches en arrière-plan, les requêtes réseau concurrentes et les flux de données réactifs tout en maintenant une interface utilisateur réactive. Le projet se concentre sur la concurrence structurée, offrant des modèles pour organiser les tâches en portées hiérarchiques qui propagent automatiquement les signaux d'annulation et de cycle de vie. Il met l'accent sur l'intégration de la mise en réseau consciente du cycle de vie, garantissant que les opérations en arrière-plan et les flux réactifs respectent l'état des composants Android pour éviter les fuites de mémoire et les plantages. L'implémentation couvre un large éventail de capacités pour construire des systèmes de données résilients, y compris l'utilisation d'opérateurs fonctionnels pour transformer les séquences de données et la conversion de flux froids en conteneurs d'état chauds. Elle démontre également des stratégies pour gérer les opérations réseau, telles que l'implémentation de tentatives avec backoff exponentiel, la gestion des timeouts de requête et l'utilisation du stockage local pour un accès aux données en mode hors ligne. Le dépôt inclut des modèles de test spécialisés pour vérifier l'exactitude de la logique multi-threadée et du comportement asynchrone.
Provides lifecycle-aware components that ensure network requests and data streams respect the Android component state.
Ce projet sert de feuille de route éducative complète et de programme pour maîtriser le développement d'applications Android professionnelles. Il fournit un parcours d'apprentissage structuré qui guide les développeurs à travers les principes essentiels de conception système, les modèles architecturaux et les compétences techniques nécessaires pour construire, tester et déployer des logiciels mobiles évolutifs. La ressource se distingue en organisant des sujets techniques complexes dans une séquence logique, couvrant tout, des outils de développement mobile fondamentaux aux pratiques d'ingénierie logicielle avancées. Elle met l'accent sur les modèles standard de l'industrie pour structurer des bases de code maintenables, garantissant que les apprenants acquièrent une maîtrise des systèmes de build, de la gestion des dépendances et de l'intégration de services externes. Au-delà de l'architecture de base, le programme aborde des aspects critiques de l'écosystème mobile, y compris le traitement de flux réactifs, l'exécution asynchrone et la gestion des composants conscients du cycle de vie. Il intègre également des conseils sur la sécurisation des données d'application, la vérification de la qualité logicielle par les tests et l'implémentation d'interfaces utilisateur réactives. Le dépôt fonctionne comme un guide centralisé pour les développeurs cherchant à standardiser leur approche de l'ingénierie mobile et du déploiement de logiciels professionnels.
Provides lifecycle-aware components that automatically manage resource release and task cancellation to prevent memory leaks.
Ce projet sert de ressource éducative et de guide pratique pour les développeurs apprenant à construire des applications mobiles natives sur la plateforme Android en utilisant le langage de programmation Kotlin. Il fournit une base de code structurée qui démontre comment appliquer la syntaxe de langage moderne et les paradigmes de développement aux tâches logicielles du monde réel. Le dépôt se concentre sur l'enseignement de l'architecture d'applications mobiles professionnelles en implémentant des modèles de conception standard de l'industrie. À travers une série d'exemples pratiques, il illustre comment organiser la logique d'application, gérer les dépendances des composants et maintenir des structures de code propres et testables au sein de l'environnement mobile. La base de code couvre des concepts essentiels de l'ingénierie mobile, y compris la gestion des cycles de vie des composants, l'implémentation de flux de données réactifs et la construction d'interfaces utilisateur via la composition déclarative. Il met également en évidence l'utilisation de la sécurité nulle au moment de la compilation pour éviter les erreurs d'exécution courantes pendant le processus de développement.
Implements lifecycle-aware components to manage Android system state and prevent memory leaks.
Ce dépôt sert de collection centralisée de documentation technique et de modèles architecturaux pour les développeurs construisant des logiciels mobiles sur la plateforme Android. Il fonctionne comme un guide complet pour implémenter du code Kotlin idiomatique et établir des normes d'ingénierie cohérentes à travers les projets mobiles. Le projet fournit des ressources sélectionnées axées sur les meilleures pratiques de développement Android et les modèles de programmation efficaces. En mettant l'accent sur des structures de code maintenables et des approches architecturales recommandées, il aide les équipes à gérer la complexité du développement d'applications mobiles au sein de l'écosystème Android. La documentation est rédigée en markdown et organisée via une structure de répertoire hiérarchique pour garantir la portabilité et la facilité de navigation. Ces matériaux sont hébergés en tant que contenu statique, permettant aux développeurs d'accéder à des conseils contrôlés par version pour leurs tâches de développement en cours.
Provides structural design patterns and best practices for building maintainable Android applications.
This repository provides a comprehensive collection of functional code samples designed to demonstrate modern development patterns and architectural practices for the Android platform using Kotlin. It serves as a practical guide for implementing standard design patterns that decouple business logic from user interface components, ensuring that applications remain maintainable and testable. The project distinguishes itself by offering isolated, hands-on implementations of complex mobile programming tasks. It covers a wide range of capabilities, including asynchronous networking, local database
Demonstrates standard architectural design patterns to decouple business logic from user interface components in Android applications.