Connect with us

Разработка

Как создать приложение с механикой Uber?

Советы от эксперта по развитию стартапов и growth hacking Минира Шаха по созданию жизнеспособного и масштабируемого MVP, который позволит вам проверить свою идею с минимумом затрат.

Анна Гуляева

Опубликовано

/

     
     

Советы от эксперта по развитию стартапов и growth hacking Минира Шаха по созданию жизнеспособного и масштабируемого MVP, который позволит вам проверить свою идею с минимумом затрат.

Хотите создать приложение вроде Uber? Если да, то я могу посоветовать вам подумать ещё раз, потому что уже существует более 2,000 подобных приложений.

Знаете ли вы, что в 2015 Роб Сэдоу увидел огромную проблему в индустрии перевозок:

  1. 85% работающих людей самостоятельно ездили на работу на автомобиле каждый день.
  2. При этом они выбрасывали 6.2 тонн углекислого газа.

Роб хотел заполнить этот пробел и запустил свое приложение. Спустя четыре месяца после запуска у него было более 20 тысяч поездок через приложение и он получил 5.2 миллиона долларов в качестве инвестиций.

Многие люди до сих пор не слышали о приложении Scoop, но, очевидно, существуют похожие проблемы, которые “приложения по требованию” могут решить. К сожалению, многие предприниматели не знают, как создавать такие приложения и игнорируют их преимущества.

Что вы узнаете из этой статьи:

  1. Функции и технологии, необходимые для создания MVP.
  2. Как реализовать эти функции.
  3. Создание идеального бэкенда для вашего приложения.
  4. Выбор маркетинговой стратегии для вашего MVP.

Приложение, похожее на Uber, в самой основе должно позволять пользователям заказывать поездки и совершать безналичные платежи. Вся система должна предоставлять взаимодействия в реальном времени между сервером и приложением и обрабатывать платежи автоматически после завершения поездки.

Кроме этого, у экономически жизнеспособного продукта должен быть возврат средств и оценка водителей.

Давайте взглянем на важные для MVP функции и их создание:

  • Первая функция – отслеживание в реальном времени и оповещения. Ее создание требует оптимизации кода для повышения сетевой производительности, программирование сокетов и связь с различными API Google-карт.
  • Приложение должно позволять пользователям регистрироваться со смартфона. Детали аккаунта пользователя должны храниться в отдельной базе данных с правильными настройками безопасности.
  • Чтобы вызвать такси, приложение использует Google-карты, чтобы позволить пользователю выбрать место на карте. Когда пользователь подтверждает запрос, оповещение отправляется к ближайшему водителю. Расстояние и ожидаемое время прибытия можно легко получить при помощи Google Map API.
  • При бронировании поездки нужно отправить пуш-уведомление. Серверный компонент можно создать самим или использовать сторонних поставщиков. Для MVP приложения мы предпочитаем SNS Amazon, так как он легковесный недорого стоит.
  • Отправка уведомлений также требует SSL-соединения, которое может стать самой сложной частью.
  • Braintree предоставляет SDK для проведения платежей в приложении. Интеграция этих SDK позволит вам автоматически совершать платежи, выставлять счет и делать возвраты.

Чтобы выставлять счет за поездку, приложение может использовать отслеживание движения.

Вкратце: ваш первый MVP-продукт должен позволять пользователям запрашивать сервис (поездку), отправлять пуш-уведомления, обрабатывать платежи в реальном времени и использовать API Google-карт для определения локаций. Это все нужно делать на масштабируемом и надежном бэкенде.

Конечно, это был только краткий обзор, на создание приложения потребуется много усилий. Вам нужны будут разработчики со следующими навыками:

  1. Приложения: Objective-C, Java, Swift
  2. Бэкенд-сервисы: Node.js и PHP
  3. Базы данных: MongoDB и MySQL

Предположим, что вы создали приложение при помощи лучших технологий, и оно такое хорошее, что оказывается на верхних позициях в алгоритмах рекомендаций. Но потом вы можете понять, что вам нужно совершить пивот для выживания. Но у вас уже нет бюджета и вы не можете совершить изменения, чтобы занять свою нишу на рынке.

Поэтому вам не нужна точно такая же технология, как у Uber, чтобы протестировать сервис и приобрести пользователей. Вам нужен продукт с минимумом функций, чтобы понять, движетесь ли вы в верном направлении, а затем уже развиваться. В начале существования у Uber не было такой отлаженной архитектуры – они создавали её по мере роста.

