We Love Android

Description
Новости из мира Android-разработки
Advertising
We recommend to visit

?Телеграмдаги Энг сўнгги хит тароналар факат бизда

?? - УЗ
?? - РУ
?? - ТР
?? - Ус
?? - АЗ
?? - ТЖ
?? - КЗ
?? - КР

Creator : @kiinyaz

Last updated 11 months, 1 week ago

Бесплатные игры и программы для Android

❗️Сотрудничество (ads), DMCA, пожелания: t.me/EasyAPKBot

?Реклама: https://telega.in/c/EasyAPK

? Чат: @ChatEasyAPK

Все публикуется в ознакомительных целях. Вы скачиваете программы на свой страх и риск

Last updated 8 months, 2 weeks ago

Главное про технологии, интернет-культуру, тренды и нейросети.

По рекламе: @Alivian

Биржа: https://telega.in/c/technomotel

Last updated 2 days, 4 hours ago

2 months, 4 weeks ago

Coroutines Essentials [EN]
https://typealias.com/start/kotlin-coroutines/

Еще одна статья, которая разжевывает прям в мелочах, как именно работают корутины во всех деталях

? Что такое многопоточность
? Как корутины реализуют concurrency
? Внутренняя машинерия
? Реальные примеры

Все весело, задорно, с картинками и игровыми механиками. В общем, если после этого рассказа все еще не понятно что такое корутины, то в следующем посте я скину вакансии из Вкусно и точки

Dave Leeds on Kotlin

Coroutine Essentials

Discover the power of coroutines in Kotlin and learn how to make your applications perform tasks concurrently and in parallel. Join Rusty and his construction crew as they streamline construction projects – and see how you can apply these same techniques…

**Coroutines Essentials [EN]**
3 months, 3 weeks ago

Как решать задачи на литкод

Какое-то монументальное видео, где чувак 4,5 часа выдает базу. Супер нишевый видос, когда автор просто на своем желании сделал офигенную лекцию, уровня которой не найдешь на ютубе. А где-то даже заменит целые курсы по алгосам от яндекса и тп.

Разобрав такие острые вопросы:
?чем отличаются problem solving skills от заучивания алгоритмов
?какие алгоритмы нужны и как начать понимать их пользу
?почему большинство ошибается насчет бесполезности алгоритмов
?работа с когнитивными искажениями и ментальными барьерами
?ментальная гигиена и как не выгореть от неудач

Я тоже уже замечаю как регулярные алго задачи меняют мой мозг. Я начинаю любить шахматы, чаще думаю перед действиями в жизни, не боюсь неудач. Как-нибудь напишу пост об этом.

Пожелайте счастья таким людям, кто просто делает крутой контент для себя. Очень вайбовый видос, который смотришь на одном дыхании.

YouTube

Как решать задачи на Leetcode(+полный гайд, работа, мотивация, депрессия, менталка, крашу кнопку)

Telegram post: https://t.me/koduryem/26 Problem solving skills. Скиллы и гайд для решения задач. Всем привет! В этом видео будет про вообще все, что связано с решением задач - не только leetcode, но и в целом теория решения задач и в других областях, зачем…

4 months, 3 weeks ago
Fleet - официально IDE для KMP …

Fleet - официально IDE для KMP разработки

#kotlinconf #ide #fleet

