Kami telah mengurangi waktu untuk mengembangkan skenario baru untuk menerbitkan iklan dari 6 hari menjadi 42 detik

Halo semuanya! Nama saya Artyom Peskishev, saya adalah pengembang iOS di Avito. Saya ingin memberi tahu Anda bagaimana kami memulai skrip yang digerakkan oleh backend untuk menerbitkan iklan baru di aplikasi seluler kami.


Mari kita lihat apa script langkah demi langkah dalam aplikasi dan masalah apa yang kita miliki dengan script untuk menempatkan iklan. Artikel ini tentang alat yang kami kembangkan untuk memecahkan masalah ini dan hasil penerapannya.



Ui yang digerakkan oleh backend


Backend-driven UI —   ,     , ,   , ,  .


Backend-driven UI    ,   .  ,  . , .    .  , .


 backend-driven  —  backend-driven UI.


 


 — ,   .  — . : , Wi-Fi, Apple ID.   .



  — . , MyFitnessPal, .   ,  .



  .   «». . ,  . ,  ,   ,   « ».    .



   « ». , , .   ,   . ,   « ».



   .   .      ,  , .


,    .    ,  . ,   .  ,   QA-. .


,   . , , .     , . , .



,   ,  , , .   . -     .  .  iOS, Android,  Desktop .



,   ,   . .


:


  1.   .
  2.   .
  3.  


  «».   :


  • Select    .
  • Input    .
  • Address  .
  • Photos  .
  • Bool     .

 .   , ,      . ,   , . , , .


  «» ,  .   .



  .  — ,   .


,  — , .   . , , ,  . ,    ,   .    —   -.


 — . -     . select.      .  ,   . ,   , .


 — .   ,   .


   — . ,  . , ,   .   .


. , .   « », .  ,  .  ,     «».


,   « »  . . .


    «». VIN, VIN   .    18  .


,   , , , ,   .   - , ,   . , .


,   :


  •   , ?
  • ?     ,   . ,    — , , .     .
  • ?   , . .

, .   ,   -.     .


:


  1. Pretend,    , .
  2. .  , .
  3. .   .

, backend-driven UI   ,   .


 


: , .


 — UI-   . ,   , .   . :   , , .


 "steps": [{
            "id": 1133,
            "title": " ",
            "fields": [],
            "type": "wizard"
        }, {
            "id": 1169,
            "title": " ",
            "fields": [],
            "type": "request",
            "subtype": "steps",
       }, {
            "id": 1168,
            "title": "",
            "fields": [499],
            "type": "params"
        }, {
            "id": 1134,
            "title": "VIN ",
            "fields": [838],
            "type": "vin"
       }, {
            "id": 1163,
            "title": " ",
            "fields": [549, 498, ...],
            "type": "params"
        },
        {...}]

  .   ,   .     ,  .


, . ,   «», . , , .   , ,   "value" .   — iOS, Android .


  .



DynamicPublish , ,   , .


,  — .  DataService,  ,   - -, .   .


 — StepHandler.  ,  ,   .


StepHandler, . , Wizard — StepHandler,   . Steps -. Select . Params   .


. -, .    . , , «»   .


 StepHandler. StepHandler  - ,  .   .


, «»,   , . , «».


. StepHandler   . -  — , ,   . n  ,    — , .



  . ,   , , .   . -  , .


.      .  — , , . , ,   , , , . . .


42   ,   .     .



 —   . , . ,   , .


    . /-  .


. ,   .


  .   . ,  — . , , , .


. , .      — . , MVP ,   .    , , .


All Articles