Какой стек технологий подходит для MVP?

Простое приложение, созданное на основе следующих технологий, будет способно справляться с тысячами пользователей и позволит масштабировать структуру:

  1. Высокопроизводительные нативные приложения для пользователей на языках вроде Objective-C, Java и Swift.
  2. Хорошо оптимизированный стек веб-сервисов на PHP и/или node.js.
  3. Хорошая база данных на MySQL + MongoDB будет способна легко справляться с нагрузками

В 2011 Twitter полагался на простой стек MySQL, чтобы обрабатывать 250 миллионов твитов. В этом случае MySQL и MongoDB смогут справиться с любым неожиданным ростом.

Но разработка приложения полна рисков…

Поэтому мы стремимся к созданию MVP и правильным методологиям управления. Вот что вы должны сделать для грамотного планирования и реализации планов по разработке:

  1. Разделите проекты и задачи по приоритетности.
  2. Убедитесь, что задачи правильно распределены дизайнерам, разработчикам и менеджерам проекта.
  3. Создайте дедлайн по каждой задаче.
  4. Создайте список из пяти приоритетов для каждого сотрудника.
  5. Будьте в курсе прогресса проекта, проблем и итераций.
  6. Поговорите с командой разработчиков и будьте активной частью их процесса.

Создание идеального бэкенда для приложения

Мы создали сотни приложений, некоторые из которых получили миллионы пользователей за месяц. Команды, которые работали с нами, часто паниковали, а мы проводили ночи, исправляя архитектуру, которая должна была справляться с огромным количеством пользователей.

Это было в 2011, стартапы редко думали о масштабируемости бэкенда и функций на фазе MVP. В то время даже Uber не мог справиться с ростом количества пользователей.

Но затем вышел Node.js…

Отслеживания локации

Чтобы создать такую функцию, вам нужно сосредоточиться на получении и оптимизации данных.

  1. Знаете ли вы, что приложение Uber соединяется с сервером каждые четыре секунды для предоставления информации в реальном времени? В зависимости от того, насколько точно вы хотите отследить локацию автомобиля, вы можете изменять частоту соединения.
  2. Приложению нужно постоянно сообщать примерное время прибытия, GPS-положение, вычислять самую короткую дистанцию и другую требуемую информацию. Для этого приложение использует следующие API: API направлений Google-карт, API матрицы расстояний, геофенсинг, API Google Place и API геокодирования Google-карт.
  3. Самая важная часть создания опыта в режиме реального времени: полудуплексный сокет, который может переносить информацию между серверами и приложениями. Эти протоколы так важны, потому что они помогают сократить расходы на связь. В отсутствие сокетов порт должен открываться и закрываться при получении запроса. В отличие от HTTP-протоколов, сокет, связанный с сервером, всегда оставляет порт открытым, чтобы облегчить обмен информацией.
  4. Учитывая всё это, вашим веб-сервером должен быть Nginx. Другой популярный сервер Apache не очень хорошо подходит для обмена информацией в режиме реального времени.

Обработка платежей

Braintree – хороший инструмент для проведения платежей в таком приложении, и дальше я покажу вам, почему:

  1. Если сумма ваших транзакций составляет меньше 50 тысяч долларов, Braintree не будет брать с вас плату.
  2. Braintree обрабатывает автоплатежи, возвраты, а также платежи, повторяющиеся раз в месяц/неделю/две недели. Если вы хотите добавить функцию разделения счета, Braintree позволит вам внедрить эту функциональность.
  3. “Но я хочу создать собственный платежный шлюз…” Убейте эту мысль сразу же. Для стартапа невозможно создать собственную платежную систему: это требует больших затрат и работы со сложными технологиями. Мы рекомендуем использовать уже существующую систему.
  4. “Но что насчет безопасности данных?” Многие платежные шлюзы совместимы с PCI. При регистрации аккаунта в системе вас попросят заполнить PCI SAQ A-EP форму. Это ваша проверка безопасности данных и согласие на их обработку.

Вы должны обязательно убедиться, что выполняете свою часть проверки безопасности данных. Когда в вашем приложении будет 20 тысяч транзакций, за вами будет наблюдать VISA. Поэтому убедитесь, что разработчики не просто интегрировали API платежной системы, а встроили в приложение SDK. В обратном случае информация может быть недостаточно защищена.

