Nous avons réduit le temps de développement d'un nouveau scénario de publication d'une annonce de 6 jours à 42 secondes

Bonjour à tous! Je m'appelle Artyom Peskishev, je suis développeur iOS chez Avito. Je veux vous dire comment nous avons commencé un script basé sur le backend pour publier de nouvelles annonces dans nos applications mobiles.


Voyons quels sont les scripts Ă©tape par Ă©tape dans les applications et quels problĂšmes nous avons rencontrĂ©s avec le script pour placer une annonce. L'article concerne un outil que nous avons dĂ©veloppĂ© pour rĂ©soudre ces problĂšmes et les rĂ©sultats de sa mise en Ɠuvre.



Interface utilisateur pilotée par le 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