Быстрее света. ua mobile 2016

42
Зимин Александр iOS Developer Product Designer

Upload: ua-mobile

Post on 07-Apr-2017

115 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Быстрее света. UA Mobile 2016

Зимин Александр iOS Developer

Product Designer

Page 2: Быстрее света. UA Mobile 2016

План

О себе Uberchord

Page 3: Быстрее света. UA Mobile 2016

План

Аналитика и onboarding

Обратно к MVC

Swift в производстве

Page 4: Быстрее света. UA Mobile 2016

План

О себе Uberchord Эксперимент

Page 5: Быстрее света. UA Mobile 2016

WWDC 2015 Paste

Tricky CircleMotivate Me

CocoaHeads

О себе

Page 6: Быстрее света. UA Mobile 2016

Uberchord www.uberchord.com

Page 7: Быстрее света. UA Mobile 2016

Uberchord

Onboarding MVC Swift

Page 8: Быстрее света. UA Mobile 2016

Uberchord

Onboarding MVC Swift

Page 9: Быстрее света. UA Mobile 2016

Onboarding

До onboardingПосле onboarding

Onboarding Конверсия

Page 10: Быстрее света. UA Mobile 2016

Onboarding Примеры

Page 11: Быстрее света. UA Mobile 2016

Onboarding Что это?

• Первое взаимодействие пользователя с вашим продуктом

• Преследует одну или несколько целей:

• Знакомство

• Нестандартный функционал

• Права доступа

• Авторизация

Page 12: Быстрее света. UA Mobile 2016

Onboarding

Page 13: Быстрее света. UA Mobile 2016

Onboarding

Page 14: Быстрее света. UA Mobile 2016

Onboarding

Page 15: Быстрее света. UA Mobile 2016

Onboarding

Page 16: Быстрее света. UA Mobile 2016

Onboarding Итоги

• Задачи:

• Аналитика внутри приложения

• Неделя работы и неделя шлифовки

• Результат:

• Featured by Apple

• Конверсия прохождения первого упражнения выросла с 2.59% до 30.19% (больше чем в 10 раз)

Page 17: Быстрее света. UA Mobile 2016

Onboarding Аналитика

• Mixpanel

• Дорого?

• 500.000 событий в месяц (150$ или баннер)

• Facebook Analytics

• Бесплатно

• Audience & lookalike

Page 18: Быстрее света. UA Mobile 2016

Uberchord

Onboarding MVC Swift

Page 19: Быстрее света. UA Mobile 2016

MVC

Controller

ViewModel

Page 20: Быстрее света. UA Mobile 2016

MVC

Controller

Model View

Page 21: Быстрее света. UA Mobile 2016

MVVM

Controller

View

ModelModel

Controller

View

ViewModel

Model

Page 22: Быстрее света. UA Mobile 2016

MVC

struct Person { var firstName: String var secondName: String }s

Page 23: Быстрее света. UA Mobile 2016

MVC

struct Person { var firstName: String var secondName: String }s

class ViewController: UIViewController { var person: Person! @IBOutlet var nameLabel: UILabel! }s

Page 24: Быстрее света. UA Mobile 2016

MVC

struct Person { var firstName: String var secondName: String }s

class ViewController: UIViewController { var person: Person! @IBOutlet var nameLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() nameLabel.text = "\(person.firstName) \(person.secondName)" } }s

Page 25: Быстрее света. UA Mobile 2016

MVVM

struct Person { var firstName: String var secondName: String }s

struct PersonModel { var person: Person var name: String { return "\(person.firstName) \(person.secondName)" } }

class ViewController: UIViewController { var person: Person! @IBOutlet var nameLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() nameLabel.text = "\(person.firstName) \(person.secondName)" } }s

Page 26: Быстрее света. UA Mobile 2016

MVVM

struct Person { var firstName: String var secondName: String }s

struct PersonModel { var person: Person var name: String { return "\(person.firstName) \(person.secondName)" } }

class ViewController: UIViewController { var personModel: PersonModel! @IBOutlet var nameLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() nameLabel.text = personModel.name } }s

Page 27: Быстрее света. UA Mobile 2016

MVVM Плюсы

• “Чистые” контроллеры

• Гибкость тестирования

• Переиспользование

Page 28: Быстрее света. UA Mobile 2016

MVVM Минусы

• Множество дополнительных классов

• Проблема перепроектирования

• Сложность общения

Page 29: Быстрее света. UA Mobile 2016

MVVM

Page 30: Быстрее света. UA Mobile 2016

MVC Итоги

• Процент crash-free пользователей не изменился

• Скорость итераций повысилась

• Упростился подход

Page 31: Быстрее света. UA Mobile 2016

Uberchord

Onboarding MVC Swift

Page 32: Быстрее света. UA Mobile 2016

SwiftSwift в производстве

637

77

Page 33: Быстрее света. UA Mobile 2016

SwiftSwift в производстве Вопросы

• Переписывание кода после выхода новой версии?

• Команда должна учиться новому языку?

• Использование библиотек на Swift?

Page 34: Быстрее света. UA Mobile 2016

Swift в производстве Недостатки

• Работа с Swift в Obj-c

• Скорость компиляции проекта

• Невозможность раскрыться на полную:

• POP

• Enum

• Generic

• …

Page 35: Быстрее света. UA Mobile 2016

Swift в производстве Travis & Swift 2.2

• xcode 7.2

• xctool

• xcode 7.3

• xcodebuild

• xcpretty

Page 36: Быстрее света. UA Mobile 2016

Swift в производстве Плюсы

• Читаемость кода

• Скорость написания кода

• Опыт использования языка

• POP, Enum, Struct, Generics и прочее

Page 37: Быстрее света. UA Mobile 2016

Эксперимент

Motivate Me

Page 38: Быстрее света. UA Mobile 2016

Эксперимент Featuring

• WWDC 2015

• Поддерживайте Apple

• Встраивайте новые API

• Разрабатывайте под новые девайсы (watchOS, tvOS)

• Соберите аудиторию

Эксперимент

Page 39: Быстрее света. UA Mobile 2016

Эксперимент Featuring (мифы)

• Нужны обновления

• Рейтинг должен быть выше 4 звезд

• Нужно быть уникальным и быть в редкой категории

• Вас уведомят

Page 40: Быстрее света. UA Mobile 2016

Эксперимент

Знакомства

Page 41: Быстрее света. UA Mobile 2016

Отправь “UAMobile” на [email protected]

Page 42: Быстрее света. UA Mobile 2016

Спасибо за внимание

Зимин Александр [email protected]

@ZiminAlex