Всем привет! Насколько сейчас jetpack XML-ку заменяет? Просто посмотрел демки

— это прекрасно) Так ли на самом деле? Расскажите ещё пожалуйста про подводные камни

25 ответов

13 просмотров

Из неочевидных подводных камней - нет доступа к чайлдам и их параметрам. В xml их можно было всегда достать по айдишнику. Поэтому некоторые специфичные юзкейсы могут не сработать на компоузе. Например, у меня есть интерактивный туториал, который подсвечивает заданные вьюхи и пишет к ним какое-то пояснение. На компоузе за несколько месяцев не придумал, как это адекватно сделать.

Slava
This

это же следствие из композ-архитектуры, как я понял?

что хорошо с Jetpack Compose, это то что фреймворк совместим с View-системой, поэтому сложности подобные описанной Вячеславом решаются обычной оберткой android.view.View в androidx.compose.ui.viewinterop.AndroidView

Silent829
что хорошо с Jetpack Compose, это то что фреймворк...

Придется весь экран на вью держать в описанном мной сценарии. Не очень композ-вей.

Slava
Придется весь экран на вью держать в описанном мно...

Можно же тогда наоборот постепенно переносить части экрана из XML в компоуз с помощью ComposeView и постепенно прийдете к компоуз-вей)

Nikita Tipun
Можно же тогда наоборот постепенно переносить част...

Перечитайте, пожалуйста, ещё раз изначальное сообщение. Там описывается механика, которая в принципе отсутствует в композе из коробки, а именно - поиск заданных чайлдов в дереве и получение их параметров. Да, есть доступ к нодам, но там такие костыли придется воротить, что писать на композе вообще перехочется :)

Silent829
один экран это много?)

Вы уходите в демагогию. Человек задал вопрос о недостатках технологии, я привёл пример, когда на композе в принципе не реализуемо какое-то поведение. Да, это редкий сценарий, но конкретно в моём случае он аффектил три экрана: главный и два на самом популярном флоу в приложении. Но всё же отвечу: даже один экран может быть проблемой, потому что вам придется поддерживать две дизайн-системы в приложении. Т.е. каждая задача от дизайнеров будет в два раза сложнее, хоть доработка, хоть новый компонент.

Slava
Вы уходите в демагогию. Человек задал вопрос о нед...

эм, с каких пор у нас образуется две дизайн-системы?)

Silent829
эм, с каких пор у нас образуется две дизайн-систем...

Одна для композа, вторая - для обычных вью.

Slava
Перечитайте, пожалуйста, ещё раз изначальное сообщ...

А зачем искать чилдов - в идеологии композе - передавай в функции стайте для отрисовки нужного состояния.

Slava
Одна для композа, вторая - для обычных вью.

дизайнер формирует дизайн систему, это уже дело разработчика скармливать эту дизайн систему по-старому или по-новому. Композ позволяет скормить дизайн-систему по-старому из styles.xml

Макс
Да не все так просто.

какие сложности? забыл может

Макс
А зачем искать чилдов - в идеологии композе - пере...

Чтобы найти их расположение на экране, померить и уже на основе этого отрисовать оверлей. Речь о примерно таком функционале:

Silent829
дизайнер формирует дизайн систему, это уже дело ра...

Не все компоненты прописаны только в xml. Иногда вокруг материала пишутся врапперы. Условно есть инпут, а мы делаем компонент с двумя инпутами на строке, да ещё и иконочкой сбоку. И таких кастомных компонентов может быть несколько десятков.

Slava
Не все компоненты прописаны только в xml. Иногда в...

ну так это же дело разработчика сделать два таких компонента. Хотя в твоем случае это изи на композе сделать

Slava
Чтобы найти их расположение на экране, померить и ...

так ты передаешь чтото типа Box{ if(viewstate.isShowSquareOverlay){ Overlay() } Square() }

Silent829
ну так это же дело разработчика сделать два таких ...

Извини, мне надоело тебе доказывать. У тебя есть точка зрения, и ты упорно её давишь, несмотря на приведённые аргументы.

Slava
Придется весь экран на вью держать в описанном мно...

Не помню, чтобы кто-то из гугл говорил, что композ-вей это иметь 100% кодовую базу UI на Jetpack Compose. Интероп есть. Гугл говорит используй столько, сколько хочешь.

Slava
Чтобы найти их расположение на экране, померить и ...

добавил простенький подобный туториал экран в свою демо аппку как пример как можно подобное делать на композе https://github.com/andkulikov/compose-photoapp/commit/0ce26695e7238185fb202f57ef323b50d4e5b96d

Похожие вопросы

Обсуждают сегодня

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
Ну, так - шо, грамодяне-эрленгяне? Все - готовы подписаться под словами "гуру" на счёт трудности применения POSIX threads и про, конкретно, мьютексы, что "... недопоставишь м...
Wlad
21
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
привет, как сбилдить свифт прогу статически? делаю -Xswiftc -static-executable - получаю такую ошибку: /lib/aarch64-linux-gnu/libc.a(pthread_join_common.o)(.note.stapsdt+0x14...
🦊 Fox 🌸 🌸
6
Карта сайта