Ответ
Мне интересно узнать о нескольких аспектах работы в команде:
- Технический стек и процессы: Какой стек технологий используется в команде Flutter (например, состояние — Bloc/Riverpod, навигация — go_router/auto_route, тестирование)? Как организован CI/CD для мобильных приложений?
- Архитектура и качество кода: Придерживается ли команда какой-то конкретной архитектуры (Clean, Feature-first)? Как проходит code review и какие критерии качества кода являются ключевыми?
- Развитие проекта: Над каким продуктом или фичами предстоит работать в ближайшие полгода? С какими основными техническими вызовами сталкивается команда (производительность, нативная интеграция, кроссплатформенные особенности)?
- Профессиональный рост: Есть ли в компании возможность участия в конференциях, внутренних воркшопах или выделенное время на изучение новых технологий, связанных с Flutter и Dart?
- Работа в команде: Как построен процесс взаимодействия внутри команды (митинги, планирование) и с другими отделами (бэкенд, дизайн, продукт)?
Ответ 18+ 🔞
Ёпта, ну ты сразу в дебри полез, да? Ну ладно, раз спрашиваешь по делу — расскажу, как у нас тут всё устроено, без соплей. Садись, слушай.
1. Технический стек и процессы
Стек у нас, блядь, не абы какой, а вылизанный, чтобы голова не болела. Основное — это Riverpod, конечно. Ну его нахуй, этот Bloc с его кучей бойлерплейта, будто на дворе 2019-й год. Riverpod — это сила, чувак. Навигация — go_router, потому что auto_route иногда такой геморрой с кодогенерацией подкидывает, что волосы дыбом. Тесты пишем, конечно, и unit, и widget, и интеграционные. Без этого нихуя не выпустишь.
CI/CD? Да, ёпта, настроено всё, как часы. У нас пайплайны в GitLab. Сборка, прогон тестов, линтинг (очень строгий, зараза), потом сборка .ipa и .aab и загрузка в TestFlight/ Firebase App Distribution. Всё автоматически, ручками нихуя не тыкаем. Выкатываем часто, чтобы не копился техдолг, как говно за сараем.
2. Архитектура и качество кода
Архитектуру держим Feature-first и по мотивам Clean. То есть не слоёный пирог из data/domain/presentation, а папки по фичам: feature_a/, feature_b/. Внутри каждой фичи уже свои модели, репозитории, логика, виджеты. Так проще жить, не надо через весь проект бегать.
Code review — это святое, блядь. Без апрува двух старших ребят — мержить низя. Смотрим на всё: читаемость, соблюдение наших гайдов, отсутствие костылей, покрытие тестами. Особенно гоняем за null safety и за performance. Если где-то в списке на 1000 элементов context.read внутри build — сразу в пизду, переделывай. Удивление пиздец, как некоторые умудряются такое писать.
3. Развитие проекта
Работаем над одним нашим флагманским приложением. В планах — нихуя себе амбициозные штуки: глубокие интеграции с нативными фичами (камера, сенсоры, блютуз), упор на анимации и плавность, чтобы яблочники аж плакали от зависти. Основной вызов? Да тот же вечный — баланс между кроссплатформенностью и нативным фелом. Иногда приходится писать платформенный код, но стараемся минимизировать. И да, производительность на старых андроидах — это отдельная песня, пиздец как надо оптимизировать.
4. Профессиональный рост
Да не душим мы тут людей, блядь. Конференции? Если толковый доклад подготовишь — компания и билет оплатит, и время даст. Внутри проводятся тех-таймы, где кто-то что-то новое из мира Flutter рассказывает. Есть бюджет на курсы, книги. И главное — 20% времени на техностек можно тратить. Хочешь новую либу попробовать или с FFI поиграться — валяй, потом отчитаешься. Главное, чтобы не в пустую.
5. Работа в команде
Тут без истерик. Утром стендап на 15 минут — что сделал, что будешь, какие проблемы. Планируем спринтами по две недели, на планировании с проджектом и продактом иногда спорим до хрипоты, но в итоге приходим к консенсусу. С бэкендерами общаемся по АПИ-контрактам (OpenAPI), с дизайнерами — в Figma, где они, суки, иногда такие прототипы нарисуют, что волнение ебать, как это реализовать. Но в целом — адекватно. Главное правило: говорить, если что-то не так. Молча страдать — это не про нас.
Короче, атмосера рабочая, но без мудаков. Работать надо много, но и мозги не выносят. Есть вопросы ещё?