لقد قللنا الوقت لتطوير سيناريو جديد لنشر إعلان من 6 أيام إلى 42 ثانية

تحية للجميع! اسمي Artyom Peskishev ، أنا مطور iOS في Avito. أود أن أخبرك كيف بدأنا برنامجًا نصيًا مدفوعًا بالخلفية لنشر إعلانات جديدة في تطبيقات الجوال لدينا.


دعنا نرى ما هي النصوص البرمجية خطوة بخطوة في التطبيقات والمشكلات التي واجهتنا في النص البرمجي لوضع إعلان. تتناول المقالة أداة طورناها لحل هذه المشاكل ونتائج تنفيذها.



واجهة مستخدم مدفوعة في الخلفية


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