Proteus dimaksudkan sebagai pengganti LayoutInflater
Android; namun tidak seperti tata letak XML terkompilasi yang disertakan dalam APK, Proteus mengembangkan tata letak saat runtime. Dengan Proteus, Anda dapat mengontrol tata letak Aplikasi dari backend (tanpa WebViews). Lupakan kode boilerplate ke findViewById
, transmisikan ke TextView
, lalu setText()
. Proteus memiliki pengikatan dan pemformat data runtime. Plugin dalam tampilan dan atribut serta fungsi kustom Anda sendiri untuk memberi rasa proteus sesuai kebutuhan Anda.
// 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'
}
Daripada menulis tata letak dalam XML
, tata letak dalam proteus dijelaskan dalam JSON
, yang dapat digunakan untuk mengembangkan UI Android asli saat runtime. Tata letak JSON
dapat dihosting di mana saja (di perangkat, di server, dll.).
Layout mendefinisikan hierarki tampilan, seperti XML.
Data (opsional) mendefinisikan pengikatan data. Pengikatan data ini mirip dengan pustaka Pengikatan Data Android.
Berikan layout
dan data
ke ProteusLayoutInflater
dan dapatkan kembali hierarki tampilan asli.
Tonton video ini untuk melihatnya beraksi.
{
"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 ());
Aplikasi demo akan memungkinkan Anda bermain-main dengan proteus serta membantu Anda memahami bagian dalamnya dengan lebih baik.
npm start
Siap untuk bermain-main
Cara termudah untuk berkontribusi adalah dengan melakukan forking pada repo, membuat perubahan, dan membuat pull request.
Apache v2.0
Jika Anda menggunakan proteus periksa kalengnya, tidak bisa dan harus
Anda dapat memeriksa kontributornya di sini, tetapi jika Anda ingin menghubungi kami; kirimkan saja surat.
Temukan kami di StackOverflow di proteus.
Unduh plugin ini (dalam versi beta) untuk Android Studio. Setelah diaktifkan, Anda dapat memilih file sumber daya XML Android apa pun dan membuka Alat > Proteus > Konversi XML ke JSON