Тёмный

Jetpack Compose. Основы. State [Ru, Kotlin\Android] 

Mobile Developer
Подписаться 52 тыс.
Просмотров 27 тыс.
50% 1

Опубликовано:

 

15 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 89   
@MobileDeveloper
@MobileDeveloper 3 года назад
Ссылки на гитхаб по заданию кидаем в комментарии. Ссылка на само задание - docs.google.com/document/d/1XiNfo4pGc5VT1e-88bU7JB23IxE3QAmVOovgFT7FSwA/edit?usp=sharing
@ВладимирКудинов-т2т
Когда Андроид запускали, нам рассказывали как это классно разделять код и UI, а через 10 лет говорят - смотрите как классно - и код и UI в одном месте...
@MobileDeveloper
@MobileDeveloper 2 года назад
Слышал много раз такое, но я вот допустим всегда бомбил с этого xml потому что как по мне это всегда нелогично и меня дико бесило, что кодом это так сложно делается, поэтому я юзал xml
@paulsoja2732
@paulsoja2732 2 года назад
еще лет 10 и всё опять будем пилить в одной активити - и верстку и запросы на бек...
@immortal_lnight
@immortal_lnight Год назад
@@paulsoja2732 какая активити... ФУНКЦИИ!
@AndrewBlack-th3gk
@AndrewBlack-th3gk 3 года назад
Как же ты хорош! Счастья, здоровья, много лайков и подписчиков!
@MobileDeveloper
@MobileDeveloper 3 года назад
Спасибо большое!)
@avdim88
@avdim88 3 года назад
Спасибо за материал! С предвкушением жду Июль, когда Compose выйдет в Release!
@MobileDeveloper
@MobileDeveloper 3 года назад
Сам жду :)
@sovrinfo
@sovrinfo 2 года назад
Спасибо за видео.Коммент в поддержку!
@SunlighT_90
@SunlighT_90 2 года назад
Годнота! Я так понимаю, что Jetpack Compose - это как реакт, только для котлин?)))
@MobileDeveloper
@MobileDeveloper 2 года назад
Тип того да
@rerere1569
@rerere1569 2 года назад
Спасибо за видео! Как веб-разработчику, очень напомнило реакт, даже захотелось котлин изучить, посмотреть как оно там у вас)
@9etsamoe431
@9etsamoe431 3 года назад
Спасибо, Алексей!
@MobileDeveloper
@MobileDeveloper 3 года назад
🤌🤌
@АнтонКулибякин
@АнтонКулибякин 3 года назад
Ну наконец то дождались !
@KabukiWarrior369
@KabukiWarrior369 2 года назад
Очень круто, спасибо за объяснения)
@nikolaimitrokhin8560
@nikolaimitrokhin8560 2 года назад
Круто, спасибо!
@asp424
@asp424 3 года назад
Давно хотел менять текст лайвдатой. Но боялся, что засмеют. Теперь это легально)
@MobileDeveloper
@MobileDeveloper 3 года назад
И не только лайвдатой ))
@SergKoshelev
@SergKoshelev 3 года назад
Лучше чай в кофе)
@MobileDeveloper
@MobileDeveloper 3 года назад
Окей))
@dmytromarchuk3023
@dmytromarchuk3023 3 года назад
супер обнял
@MobileDeveloper
@MobileDeveloper 3 года назад
Спасибо ))
@maxsimpleapps
@maxsimpleapps 3 года назад
Спасибо!
@MobileDeveloper
@MobileDeveloper 3 года назад
Спасибо огромное за поддержку!
@RomanBass-v1h
@RomanBass-v1h 2 года назад
Спасибо большое. Было очень полезно посмотреть. Поолучил ответ на интересующий вопрос и появился новый вопрос. На 24:40 Вы говорите, что можно создать ViewModel прямо в композабл-функции и эта модель не будет пересоздаваться при рекомпоузе. А у меня так не работает. Пришлось вынести создание модели выше и передать её в композабл-функцию. В чём может быть косяк?
@АсланКартоев-ф6д
@АсланКартоев-ф6д 3 года назад
Автор, стоит ли изучать разработку под Android сразу с котлина? Или ж обязательно начать нужно с java?
@MobileDeveloper
@MobileDeveloper 3 года назад
Скоро выйдет видео на эту тему, если вкратце, то Kotlin
@luckytima2315
@luckytima2315 3 года назад
@@MobileDeveloper так в вакансиях везде пишут,что надо java ,дурацкий легаси (((
@Trecoolerok
@Trecoolerok 3 года назад
@@luckytima2315 имхо джаву знать нужно не только потому, что легаси, а потому что котлин на джвм работает. Ну и исходники андроида, в конце концов, вы даже не посмотрите, если что не так.
@hedinnoviybog9522
@hedinnoviybog9522 3 года назад
Пушка!))
@MobileDeveloper
@MobileDeveloper 3 года назад
Спасибо! )
@inquisitor4894
@inquisitor4894 Год назад
Интересная штука. Когда делаю пример с LoveData, то при первом клике значение меняется, а при втором, оно скидывается к начальному
@inquisitor4894
@inquisitor4894 Год назад
Я не что и как тут работает, но знаю одно. В параметрах функции MainScreen должно быть viewModel: MainViewModel = viewModel(), а не viewModel: MainViewModel = MainViewModel(). Если сделать присвоение MainViewModel, а не viewModel(), то работать не будет. У меня по крайней мере так.
@vladislavsyrgashev6982
@vladislavsyrgashev6982 3 года назад
Хорошая тема. Спасибо за ролики. Вопрос: является ли Compose самодостаточным API? То есть можно ли с его помощью делать полностью готовое приложение или оно идет как дополнение?
@MobileDeveloper
@MobileDeveloper 3 года назад
Да, это полноценное апи. На нем можно сделать все тоже самое, что и в стандартном xml. Плюс я полагаю, что xml станет deprecated со времени
@vladislavsyrgashev6982
@vladislavsyrgashev6982 3 года назад
@@MobileDeveloper Спасибо
@skotch_izolentovich
@skotch_izolentovich 3 года назад
Привет, а есть ли какой-нибудь дедлайн для работы?
@MobileDeveloper
@MobileDeveloper 3 года назад
Нет, как наберется какое-то вменяемое количество работ (хотя бы штук 5-6) устрою разбор
@skotch_izolentovich
@skotch_izolentovich 3 года назад
​@@MobileDeveloper Спасибо за ответ.
@homie2417
@homie2417 3 года назад
Привет. Дай, пожалуйста, ссылку на mview архитектуру, если я правильно расслышал?
@MobileDeveloper
@MobileDeveloper 3 года назад
MVI? Можно посмотреть пример тут - github.com/AlexGladkov/JetpackComposeDemo Но это не единственный пример реализации
@stanislavbatura771
@stanislavbatura771 3 года назад
Спасибо все очень подробно. Появился только вопрос, когда ты лез в исходники функций, что там за спец символы такие типа неравно, стрелок, длинных равно? Это котлин вообще? Я как-то такого не встречал никогда
@MobileDeveloper
@MobileDeveloper 3 года назад
Да это Котлин ) стрелки это лямбды, все вот эти длинные равно и не равно это сравнение по ссылке и значению, если мне память не изменяет )
@awkwardquestion8643
@awkwardquestion8643 3 года назад
Пройди kotlin koans, офигеешь от того что можно на чистом Котлин писать
@stanislavbatura771
@stanislavbatura771 3 года назад
@@awkwardquestion8643 о, спасибо посмотрю
@thoughtfulduck7433
@thoughtfulduck7433 3 года назад
Отличное видео!. Интересно было бы посмотреть материал по android ui/unit тестированию. Было такое на канале или может есть в планах?
@MobileDeveloper
@MobileDeveloper 3 года назад
Пока нет, готовлю сценарий
@sergeyo.1512
@sergeyo.1512 3 года назад
Из примеров гугла, можно увидеть что просто встать дебагером на начало функции это не вариант , видимо как и с корутинами функция разбивается на стейты Column { // this will recompose when [header] changes, but not when [names] changes Text(header, style = MaterialTheme.typography.h5) Divider() // LazyColumn is the Compose version of a RecyclerView. // The lambda passed to items() is similar to a RecyclerView.ViewHolder. LazyColumn { items(names) { name -> // When an item's [name] updates, the adapter for that item // will recompose. This will not recompose when [header] changes NamePickerItem(name, onNameClicked) } } } }
@MobileDeveloper
@MobileDeveloper 3 года назад
Похоже на то, да. Ну со всей этой штукой и бесконечными функциями высшего порядка я стал чаще дебажить через логи ) так проще )
@sergeyo.1512
@sergeyo.1512 3 года назад
@@MobileDeveloper Я как то тоже озаботился. Хотелось чего то автоматического, что бы с одной стороны не писать вручную, с другой не засорять код классов логированием. Надежда была на написание плагина на poet, но в процессе поисков я вышел на АОП. С хорошими такими костылями удалось aspectJ прикрутить к котлину, причем в формате flavor. Теперь для логирования всех обращений к методам и свойствам класса достаточно пометить класс аннотацией @Log, причем для релиза аннатацию убирать не надо, просто меняем flavor, и плагин отключается. Это просто какой то совершенно другой левел.
@MobileDeveloper
@MobileDeveloper 3 года назад
@@sergeyo.1512 Не хотите об этом рассказать?) Готов предоставить площадку. Если есть желание напишите, пожалуйста, мне в Telegram - @neuradev
@sergeyo.1512
@sergeyo.1512 3 года назад
А что там за новый паттерн архитектуры?
@MobileDeveloper
@MobileDeveloper 3 года назад
Ну он не новый в абсолютном значении . Насколько я помню, я имел ввиду, что всякие TEA, MVU не очень распространены были в андроиде
@bolnoi8
@bolnoi8 3 года назад
А что с внедрением зависимостей во вью модель?
@MobileDeveloper
@MobileDeveloper 3 года назад
Про хилт будет отдельное видео.
@maksonic_official
@maksonic_official 3 года назад
Ох ох ох( сколько теперь нового учить...
@MobileDeveloper
@MobileDeveloper 3 года назад
Бедные Джуны как я люблю повторять
@paulsoja2732
@paulsoja2732 3 года назад
начинаю въезжать в логику компоуза. Посмотрим на сколько оно будет востребовано. Может будет как со swiftUI, а может и зайдет. На данный момент смущают превью экранов. Показывает криво, а если в компоуз функцию передаются параметры, то вообще студия показывает ворнинг, что для такого не стоит использовать превью. Ну и пока всё равно всё путается с кодом и после xml это очень неудобно.
@MobileDeveloper
@MobileDeveloper 3 года назад
Превью пока очень кривые это так и не пофиксили ) Ну то, что оно путается с кодом это задумка такая )
@alexandershangin1191
@alexandershangin1191 2 года назад
А как со SwiftUI ?
@paulsoja2732
@paulsoja2732 2 года назад
@@alexandershangin1191 SwiftUi в проде уже 2 или 3 года, а особо никто и не использует.
@alexandershangin1191
@alexandershangin1191 2 года назад
@@paulsoja2732 Так его не используют из-за ios13, ну и определенной баговости ))) А так вроде все хотят его использовать)
@paulsoja2732
@paulsoja2732 2 года назад
@@alexandershangin1191 среди тех ios разработчиков, которых я знаю, никто не хочет использовать.
@АлександрАндреевич-я5б
@АлександрАндреевич-я5б 11 месяцев назад
не очень понравился выбор темы для ввода в предмет, можно было бы начать с каких-то более общих вещей
@asp424
@asp424 3 года назад
1:00 А так разве можно находить viewModel?
@MobileDeveloper
@MobileDeveloper 3 года назад
Вообще нет, но видео не об этом )
@asp424
@asp424 3 года назад
@@MobileDeveloper блин, начал писать новое приложение на compose. Как же это круто! Так просто всё, удобно!
@sanek1985t
@sanek1985t 2 года назад
@@asp424 это hello world приложение?
@asp424
@asp424 2 года назад
@@sanek1985t нет
@idnull8434
@idnull8434 3 года назад
А у меня импорт remember не работает приходится менять на * и всё работает.
@MobileDeveloper
@MobileDeveloper 3 года назад
Да сорри забыл указать импорты. Там можно ручками ещё прописать ну либо звёздочку сделать. Надеюсь пофиксят в ближайших релизах
@RasM24
@RasM24 3 года назад
Есть ещё решение) import androidx.compose.runtime.setValue import androidx.compose.runtime.getValue Я не разбирался зачем эти импорты нужны в работе, возможно с делегатами конфликт, или ещё что. Но чуть в том, что они автоматически не импортируются, и поэтому не может собраться. Собственно через * поэтому и запускается)
@MobileDeveloper
@MobileDeveloper 3 года назад
Да да вот я про них ) спасибо )
@СергейПанов-з3ц
@СергейПанов-з3ц 3 года назад
5:34 Что по ссылке на ролик про то как устроен Composer?
@MobileDeveloper
@MobileDeveloper 3 года назад
Забыл. Добавил в описание ссылку
@Qwazar3559
@Qwazar3559 3 года назад
Чёт как-то всё позапутано в этом видео...
@MobileDeveloper
@MobileDeveloper 3 года назад
🤷‍♂️🤷‍♂️
@RasM24
@RasM24 3 года назад
На самом деле не запутано, а все понятно) Проблема в том, что ломается в принципе мышление, когда начинаешь писать на compose. Нельзя compose изучать итеративно, как это было с любым другим инструментом или подходом. Даже MVI можно изучить итеративно. С Jetpack Compose сначала надо забыть ВСЕ что ты знал об верстке через xml. Вообще все. А потом прям с 0 изучаешь, как строить экраны с новым подходом. Кстати чувствуешь себя в этот момент как джун) Непонятно что происходит, непонятно как надо писать... А иногда непонятно - а почему написанное тобой вообще работает.
@RasM24
@RasM24 3 года назад
@@mishaeliseev они похожи только направлением :) И названия похожие некоторые)
@sanek1985t
@sanek1985t 2 года назад
@@RasM24 почему забыть? Его можно встраивать в xml . Зачем? Ну, если проект большой и сразу ее перевести все
@itjewels3436
@itjewels3436 3 года назад
почему так мало подписчиков???
@MobileDeveloper
@MobileDeveloper 3 года назад
Сам удивляюсь ) наверное мало людей рекомендуют мой канал ))
@d.mertsalov
@d.mertsalov 3 года назад
Спасибо!
Далее
Jetpack Compose. Основы. UI [Ru, Kotlin\Android]
41:00
РЫБКА С ПИВОМ
00:39
Просмотров 626 тыс.
Евгений Мандриков - Decomposing Compose
59:26
РЫБКА С ПИВОМ
00:39
Просмотров 626 тыс.