5 months, 2 weeks ago
[#Предложка](?q=%23%D0%9F%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%BA%D0%B0) [#Libs](?q=%23Libs) [#Compose](?q=%23Compose)

#Предложка #Libs #Compose

Compose Color Preview

Наверняка вы замечали, что при работе с Compose Multiplatform в IntelliJ IDEA нет привычных превью цветов в панели слева. Одним из решений этой проблемы является Compose Color Preview — плагин, автором которого является один из подписчиков канала. Однозначно лайк ?

5 months, 3 weeks ago
Я уже упоминал этот проект как-то …

https://github.com/ShreyashKore/wonderous_compose

Я уже упоминал этот проект как-то раз. Очень красиво и работает на всех возможных платформах! (не надо только пробовать веб версию на мобильных устройствах)
А теперь там появились встроенные карты на всех платформах - стоит изучить ?

6 months, 2 weeks ago

Продолжаю рубрику #насмотренность. Сегодня смотрим на inline-классы. На мой взгляд это одна из самый недооценённых фичей Котлина. Подозреваю, что это потому что потребность в inline-классах неочевидна. Попробую это исправить.

Напомню. Inline-класс это обёртка над другим типом. Он должен иметь строго один параметр в основном конструкторе — значение которое мы оборачиваем. При компиляции вместо нашего класса будет подставлено обёрнутое значение. То есть класс есть, а лишних аллокаций нет. Красота!

Минутка духоты: На самом деле обёрнутое значение не всегда будет инлайниться. Принцип работы похож на (un)boxing примитивов. Но это тема для отдельного поста.

1️⃣ Объявление собственных примитивов

Примитивные типы это то, что должно работать быстро. Мы ожидаем, что примитивы передаются по значению, то есть для них не создаётся объект в куче. Звучит как работа для inline-класса, ведь если в него завернуть примитив, то и перформанс получим как у примитива.

За примером далеко ходить не надо — UInt и другие беззнаковые типы в Kotlin это inline-классы. Но вот где действительно разгулялись с примитивами, так это в Jetpack Compose. Цвета раньше передавались либо как Int в формате 0xAARRGGBB, либо как класс, теперь же Color это inline-class. Получаем все удобства класса и легковесность примитива. Кроме цветов есть ещё Dp, Size, Offset и т.д. (для типов, состоящих их нескольких свойств, например Size, под капотом используется упаковка данных в один примитив). Так что, если вас как и меня мучил вопрос почему нет ничего страшного в том, что мы на каждой рекомпозиции создаём объекты, это потому что на самом деле никаких объектов нет.

2️⃣ Дешевые enum'ы

Помните совет гугла заменять enum'ы на Int с аннотацией @IntDef? Потом Jake Wharton рассказал, что R8 умеет оптимизировать enum'ы и мы выдохнули.
Так вот если всё-таки нужно заменить enum на примитив, inline-классы помогут обойтись без сомнительных конструкций с @IntDef, которые опираются только на стат. анализ.

Примеры этого подхода, опять же, можно посмотреть в Compose: TextAlign , TextOverflow и LineBreak. Да, к сожалению, при таком подходе в when нет проверки, что покрыты все ветви, но на этот компромисс я готов пойти.

3️⃣ Обёртки

Наиболее частое применение inline-классов — создание обёрток над другими типами, чтобы:
? Получить более строгую типизацию. Например, чтобы не ошибиться когда у нас много ID-шников одинакового типа у разных сущностей. Или более явно указать в сигнатуре функции, что "этот параметр должен быть не какой угодно строкой, а именно номером телефона". Это работает благодаря важному свойству inline-классов, что их нельзя сравнивать с другими типами. Попытка такого сравнения выкинет ошибку на этапе компиляции.
? Сузить скоуп для утилитарных функций. Вот есть у нас номер карты пользователя в формате строки. Мы хотим делать с этим номером много всякого: форматировать группами по 4 цифры, вывести маскированный номер карты вида *1234 и т.д. Можно сделать кучу экстеншенов на String, которые будут видны когда нужно и когда не нужно, а можно завести inline-класс и явно определить что с ним можно делать.
? Добавить новые свойства обёртнутой сущности. Добавить @Immutable ко спискам? Запросто.

Напоследок пример где и типизация важна, и новые свойства добавляются. Помните как в onMeasure нам прилетают Int'ы, с которыми нужно работать исключительно через утилитарный класс MeasureSpec? В Compose вместо этого прилетает один класс Constraints и мы сразу, без похода в документацию, понимаем набор действий, который можно совершать с этим классом. Ну не красота ли?

7 months, 2 weeks ago
[PriorityDispatcher](https://github.com/khushpanchal/PriorityDispatcher) - CoroutineDispatcher, который работает на …

PriorityDispatcher - CoroutineDispatcher, который работает на основе приоритетов. Проблема с том, что задать приоритет для корутины не получится в рамках единого Dispatcher. Создаются отдельные с с заданным приоритетом

#coroutines

7 months, 2 weeks ago

? Важная новость этой недели!
ViewModel и вообще весь пакет Lifecycle теперь в Compose Multiplatform.
Их так же переписали на Kotlin, поэтому все зависимости *\-ktx переехали в основные библиотеки

А еще теперь больше возможностей для написание тестов приложениям с поддержкой нескольких экранов

7 months, 3 weeks ago

ИИ для создания дизайнов
https://www.usegalileo.ai/

Не могу не написать про это (хотя про это уже много где говорили). Одним из способов научиться делать аппки является (шок!) делать эти самые аппки. Но часто людям нужен дизайн, чтобы была некая предметная область что накидать. Другая тема свои пет проекты или стартапы. Раньше я советовал для этого UI8.net, но теперь появился игрок покруче

? Это можно попробовать бесплатно
? Оно очень хорошо понимает запрос и генерит дизайн просто пушечно
? Экспорт в фигму!!
? Можно редактировать каждый экран отдельно и даже докидывать, сохраняя контекст
? Можно делать мобильную и десктопную версии

Короче, из всех ИИ это вот точно мастхэв инструмент для любого фронтового разработчика
P.S. За эту рекламу мне никто не заплатил, так что это не реклама, а рекомендация

www.usegalileo.ai

Galileo AI

Galileo AI is a UI generation platform for easy and fast design ideation

**ИИ для создания дизайнов**
9 months, 2 weeks ago
**Хак через десериализацию**

Хак через десериализацию
#android

Давно я не появлялся на канале: со мной всё хорошо, но дела под конец года забрали всё свободное время, а серая погода — забрала всё желание писать. Но… надо не забывать вас, поэтому возвращаюсь!

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

We recommend to visit

?Телеграмдаги Энг сўнгги хит тароналар факат бизда

?? - УЗ
?? - РУ
?? - ТР
?? - Ус
?? - АЗ
?? - ТЖ
?? - КЗ
?? - КР

Creator : @kiinyaz

Last updated 11 months, 1 week ago

Бесплатные игры и программы для Android

❗️Сотрудничество (ads), DMCA, пожелания: t.me/EasyAPKBot

?Реклама: https://telega.in/c/EasyAPK

? Чат: @ChatEasyAPK

Все публикуется в ознакомительных целях. Вы скачиваете программы на свой страх и риск

Last updated 8 months, 2 weeks ago

Главное про технологии, интернет-культуру, тренды и нейросети.

По рекламе: @Alivian

Биржа: https://telega.in/c/technomotel

Last updated 2 days, 4 hours ago