Вам нужно:

  1. Убедиться в использовании SSL-шифрования
  2. Никогда не хранить информацию о кредитных картах локально
  3. При возможности использовать Braintree iFrames

Бронирование поездок

Механизм бронирования поездок может работать двумя способами:

  1. Когда пользователь заказывает поездку, запрос идет к ближайшему водителю с самым высоким рейтингом.  Он получает уведомление и может ответить на него или проигнорировать запрос. В случае отказа запрос идет к следующему ближайшему водителю.
  2. Когда пользователь заказывает поездку, запрос отправится ко всем доступным водителям. Поездку получит первый ответивший на уведомление водитель.

Создание бэкенд-сервисов при помощи PHP и Javascript

Идеально – не всегда правильно. Вы можете создать целый стек на node.js, но это выльется в дополнительные затраты, которые могут стать огромными для стартапа. Идеальным решением для такого приложения станет создание веб-сервисов на основе PHP и Javascript.

Полный бэкенд на Node.js потребует использование двух-трех серверов MongoDB. Создав некоторые из серверов на PHP, вы сократите затраты за счет использования MySQL.

Таким образом, два-три сервера MongoDB и применение MySQL и PHP/Node.js создадут идеальный бэкенд для вашего приложения.

Node.js очень важен для создания приложений, которые будут работать в реальном времени:

  1. Для управления функциями в режиме реального времени он отправляет асинхронную задачу в цикл событий с функцией вызова, а затем выполняет остаток программы.
  2. Работа ускоряется за счет использования realtime-вебсокета, работающим с TCP.

Затем, для создания веб-приложения и REST API, вам нужно будет создать два отдельных приложения на Laravel. Так вы сможете без проблем создавать будущие обновления без необходимости изменять веб-приложение.

Создание масштабируемой архитектуры

Uber начинали с простого стека LAMP (Linux, Apache, MySQL и PHP). Но этот стек привел к проблемам с производительностью и множественной диспетчеризацией. Им пришлось быстро создавать что-то новое, чтобы не возникло проблем с масштабированием. И вот здесь нам и нужен будет Node.js.

Простая масштабируемая архитектура будет выглядеть примерно так:

Понять её очень просто. Мы отделили друг от друга три компонента: сервисы для хранения и управления данными о локации, real-time-логику и бизнес-логику.

Бизнес-логика – это всё, что связано с платежами, выставлением счетов, отправкой СМС. Этот сервер также управляет сторонними SDK и API. Real-time-логика – это всё, что связано с данными режима реального времени, отслеживанием и оповещениями.

90% входящих данных в таких приложениях – это информация, связанная с локацией. Такие данные должны храниться на серверах MongoDB, чтобы веб-сервисы имели доступ к этой информации только по необходимости.

Такая архитектура также предупреждает полное падение системы. Представьте, что ваша сторонняя система платежей не работает. Ваша система будет постоянно вызывать цикл, чтобы получить ответ. Поездка уже будет закончена, но водитель не сможет получить информацию о платеже или взять другой заказ. С разделением логики обе системы будут работать независимо. И падение одной из них не вызовет падения всей системы.

На данный момент наше приложение имеет необходимые функции, оптимизировано для производительности и масштабирования. Теперь ваш будущий рост зависит от пользователей, которых вы привлечете, и от установленных KPI. Вы вряд ли увидите, что пользователи делают внутри приложения. Как тогда это можно понять? Как убедиться, что вы привлекаете нужных пользователей? Как вы узнаете, что пользователь удалил приложение?

Инструменты для маркетинга приложения

Чтобы понять поведение пользователя, сначала вам нужно…

Сегментировать пользователей и установить KPI

Деление пользователей на сегменты позволит вам лучше понять их поведение. Например, вы можете наблюдать рост количества поездок в два раза, но этот рост будет происходить за счет двух из четырех пользовательских групп. С этой задачей вам может помочь Upsight SDK.

Upsight позволит вам создать сегменты пользователей, понять их черты и понять, как разные факторы влияют на ключевые KPI. Такими показателями могут быть среднее количество пользователей в день или месяц, средняя выручка с пользователя, общее количество поездок на сегмент/пользователя.

Сообщения об ошибках

