Разработка мобильных приложений

Основная деятельность нашей компании — разработка нативных приложений под iOS и Android на Swift и Kotlin, а также кроссплатформенных приложений на Flutter.

Этапы проекта

Техническое задание
Работа над проектом начинается с написания технического задания. Мы формулируем потребности, цели проекта, анализируем конкурентов. Затем дизайнер проектирует прототипы будущего приложения, а менеджер совместно с разработчиками описывает логику функционирования и технические требования. После согласования делаем подробную оценку, планируем работы по проекту.
1
Дизайн
Вместе с клиентом выбираем дизайн-концепцию и на ее основе рисуем дизайн экранов. Параллельно дизайнер создает дизайн-систему проекта (элементы, шрифты, цвета, иконки). После согласования отрисовываем разные состояния экранов, адаптируем макеты под вторую операционную систему, пишем спецификации для разработчиков.
2
Разработка под iOS и Android
На основе технического задания и дизайна экранов разработчики начинают верстать экраны и реализовывать функции, подключают backend (программы и базы данных на сервере). После каждой итерации все функции и работу экрана проверяет тестировщик на наличие ошибок и соответствия техническому заданию.
3
Backend-разработка
Backend-разработчик проводит исследования и изучает возможности с учетом требований технического задания и на основе этого проектирует backend и базы данных. Разворачивает и настраивает сервер, настраивает админку, создает базы данных проекта, пишет серверный код, подготавливает материалы (справочники) для frontend-разработчиков. Каждая функция проходит тестирование автотестами и тестировщиками.
4
Тестирование
На всех этапах проекта подключаются тестировщики — они следят, чтобы продукт получился высокого качества. А именно пишут тест-кейсы и чек-листы, выполняют функциональное и нефункциональное тестирование, проверяют верстку на соответствие дизайну и запросы к серверу. Каждая ошибка отправляется разработчику и после исправления снова тестируется.
5
Публикация приложения
После согласования всех этапов начинается публикация приложения в магазинах приложений. Backend-разработчик переносит готовый код и базы данных на реальный сервер. Разработчики платформ формируют сборку и подают заявку на публикацию приложения через наш аккаунт или аккаунт клиента. Дизайнер подготавливает скриншоты и баннеры. После прохождения модерации приложение появится в AppStore и Google Play.
6
Поддержка и развитие
После публикации приложения Вы можете заказать у нас поддержку и развитие своего проекта. Например, мы можем добавлять новости или поддерживать актуальными каталог товаров, контролировать дизайн новых разделов или делать стилизацию под праздники. Также мы можем помочь настроить и отслеживать метрики использования вашего приложения или запустить рекламу в AppStore или Google Play.
7

Стек технологий

Для решения задач мы используем популярные технологии. Здесь представлен список решений, которые мы используем в работе.
Android
Языки
Kotlin/Java
Взаимодействие с сетью
OkHttp, Retrofit, Gson, Moshi, Socket.IO, Centrifugo
Базы данных
SQlite, Room, Realm, Datastore
Архитектура
MVP, MVVM
Инъекция зависимостей
Koin, Toothpick, Dagger2
Навигация
Cicerone, Jetpack Navigation
Анализатор кода
Detekt
Реактивное программирование
Flow, RxKotlin, RxJava
Асинхронные задачи
Coroutines
Тестирование
JUnit, Mockk
Разное
iOS
Языки
Swift
Взаимодействие с сетью
Moya, Alamofire
Базы данных
Realm, CoreData, SQLite
Архитектура
MVVM, чистая архитектура (вариация паттерна VIPER), Coordinators
Инъекция зависимостей
DITranquillity, Swinject
Библиотека для работы с UIColleсtionView
IGListKit, UITableView, UICollectionView
Views layouting
Autolayout, PinLayout, SnapKit
Реактивное программирование
RxSwift, Combine
Android Architecture Components, Firebase, Yandex, Huawei
Flutter
Языки
Dart (Swift для iOS проектов, Kotlin для Android проектов)
Взаимодействие с сетью
Socket.IO, Chopper (codegen), Http, Dio
Базы данных
hive
Архитектура
MVVM
Инъекция зависимостей
GetIt, Provider
Навигация
auto_route (декларативный роутинг)
Анализатор кода
linter
Стейт менеджмент
Bloc + RxDart

Форматы работы

Fixed Price

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

Time & Materials

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

Retainer

Фиксируется команда проекта и её ежемесячная стоимость; каждый месяц заказчик платит одну и ту же сумму, колебания в количестве часов игнорируются.