Какой опыт с Jetpack Compose

Ответ

Jetpack Compose — современный декларативный UI-фреймворк для Android. Работал с ним в нескольких проектах, включая миграцию с XML.

Ключевые моменты:

  • Использовал Compose для создания сложных экранов с LazyColumn, кастомными модификаторами и анимациями.
  • Интегрировал ViewModel и Flow для управления состоянием (remember, mutableStateOf).
  • Работал с Navigation Compose для навигации и передачи параметров.
  • Оптимизировал производительность через derivedStateOf и избегание рекомпозиций.

Пример:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello, $name!",
        modifier = Modifier.padding(16.dp)
    )
}

Также знаком с тестированием (ComposeTestRule) и темой (MaterialTheme).

Ответ 18+ 🔞

Ну, слушай, про этот ваш Jetpack Compose. Я с ним, блядь, на реальных проектах работал, не просто в туториалах тыкал. Пришлось даже старый XML, этот ёперный театр, на него мигрировать — вот где веселуха была, ядрёна вошь!

Что по делу:

  • На нём делал такие экраны, что мама не горюй. Эти LazyColumn с кучей состояний, кастомные модификаторы под каждый чих, анимации всякие — в общем, овердохуища логики. Не то что в старом добром ListView, где всё просто, как хуй с горы.
  • Состояние через ViewModel и Flow крутил. Знаешь, эта вся магия с remember и mutableStateOf — сначала терпения ноль ебать, пока врубишься, как оно там рекомпозиции триггерит. Но когда понял — красота.
  • Навигация через Navigation Compose. Удобно, чё, но иногда так приплывёшь с передачей аргументов, что сам от себя охуеваешь. Вроде всё по документации, а тебе в итоге чих-пых тебя в сраку — стейт теряется.
  • С производительностью, конечно, танцы с бубном. Пока не научишься derivedStateOf юзать и рекомпозиции лишние резать, приложение может бздеть как не в себя. Но потом летает.

Вот, смотри, простой пример кода, чтоб не быть голословным:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello, $name!",
        modifier = Modifier.padding(16.dp)
    )
}

Выглядит-то просто, да? Но эта простота, она обманчивая, чувак. За ней весь этот декларативный подход, который сначала мозг ломает. Ещё и тестирование (ComposeTestRule) подвезли, и тему (MaterialTheme) — в общем, инструмент мощный, но чтобы не выстрелить себе в ногу, надо головой думать, э бошка. А то будет вам не хиросима, а настоящий нигерсраки в коде.