Programmation déclarative Android d'applications client-serveur

La programmation déclarative peut augmenter considérablement la productivité des programmeurs. En particulier, la bibliothèque DePro proposée à votre attention lors de la programmation d'applications client-serveur offre une augmentation de productivité de 3 à 5 fois par rapport aux langages impératifs tels que, par exemple, java, kotlin.


La classe d'application client-serveur est suffisamment grande. Il comprend des types d'applications telles que le m-commerce, le commerce P2P, les services, les banques et la finance, les voyages, les messageries instantanées et les réseaux sociaux, le fitness et la santé, etc.


Cette accélération est due au fait que dans la programmation déclarative ne décrivez que "QUOI doit être reçu?", Mais pas "COMMENT faire cela?".


Pour illustrer les différences entre la programmation déclarative et impérative, considérons l'exemple simple suivant.


Dans l'activité représentée sur la figure, il y a un fragment (entouré par une ligne rouge).


image

Le balisage de ce fragment est simple; il n'y a qu'un RecyclerView avec id recycler. Le balisage des éléments de liste se trouve dans le fichier item.xml. Les données se trouvent à . Les noms (id) des éléments de balisage correspondent aux noms correspondants dans les données provenant du serveur.


(). (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.


Dans le prochain article, nous décrirons le cycle complet de développement d'applications à l'aide de la bibliothèque DePro.


All Articles