Для этого можно использовать Crashlytics. Каждый раз при возникновении ошибки вы увидите отчет с детальной аналитикой. Как показали наши недавние исследования, Crashlytics использовался в 90% самых популярных приложений.

Поддержка пользователей в приложении

Магазины приложений часто создают разрыв между пользователями и разработчиками. Встраивание поддержки с помощью ZenDesk поможет сократить этот пробел. Его преимущества:

  1. ZenDesk автоматически собирает информацию об устройстве, которая в другом случае потребует обмена сообщениями с недовольным пользователем.
  2. У ZenDesk также существует приложение для команд поддержки пользователей.

Единственным недостатком в ZenDesk может стать присутствие заявок в службу поддержки. Поэтому некоторые предпочитают Intercom, но это абсолютно субъективно.

Growth hacking – получение отзывов и оценок

Просить пользователя оставить отзыв или оценку очень важно. Мы часто видим попытки привлечь пользователя после завершения некоторого количества событий. Это часто раздражает пользователя, а сердитый пользователь оставляет отзыв чаще довольного.

Чтобы получить хороший отзыв, используйте Apptentive. Инструмент использует алгоритм для определения настроения пользователей и предлагает им оставить отзыв в правильный момент, чтобы получить хорошие оценки.

Сократить число удалений приложения

Uninstall.io – инструмент аналитики, который позволяет разработчикам понимать важные сигналы, которые приводят к большому количеству удалений приложения. Uninstall.io:

  1. Идентифицирует проблемы, с которыми сталкиваются пользователи в приложении, или раздражающие функции или взаимодействия, которые приводят к удалению приложения.
  2. Идентифицирует рекламные кампании, которые дорого обходятся, но не привлекают пользователей.
  3. Находит пользователей, удаливших приложение, и выбирает канал для ретаргетинга таких пользователей.

A/B тестирование

Что делать, если вы не можете выбрать одну из двух функций и хотите протестировать их максимально быстро, не разозлив своих пользователей? При помощи Optimizely SDK вы можете разделить своих пользователей на две части, каждая из которых получит свою функцию. Вы можете собирать информацию о том, какая функция работает лучше, а какая не работает, и использовать эти знания для создания стратегии развития продукта.

Добавление элемента виральности

Вспомните, как вы в первый раз получили сообщение от знакомого о бесплатной первой поездке на Uber.

Чтобы влиять на решения, основанные на доверии, мы советуем использовать Appvirality для реферального маркетинга. Панель аналитики Appvirality предоставляет основанный на данных подход для направленного маркетинга при помощи инвайтов, кликов, установок и доходов, приходящихся на конкретный канал.

Последовательный маркетинг

“Капельные” кампании – важная часть создания рынка поездок по требованию, который должен расти и приобретать новых пользователей. Специальные инструменты позволяют легко настраивать email-кампании. В зависимости от целевой аудитории, вы можете отправлять письма для повторного вовлечения, сообщать об обновлениях и делиться историями клиентов, чтобы мотивировать получателей письма.

Анна Гуляева
Комментарии Facebook
Продолжить чтение
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Новости

Интересные материалы: 21.11

Лучшие материалы о разработке и маркетинге технологических продуктов.

Леонид Боголюбов

Опубликовано

/

Весь день мы собираем лучшие материалы о разработке и маркетинге технологий, стартапов, мобильных приложений и игр для iOS и Android из самых разных источников:

Леонид Боголюбов
Комментарии Facebook
Продолжить чтение

Мероприятия

Avito iOS Meetup Winter Edition: 2 декабря в Москве

Зима близко! Уже второго декабря состоится традиционный Avito iOS Meetup.

AppTractor

Опубликовано

/

Автор:

Мы обсудим Data Driven подход, практическое применение Mach-O, lldb и dSYM, возможности расширения lldb, методологию Type Driven, а также концептуальные различия архитектур. В мероприятии примут участие представители Avito, Badoo, Туту.ру и Яндекс.

