Proteus est destiné à remplacer LayoutInflater
d'Android ; mais contrairement aux mises en page XML compilées fournies dans l'APK, Proteus gonfle les mises en page au moment de l'exécution. Avec Proteus, vous pouvez contrôler la disposition de vos applications depuis le backend (pas de WebViews). Oubliez le code passe-partout pour findViewById
, convertissez-le en TextView
, puis setText()
. Proteus dispose de liaisons de données d'exécution et de formateurs. Intégrez vos propres vues, attributs et fonctions personnalisés pour adapter Proteus à vos besoins.
// Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
google ( )
jcenter ( )
maven { url 'https://jitpack.io' }
}
}
// Add in your app level dependency
dependencies {
implementation 'com.github.flipkart-incubator.proteus:proteus-core:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:gson-adapter:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:cardview-v7:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:design:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:recyclerview-v7:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:support-v4:5.0.1'
}
Au lieu d'écrire des mises en page en XML
, dans Proteus, les mises en page sont décrites en JSON
, qui peuvent être utilisées pour gonfler l'interface utilisateur Android native au moment de l'exécution. Les mises en page JSON
peuvent être hébergées n'importe où (sur l'appareil, sur les serveurs, etc.).
La mise en page définit la hiérarchie des vues, tout comme XML.
Les données (facultatif) définissent les liaisons de données. Ces liaisons de données sont similaires à la bibliothèque Data Binding d'Android.
Donnez la layout
et data
à ProteusLayoutInflater
et récupérez une hiérarchie de vues native.
Regardez cette vidéo pour le voir en action.
{
"type" : "LinearLayout" ,
"orientation" : "vertical" ,
"padding" : "16dp" ,
"children" : [ {
"layout_width" : "200dp" ,
"gravity" : "center" ,
"type" : "TextView" ,
"text" : "@{user.profile.name}"
} , {
"type" : "HorizontalProgressBar" ,
"layout_width" : "200dp" ,
"layout_marginTop" : "8dp" ,
"max" : 6000 ,
"progress" : "@{user.profile.experience}"
} ]
}
{
"user" : {
"profile" : {
"name" : "John Doe" ,
"experience" : 4192
}
}
}
ProteusView view = proteusLayoutInflater . inflate (< layout >, < data >);
container . addView ( view . getAsView ());
L'application de démonstration vous permettra de jouer avec Proteus et vous aidera à mieux comprendre les composants internes.
npm start
Prêt à bricoler
Le moyen le plus simple de contribuer est de créer le dépôt, d'apporter vos modifications et de créer une pull request.
Apachev2.0
Si vous utilisez Proteus, vérifiez la boîte, ne pouvez pas et devez
Vous pouvez consulter les contributeurs ici, mais si vous souhaitez nous contacter ; il suffit d'envoyer un mail.
Retrouvez-nous sur StackOverflow chez proteus.
Téléchargez ce plugin (en version bêta) pour Android Studio. Une fois activé, vous pouvez sélectionner n'importe quel fichier de ressources XML Android et accéder à Outils > Proteus > Convertir XML en JSON.