Разработка
Мобильная разработка в “Билайн”: архитектура, инструменты и цели
Софт поглощает мир. «Билайн» из оператора сотовой связи превращается в технологическую компанию, оперирующую большими данными и кодом, и открывает собственный отдел разработки мобильных приложений. Новый отдел не просто будет заниматься разработкой приложений, но и наращивать технологические компетенции компании и предоставлять экспертизу партнерам, базирующимся на технологиях «Билайн».
Разработка изнутри
Да, собственная разработка часто сложнее, однако в современных условиях компаниям, наращивающих свои программные компетенции опираться на аутсорсеров невозможно. Технологии развиваются настолько стремительно, что необходимо “понимать” и “применять” их внутри, минуя дополнительное звено, каким бы хорошим и качественным оно ни было.
Что касается экономической эффективности, то собственная команда это не просто накопление опыта, но и улучшение качества продуктов, аналитики, сокращение экономических затрат в перспективе.
И так, в “Билайн” создаются собственные объединенные команды — управления разработкой приложений, iOS, Android, Backend, QA — и мы активно набираем работников во все департаменты.
На начальном этапе, пока процессы в команде формируются, фактически каждый сможет поучаствовать в этом со-творчестве, сможет внести вклад в то, как будет выглядеть ее/его работа и компания в будущем. В самое ближайшее время мы опубликуем список вакансий и организуем митап в нашем офисе — у нас есть и будет много всего интересного!
Стек
Команда разработчиков будет осуществлять полный цикл работ, включая проектирование, написание кода, развитие бэкенд-систем, тестирования, а во внутренней инфраструктуре компании можно будет опираться на уже полученные результаты с ИИ и работать с Big data.
Технологии мы выбирали сами, этот стек был принят в ходе дискуссии ведущих разработчиков:
- Архитектура: Uber RIB
- iOS: Swift 4 и Objective-C, RxSwift, Alamofire
- Android: Kotlin и Java, Retrofit 2, RxJava2 + RxAndroid, JodaTime, Moxy, Dagger2
- Python для бэкенда
- Appium, TestFairy, Crashlytics, Postman, LoadRunner, Jira + Confluence, TestLink для аналитики, тестирования и управления проектами
RIB: кроссплатформенная архитектура, придуманная и используемая в компании Uber. Причин ее выбора несколько.
- Унифицированная архитектура для обеих платформ (iOS и Android), которая позволяет командам обоих направлений работать в единой среде, оперируя одними и теми же архитектурными компонентами.
- RIB позволяет вести работу независимыми командами над одним проектом, не создавая помех друг другу (для Uber, например, это сотни инженеров, работающих одновременно над одним проектом). На данный момент наше приложение состоит из трех независимых модулей, разделенными по типам абонентов, работа над которыми ведется совершенно разными командами.
- В отличие от привычных для мобильного разработчика архитектур, вся структура приложения представляет из себя дерево состояний, которое выстраивается исходя из бизнес-логики, а view-слой следует за ней.
Swift: мы не видим смысла начинать новые и долгоживущие проекты на Objective-C. Swift активно развивается, еще более активно поддерживается и продвигается самой Apple, код получается нагляднее, лаконичнее и безопаснее. Также, в последнее время, становится легче найти iOS-разработчика, пишущего на Swift, чем на Objective-C и в ближайшее время этот разрыв будет увеличиваться. Хотя, мы считаем, что в данный момент времени знание Objective-C — необходимость для хорошего iOS-разработчика.
Разделение и взаимосвязь Kotlin и Java обоснованы такими же причинами.
Текущее приложение, в большей его части, написано на Objective-C и Java и нам важно понимать устройство проекта, обращаться к нему, чтобы увидеть “подводные камни” — мы стараемся как раз быть носителями экспертизы в каждом из языков для обеих платформ.
Реактивное программирование: для реализации некоторых составных частей архитектуры намного более удобно использовать именно такой подход. Это решение позволяет нам осуществлять разработку проекта с большей эффективностью и пластичностью.
Для чего это все
В первую очередь команда мобильной разработки занимается перезапуском мобильного приложения “Мой Билайн” — у него уже более 4 миллионов пользователей и настала пора изменений.
Основной сложностью в работе с текущим приложением стал тот факт, что у него практически нет поддерживающей backend-системы — вся логика работает на клиенте, что за годы развития сделало приложение абсолютно не поддерживаемым и не способным к фундаментальным обновлениям. Поэтому приложение ждет архитектурный и стековый апдейт, после чего команда перейдет к работе над новыми возможностями для юзеров.
Задача номер один для команды сейчас — выпустить обновленное приложение “Мой Билайн”. Дальше все будет ограничено только нашей фантазией — нас ждут внутренние проекты, приложения для абонентов, приложения для всех, кто использует среду, большие данные и большие возможности “Билайн”.
Присоединяйтесь!