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

Ответ

У меня 3+ года опыта в разработке кроссплатформенных мобильных приложений на Flutter и Dart. Работал над проектами в e-commerce, fintech и edtech сферах. Основные навыки:

  • Полный цикл разработки: от прототипирования UI/UX и верстки по макетам Figma до публикации в App Store и Google Play.
  • Архитектура и управление состоянием: Глубокое понимание и практический опыт с BloC/Cubit, Provider и Riverpod. Создавал сложные, предсказуемые потоки данных.
  • Работа с бэкендом: Интеграция REST API и GraphQL (используя Dio, retrofit, graphql_flutter), работа с Firebase (Auth, Firestore, Cloud Functions, Cloud Messaging).
  • Нативная интеграция: Опыт написания platform channels для доступа к специфичным возможностям iOS (Swift) и Android (Kotlin).
  • Производительность: Профилирование и оптимизация приложений. Например, в одном из проектов удалось сократить время холодного старта на 40% за счет отложенной инициализации, оптимизации ассетов и кеширования.

Пример реализации типичного Cubit для счетчика:

class CounterCubit extends Cubit<int> {
  CounterCubit() : super(0);

  void increment() => emit(state + 1);
  void decrement() => emit(state - 1);
}

Публиковал приложения с аудиторией более 50k пользователей. Активно слежу за обновлениями экосистемы Flutter, участвую в митапах и изучаю новые подходы, такие как Flutter 3 с поддержкой desktop и Impeller.

Ответ 18+ 🔞

Слушай, история как у всех, только с деталями. Три года, блядь, в этой мобильной вёрстке на Flutter'е просидел — ебать мои старые костыли. Таскал эти коробки с товарами, деньги переводил и даже учить кого-то пытался через телефон. В общем, полный спектр услуг, ёпта.

Что я там только не делал, сука. Начинал с того, что из этой Figma, как мартышлюшка, пиксели выковыривал, а заканчивал тем, что уже в магазины эти готовые приложения закидывал. В App Store, в Google Play — везде наш след, блядь.

С архитектурой вот что было: BloC, Provider, Riverpod — это мои, блядь, лучшие друзья и одновременно головная боль. Чтобы состояние приложения не разъебывалось в хлам, приходилось их юзать. Создаешь такой управляемый хаос, чтобы всё летало и не падало. Овердохуища логики иногда накручивалось, конечно.

С сервером общался как родной. Эти REST'ы, GraphQL'ы — всё родное. Пакеты всякие подключал, Dio там, retrofit. Firebase — это вообще отдельная песня: авторизация, база данных, пуши... Иногда чувствуешь себя, блядь, сантехником, который соединяет трубы, только вместо воды — JSON'ы бегут.

А вот когда нативные штуки нужны были — тут вообще ёперный театр начинался. Пишешь на Dart'е, а тебе надо к камере на iOS или к NFC на Android достучаться. Приходилось, блядь, в Kotlin и Swift лазить, эти platform channels клепать. Чувствуешь себя немного предателем, но что поделать.

Скорость — это святое. Один раз так приложение оптимизировал, что время запуска с 5 секунд до трёх срубил. Картинки сжал, инициализацию растащил, кеши настроил. После этого чувствуешь себя богом, на минуточку.

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

class CounterCubit extends Cubit<int> {
  CounterCubit() : super(0);

  void increment() => emit(state + 1);
  void decrement() => emit(state - 1);
}

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

В общем, сижу, слежу за этим Flutter'ом. Вот уже и на десктопы зачем-то полез, и движок новый рисуют. Главное — не отставать, а то сядешь на старый код, как на мель, и всё, пидарас шерстяной, ты никому не нужен.