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 .

, , . .
:
- .
- .
-
«». :
- Select .
- Input .
- Address .
- Photos .
- Bool .
. , , . , , . , , .
«» , . .
. â , .
, â , . . , , , . , , . â -.
â . - . select. . , . , , .
â . , .
â . , . , , . .
. , . « », . , . , «».
, « » . . .
«». VIN, VIN . 18 .
, , , , , . - , , . , .
, :
- , ?
- ? , . , â , , . .
- ? , . .
, . , -. .
:
- Pretend, , .
- . , .
- . .
, 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 , . , , .