Proteus está destinado a ser un reemplazo directo para LayoutInflater
de Android; pero a diferencia de los diseños XML compilados incluidos en el APK, Proteus infla los diseños en tiempo de ejecución. Con Proteus, puedes controlar el diseño de tus aplicaciones desde el backend (sin WebViews). Olvídese del código repetitivo para findViewById
, transmítalo a TextView
y luego setText()
. Proteus tiene formateadores y enlaces de datos en tiempo de ejecución. Conecte sus propias vistas, atributos y funciones personalizados para adaptar Proteus a sus necesidades.
// 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'
}
En lugar de escribir diseños en XML
, en proteus los diseños se describen en JSON
, que se puede utilizar para inflar la interfaz de usuario nativa de Android en tiempo de ejecución. Los diseños JSON
se pueden alojar en cualquier lugar (en el dispositivo, en servidores, etc.).
El diseño define la jerarquía de vistas, al igual que XML.
Los datos (opcional) definen enlaces de datos. Estos enlaces de datos son similares a la biblioteca de enlace de datos de Android.
Proporcione el layout
y data
a ProteusLayoutInflater
y recupere una jerarquía de vistas nativa.
Mire este vídeo para verlo en acción.
{
"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 ());
La aplicación de demostración te permitirá jugar con proteus y también te ayudará a comprender mejor los aspectos internos.
npm start
Listo para jugar
La forma más sencilla de contribuir es bifurcando el repositorio, realizando cambios y creando una solicitud de extracción.
apache v2.0
Si está usando proteus, consulte la lata, no puede y debe
Puede consultar los colaboradores aquí, pero si desea contactarnos; simplemente envíe un correo.
Encuéntrenos en StackOverflow en proteus.
Descargue este complemento (en versión beta) para Android Studio. Una vez habilitado, puede seleccionar cualquier archivo de recursos XML de Android e ir a Herramientas > Proteus > Convertir XML a JSON.