"avito Переезд delivery club на глобальное api" Давид Лашхи...

14
6 000 000 пользователей более 30 000 заказов в день 7 лет на рынке +

Upload: avitotech

Post on 16-Jan-2017

97 views

Category:

Internet


1 download

TRANSCRIPT

Page 1: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

6 000 000 пользователей

более 30 000 заказов в день

7 лет на рынке

+

Page 2: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Миграция

Delivery Club Foodpanda

!" #$

%&

'()*

Page 3: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Было

Page 4: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Процесс работы на приложением

Дизайн ревью

Код ревью

Тесты Xcode

QA

Page 5: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Запуск приложения

Page 6: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Что мигрировать

Delivery Club Foodpanda

User

Vendor

Баллы Адреса Профиль

Меню Филиалы Информация

User

Vendor

Баллы Адреса Профиль

Меню Филиалы Информация

RESTJSONModel

FOOFOOFOO

Page 7: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Что мигрировать

&

&

+ Быстро исправляются ошибки

+ Бекенд не меняется

- Долгая настройка- Исправления одной и той же ошибки неск. раз

Page 8: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Миграция

Stage$!

Page 9: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Core Data

До После

Page 10: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

AFNetworkingNetworkManagerNetworkManager Category

params, url, type

response / error

params, url, type

parsed response / parsed error

REST

NetworkManager + User

NetworkManager + Vendor

NetworkManager + Address

Page 11: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Геолокация

latitude longitude

City Street Building

Foodpanda API

Address

Yandex

Page 12: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

DCProductVariationToppingsView *view = (DCProductVariationToppingsView *) [[UIViewController alloc] initWithNibName:@“DCProductVariationToppingsView" bundle:nil].view;

Концептуальные проблемы

MVC MVVMCocoaPods

Unit Tests

[DCAppDelegate appDelegate].managedObjectContext

Vendor *vendor; SomeVC * someVC = [[SomeVc alloc] init]; someVC.vendor = self.vendor;

Core Data- (NSManagedObjectContext *)createLocalContext { NSManagedObjectContext *localContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; [localContext setParentContext:self.managedObjectContext]; return localContext; }

NSString *vendorId; SomeVC *someVC = [[SomeVc alloc] init]; someVC.vendorId = self.vendorId;

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

Page 13: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Интеграция Swift

1) Новый код— на Swift

2) Меняется > 30%? — переделываем на Swift

Swift 2.2 -> Swift 3

Подходящее время для перехода на Swift:1) Переезд на новое API 2) Добавление или удаление нового функционала

Page 14: "Avito Переезд Delivery Club на глобальное API" Давид Лашхи (Delivery Club)

Спасибо!

[email protected]

twitter: @davidlashkhi