
Solution de composontisation construite basée sur le framework MVVMFrame comme bibliothèque de base
Le diagramme d'architecture composant de MVVMFrameComponent est en couches comme suit:

Étant donné que la bibliothèque de base de base de base est basée sur MVVMFrame , le diagramme d'architecture de MVVMFrame est publié ici comme suit:

Un résumé simple de la composante consiste à diviser une application ou un module complet en plusieurs sous-modules, afin que chaque sous-module puisse être compilé et exécuté indépendamment, ou fusionné dans l'application hôte en tant que bibliothèque pour former une application complète pour la compilation et l'exécution. Chaque module peut être non dépendant et peut interagir les uns avec les autres.
Au fil d'un projet, les demandes continuent de changer et d'itérer. Chaque module deviendra également relativement complexe. La difficulté de maintenance augmentera également en conséquence et, au fil du temps, cela peut causer de nouveaux problèmes. À l'heure actuelle, nous avons besoin d'une composante.
Lorsqu'une application utilise une solution de développement basée sur des composants, les principaux avantages sont: après la division basée sur les composants de chaque module, chaque sous-module peut être compilé et exécuté indépendamment, de sorte que lors du développement et de l'élimination d'un certain module, la vitesse de compilation et l'efficacité de développement peuvent être considérablement améliorées. Lorsque le développement multi-personnes, chaque personne est responsable des modules indépendants, ce qui est plus propice au développement collaboratif des équipes multi-personnes. De plus, les limites de code entre chaque module sont relativement claires et plus faciles à maintenir au stade ultérieur.
MVVMFrameComponent = MVVMFrame + Composant . C'est-à-dire que MVVMFrameComponent adopte la solution de composant de l'architecture de modèle MVVM .
Application hôte: Lorsque chaque module enfant est une bibliothèque , tous les composants peuvent être intégrés dans l'application hôte . À l'heure actuelle, l'application hôte est une application complète avec toutes les collections de fonctions de composant.
Bibliothèque de base publique composante: Comprend principalement le cadre de développement rapide MVVMFrame et certaines bibliothèques de base de base publiques telles que compositulées, ce qui facilite la construction rapide du projet composé.
Bibliothèque de ressources publiques composantes: il est principalement pratique de gérer certains aspects liés aux ressources publiques dans chaque module .
Un module de fonction de blague simple: principalement utilisé pour démontrer la mise en œuvre du développement de composants basé sur MVVMFrame , comme l'un des exemples de mise en œuvre du module pour le développement des composants.
Un module de fonction de nouvelles simples: principalement utilisé pour démontrer la mise en œuvre du développement de composants basé sur MVVMFrame , comme l'un des exemples de mise en œuvre du module pour le développement des composants.
Projet -> Variables personnalisées dans Build.gradle IsBuildModule
Isbuildmodule de variable personnalisée pour gérer uniformément chaque module enfant pour faciliter la commutation entre l'application et la bibliothèque
Lorsque isBuildModule = true , cela signifie que chaque sous-module est l'application , c'est-à-dire que le module peut être exécuté indépendamment. Lorsque IsBuildModule = False , cela signifie que chaque sous-module est une bibliothèque , c'est-à-dire que le module est fusionné dans l'application hôte en tant que bibliothèque
Projet -> module-build.gradle
Module de composant Build Universal.Gradle pour une gestion unifiée pratique
Selon IsBuildModule , nous pouvons gérer uniformément chaque module enfant pour basculer entre l'application et la bibliothèque .
Étant donné que la bibliothèque de base de base de MVVMFrameComponent est basée sur MVVMFrame , vous devez avoir une certaine compréhension du MVVMFrame pour être plus pratique lorsque vous utilisez MVVMFrameComponent . Ici, je ne présenterai plus l'utilisation de MVVMFrame liée. Pour plus de détails, vous pouvez afficher directement MVVMFRAME.
Pour les modules courants, vous pouvez essayer de les écrire dans BaseApp . Pour les modules relativement indépendants, vous pouvez les écrire dans la classe d'implémentation de l' IComponentApp correspondant du module.
Remarque spéciale: l'implémentation d' IcomponentApp n'est qu'une solution à vos besoins correspondants et est facultative. Utilisez au besoin.
Voici des exemples de classes d'implémentation iComponentApp pour chaque module pour référence:
La classe d'implémentation d' IcomponentApp dans Module-Joke est JokeComponentApp
La classe d'implémentation d' IcomponentApp dans Module-News est NewsComponentApp
Vous trouverez ci-dessous un exemple de code dans le module-blague
class JokeComponentApp : IComponentApp {
override fun onCreate ( app : BaseApp ) {
}
}Configurez la classe d'implémentation iComponentApp correspondant aux méta-données dans Manifest , l'exemple est le suivant:
<!-- name为:IComponentApp的实现类,value固定为: ComponentApp -->
< meta-data android : name = " com.king.mvvm.joke.JokeComponentApp "
android : value = " ComponentApp " />Lorsque vous souhaitez obtenir la classe d'implémentation iComponentApp de chaque module, vous pouvez l'obtenir via la méthode GetComponentApp de BasEAPP .
Pour plus de détails, veuillez vérifier les exemples d'utilisation du code source dans l'application
Si vous aimez MVVMFrameComponent, ou si vous pensez que MVVMFrameComponent vous a aidé, vous pouvez cliquer sur "Star" dans le coin supérieur droit pour le soutenir. Votre soutien est ma motivation, merci?
Vous pouvez également scanner le code QR ci-dessous et demander à l'auteur d'avoir une tasse de café☕
| Mon blog | Github | Gite | CSDN | Parc de blogs |
|---|---|---|---|---|
| Le blog de Jenly | Jenly1314 | Jenly1314 | jenly121 | jenly |
| Compte officiel de WeChat | Boîte aux lettres Gmail | Courriel QQ | Groupe QQ | Groupe QQ |
|---|---|---|---|---|
| Jenly666 | Jenly1314 | Jenly1314 | 20867961 | 64020761 |