Hemos reducido el tiempo para desarrollar un nuevo escenario para publicar un anuncio de 6 días a 42 segundos

¡Hola a todos! Mi nombre es Artyom Peskishev, soy desarrollador de iOS en Avito. Quiero contarles cómo comenzamos un script basado en backend para publicar nuevos anuncios en nuestras aplicaciones móviles.


Veamos qué guiones paso a paso hay en las aplicaciones y qué problemas tuvimos con el guión para colocar un anuncio. El artículo trata sobre una herramienta que desarrollamos para resolver estos problemas y los resultados de su implementación.



Interfaz de usuario impulsada por 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