Программа:

  • Метрики всему голова
    Вадим Смаль (Avito)
    Поговорим о Data-driven подходе к разработке. Вадим продемонстрирует, какие метрики можно собирать, как они помогут быть эффективным и как следить за качеством разрабатываемой функциональности. Подробно рассмотрим, как замерять время компиляции отдельных фреймворков, размер приложения, время запуска приложения, CrashFree, OOM. Если вы до сих пор думаете, что метрики это только для менеджеров и аналитиков — будете приятно удивлены.
  • Расширения lldb
    Сергей Лем (Badoo)
    Все хотят писать код без багов. Но, к сожалению, пока что мало у кого это получается.И почти всегда отладка приложений занимает львиную долю времени при разработке.Поэтому важно иметь наиболее совершенные инструменты в своем арсенале и не тратить время не ерунду. Сергей Лем расскажет о том, как прокачать lldb при помощи  расширений на Python и сделать отладку приятнее и быстрее.
  • Mach-O, lldb, dSYM на практике
    Владислав Алексеев (Avito)
    В докладе речь пойдёт о бинарном формате исполняемых файлов Mach-O, об отладочной информации и объектных файлах. Рассмотрим, как работают брейкпоинты и символизация крешлогов. Поймем, когда и зачем нам нужны файлы dSYM, а в каких случаях их создавать совершенно не требуется. Также изучим случаи непрямого использования dSYM-файлов для анализа содержимого скомпилированного бинарного файла.
  • Type Driven Development
    Валерий Попов (Yandex)
    В докладе Валерий рассматривает строгую типизацию, которая может стать еще одним рубежом обороны надежного приложения от ошибок разработчика. На примерах будет показано, как дополнительная информация, переданная на этапе компиляции, поможет отловить ряд ошибок, не доводя систему до падения в runtime. Расскажет, что мобильный разработчик может почерпнуть из языков, которые ставят типы во главе процесса разработки.
  • Architecture overdose
    Стас Цыганов (Туту.ру)
    Стас Цыганов предлагает поговорить о разных архитектурах: как верхнего слоя, так и всего приложения. Речь не о баззвордах и сравнениях, у кого больше букв: цель —  понять, чем же они концептуально отличаются. Разберемся, почему появляется по архитектуре в неделю и почему в них нет ничего нового. Ну и в конце посмотрим, на что надо будет обратить внимание при выборе архитектуры следующего приложения.

Участие в мероприятии бесплатное, регистрация обязательна. Сбор участников: 12:00. Начало докладов: 12:30. Адрес: офис компании Avito, Лесная 7.

AppTractor
Комментарии Facebook
Продолжить чтение

Новости

Эксперты выяснили, для чего Google форкнул Swift

Теоретически, добавление Swift позволит быстро портировать приложения c платформы Apple.

Леонид Боголюбов

Опубликовано

/

На прошлой неделе Google на GitHub форкнул Swift, язык программирования, который создала Apple для разработки iOS/macOS/tvOS/watchOS приложений.

Эксперты полагали, что Google сможет вносить дополнения в открытый язык или использовать его для разработки внутренних инструментов для iPhone и iPad.

Однако последние коммиты в репозиторий Swift показывают, что Google работает над поддержкой Fuchsia OS. На GitHub вы уже можете посмотреть на “Hello World” приложение на Swift для. Fuchsia

Fuchsia: новая операционная система от Google

Fuchsia поддерживает Dart, C++ и Go. Теоретически, добавление Swift позволит быстро портировать приложения c платформы Apple.

Леонид Боголюбов
Комментарии Facebook
Продолжить чтение

Разработка

AR стала частью реальности: что дальше?

Сегодня мы поговорим о важном событии в истории Apple (и это не запуск iPhone X) – мы поговорим о том, благодаря чему дополненная реальность (AR) стала чем-то большим, чем несбыточной мечтой маркетологов.

Джей лаб

Опубликовано

/

Автор:

До того, как ARKit был продемонстрирован на оборудовании, фактически оптимизированном для него, дополненная реальность не имела особого смысла для большинства компаний. Ее использование требовало серьезных усилий, и никто не мог точно сказать, как это все будет отображаться на существующих устройствах, и будет ли отображаться вообще.

На сегодняшний день практически все эти препятствия исчезли. С помощью ARKit любой разработчик может создавать приложения в интерактивном формате, которые будут работать на новых iPhone, а также на некоторых предыдущих версиях (6 и выше) с iOS 11. Сотни миллионов пользователей iPhone, а также 100 миллионов устройств Android, которые теперь используют ARCore SDK от Google, означают, что настал переломный момент в переходе технологии AR на массовый рынок.

