Pemrograman deklaratif Android dari aplikasi client-server

Pemrograman deklaratif dapat secara signifikan meningkatkan produktivitas pemrogram. Secara khusus, perpustakaan DePro menawarkan perhatian Anda ketika pemrograman aplikasi client-server memberikan peningkatan produktivitas 3-5 kali dibandingkan dengan bahasa imperatif seperti, misalnya, java, kotlin.


Kelas aplikasi client-server cukup besar. Ini termasuk jenis aplikasi seperti: m-commerce, perdagangan P2P, layanan, bank dan keuangan, perjalanan, pesan instan dan jejaring sosial, kebugaran dan kesehatan, dll.


Akselerasi ini disebabkan oleh fakta bahwa dalam pemrograman deklaratif hanya menggambarkan "APA yang perlu diterima?", Tetapi tidak "BAGAIMANA melakukan ini?".


Untuk menggambarkan perbedaan antara pemrograman deklaratif dan imperatif, pertimbangkan contoh sederhana berikut ini.


Dalam aktivitas yang ditunjukkan pada gambar, ada sebuah fragmen (dilingkari oleh garis merah).


gambar

Markup untuk fragmen ini sederhana, hanya ada RecyclerView dengan id recycler. Markup untuk item daftar ada di file item.xml. Data terletak di . Nama (id) elemen markup cocok dengan nama yang sesuai dalam data yang berasal dari server.


(). (MVP).


.


Item – , .


Adapter – RecyclerView.Adapter. , List. , , : getItemCount – ; onCreateViewHolder – View item.xml MyHolder; onBindViewHolder β€” MyHolder ( ). MyHolder .

Presenter β€” RxJava Retrofit. URL. iView ( MyFragment).


iView – MyFragment.


MyFragment – Fragment. . ( List.) , . , , , .

. , . β€” . URL, RecyclerView item.xml.


β€” , , . , :


recycler(URL, R.id.recycler, R.layout.item);

DePro. , :


component(TC.RECYCLER, model(URL), view(R.id.recycler, R.layout.item_news))

component – ; TC.RECYCLER – ( RecyclerView); model(URL) – , URL; view id recycler- .


, .


DePro . (, , , ...) .


. :


activity( , id )


: activity(β€œsplash”, R.layout.activity_splash)
.


: fragment(β€œauth_phone”, R.layout.fragment_auth_phone)


. MVP.


:


.component(TYPE, model(...), view(...), navigator(...))

TYPE β€” , SPINNER, DRAWER, RECYCLER, MENU, MAP, PAGER .. model(...) . , , URL. view(...) , . navigator(...) . , navigator(start(R.id.video, YOUTUBE)) , R.id.video YOUTUBE. navigator- .


, :


 activity(String name, int layoutId)
        .component(TYPE, model(...), view(...), navigator(...))
        . . .
        .component(TYPE, model(...), view(...), navigator(...));

5 β€” 10 .


DePro :


  • java (SLOC) 40-50 .
  • ( XML β€” ) 15 β€” 20 .
  • ( XML β€” ) 3 β€” 5 .
  • 2 β€” 3 .

. Github.


Pada artikel selanjutnya kita akan menjelaskan siklus penuh pengembangan aplikasi menggunakan perpustakaan DePro.


All Articles