Команда
Наш отдел — это четверо синиоров и мидлов с опытом в iOS от 3-х лет. С нами у тебя не возникнет вопросов, с чего начать сложную фичу — большинство задач уже были решены нами, и мы всегда сможем подсказать тебе решение. Ты точно не будешь сидеть три дня, исправляя баг со сложной версткой или лагами загрузки данных, потому что любой из команды iOS всегда поможет решить проблему быстро.
Мы развиваем наш отдел и сообща решаем, каким он будет: так, за последние два года мы построили систему развивающих митингов и процесс код-ревью. Мы вместе принимаем решения о доработке код-стайла, который мы используем на наших проектах, и всей командой ревьюим новые процессы, прежде чем их запускать — например, так было с код-ревью и git-flow.
У нас налажено сотрудничество с другими отделами, поэтому у тебя будет возможность влиять на проекты начиная с этапа проектирования.
Что мы делаем для развития команды?
Мы не просто кодим 40 часов в неделю: компания выделяет рабочее время для развития наших навыков и знаний. Каждую неделю мы проводим две часовые встречи отдела:
— По средам мы просматриваем интересные статьи об iOS-разработке и обсуждаем, как они могут нам помочь в работе, а ещё разбираем прочитанные главы из книг. Среди тех, что мы уже прочитали: паттерны Швец, чистая архитектура Мартина, эффективная работа с легаси-кодом Физерса, сколько стоит программный проект Макконнелл, iOS TDD by Tutorials.
— По пятницам у нас мини-хакатон — мы собираемся и кодим всей командой. Этот год начали с освоения SwiftUI.
Наш стек
Наш стек покрывает большинство популярных архитектур и реализаций. Мы не пишем по полгода свои велосипеды, а используем свои поддерживаемые наработки и готовые 3rd-party решения. Ты всегда сможешь предложить свою реализацию или наработку, показать ее команде и применить в боевом проекте.
Сейчас стек проектов, над которыми мы работаем, использует гибридный VIPER. В нём роутер заменен координатором, который выполняет роль сборщика модуля и управляет навигацией. Да, это не MVC, но такое разделение кода позволяет быстро накидать minimum viable product, замокать сервер, пока он существует на уровне интерфейсов и документации, и спокойно заниматься стабильностью бизнес-логики.
Мы изучили RxSwift и работаем с ним не только на уровне верстки и таблиц, но и обработки данных с сервера и записи/наблюдения над БД. При этом никто не запретит тебе не использовать Rx совсем: всё обсуждаемо. Для нас RxSwift это не золотой молоток — стэк технологий на проекте мы определяем исходя из его специфики.
У нас есть линтер кода, есть процесс код ревью, код в большинстве современных проектов чистый. В некоторых проектах есть разделение приложений на фрэймворки для увеличения скорости сборки билда, а также для переиспользования sdk (API+БД) в iPadOS: мы планируем внедрить это повсеместно.
На наших проектах настроен CI/CD. Ты получаешь апрув на свой Merge Request, мерджишь его одной кнопкой и едешь домой — система соберет билд и отправит на тестирование за тебя.
Какими технологиями мы пользуемся:
Наши проекты
Устал, что твои задачи похожи на статичные списки данных, профили, лайки или ещё миллион скучных задач? Кодогенерация, блютуз маячки, пуши, карты с геоточками, встроенные покупки, реклама, обновления в бэкграунде и ещё тысячи решенных и предстоящих задач - это то, что тебя ждёт у нас.
Мы не занимаемся только e-commerce списками продуктов, корзиной и оформлением заказов: в нашем портфолио много интересных стартапов, которые дошли до пользователей, и те остались довольны.
Тебе интересно поработать с RxSwift в связке с MVVM для сервиса заказа правильного питания? Или, может, запилить систему лояльности для стартапа? А что насчёт приложения, взаимодействующего с железом, установленным в автомобиле? Или, может, тебе интересно написать e-commerce с нуля так, чтобы всё работало как часы и легко масштабировалось? Главная прелесть работы в аутсорсе — это разнообразие проектов!
Что тебе нужно будет делать:
— влиять на процесс разработки, бизнес-логику и требования: мы решаем важные вопросы проекта всей командой, и разработчики активно в этом участвуют
— вместе с дизайнерами оптимизировать UX приложений
— писать качественный и чистый код
— не бомбить от код-ревью
— оценивать сроки выполнения задач
— в ближайшие месяцы — изучать наш стек, участвовать в митингах iOS-отдела
Будет плюсом если у тебя есть:
— теоретические знания о паттернах iOS-разработки
— опыт работы с Instruments
— знание Objective-C