И как всегда, когда поведение потребителей начинает меняться, каждый хочет знать: «Что это значит для брендов? Как маркетологи могут использовать эту новую, интересную технологию для привлечения внимания потребителей?». С появлением оптимизированного оборудования у компаний появилось больше возможностей. Но как ими правильно воспользоваться?

Почему ARKit лучше альтернатив?

Ждите и наблюдайте

Помните, когда появился 3D Touch? Многие разработчики полагали, что он предоставит совершенно новый уровень навигации по мобильному приложению и что «долгое нажатие» станет таким же общепринятым действием, как «свайп». Но так ли это на самом деле? Вы, например, им пользуетесь? :) У меня есть доступ к этой функции уже более двух лет, и я только недавно обнаружил, что на обычном фонарике на iPhone есть три разных степени интенсивности, которые доступны только при глубоком нажатии на значок в Настройках. Теперь я постоянно использую уровень «низкого света» – но, согласитесь, два года – это совсем не быстрый уровень принятия новой функции.

То же самое касается AR. Все предсказания о том, что дополненная реальность войдет в повседневную жизнь пользователей, не подтвердятся, если на то не будет веской причины.

Конечно, демо-версия игры The Machines выглядит круто, но достаточно ли круто для ежедневного использования большим количеством юзеров? Для того, чтобы AR действительно стала частью нашей повседневной жизни, она должна создавать ценность, выходящую за пределы развлечения. Демо-версия приложения Главной лиги бейсбола выглядит гораздо интереснее, потому что информация о ходе игры и командах, отображающаяся прямо во время матча – это ценная информация, которую пользователи хотят видеть.

Сфера туризма и путешествий также готова к буму AR: приложения, которые накладывают указатели направлений на реальные улицы, отображают перевод надписей на реальных поверхностях, выдают информацию о достопримечательностях в непосредственной близости от них, – все они расширяют границы нашего восприятия мира. Мало кто знает, что до того, как Niantic запустили Pokémon Go, они создали Field Trip для Google Glass, которые уже поддерживали эту функцию.

Начните с малого – затем совершенствуйте, адаптируйте и переориентируйте

У нас есть отличная возможность, но все, что требуется, чтобы испортить ее – это плохая рекламная концепция или некачественное исполнение. Конечно, мы должны попробовать разные подходы и экспериментировать, чтобы в итоге все получилось, но я рекомендую начинать с малого. Для начала внедрите AR опыт, который меньше относится к вашему бренду и больше к вашей отрасли и аудитории. Например, ресторан может виртуально поместить на пустую тарелку вкусный, сочный бургер, но без логотипа на булочке и подписи «2 по цене 1». Для начала соберите данные о том, как потребители используют функциональность AR и как реагируют на нее.

У вас есть возможность превратить пустое пространство в захватывающий опыт, который поможет увеличить вовлеченность пользователей и мотивировать их на совершение покупки. Узнайте, получается ли у вас сделать это, и пробуйте постепенно вводить фирменные элементы и отслеживайте, как они влияют на ключевые показатели эффективности.

Внедряйте лучшие методы и практики

Если вы находитесь на стадии изучения и адаптации этой технологии, поделитесь своими знаниями. На данный момент единственными, кто устанавливает стандарты в сфере AR, являются компании, использующие эту технологию. В то же время не забывайте постоянно оценивать свое собственное поведение как потребителя. Рассуждайте, как AR может позитивно повлиять на вашу повседневную жизнь и какие случаи ее использования наиболее естественны?

На данный момент AR – это все еще «новая модная вещь», но стоит потратить немного своего времени и энергии, и мы действительно сможем понять, как мы можем эффективно ее использовать и устанавливать свои стандарты, создавая при этом новое рекламное пространство.

Джей лаб
Комментарии Facebook
Продолжить чтение

november

24novallday26What the hack?!

25novalldaySmart Taler 2017

25novalldayLadies Code: время технологий

30novalldaySmart Cars & Roads 2017

december

02decalldayAvito iOS Meetup Winter Edition

05dec18:3022:00Яндекс изнутри: глазами iOS-разработчика

08decallday09Кубок СTF России

09decallday10Games Gathering 2017

09decalldayЛекционный день по игровой индустрии

Наша рассылка

Каждому подписавшемуся - "1 час на UI аудит": бесплатный ускоренный курс для разработчиков веб и мобильных приложений!

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Наш Facebook

Популярное

X

Спасибо!

Теперь редакторы в курсе.