Привет! Это Podlodka Crew, организатор онлайн IT-конференций.
25 марта стартует новый сезон по Android-разработке с темой «Оптимизация UI».
🟢 Попробуем использовать интегральные метрики производительности UI вместе с Павлом Воробкаловым из Яндекс. Наконец-то можно заменить тысячи метрик одной интегральной. Расскажем, как это делать и какие метрики из Web-разработки можно использовать для Android. Обучимся рассчитывать метрики с помощью Mobile Velocity Index.
🟢 Узнаем, как увеличивать производительность приложения с помощью Tracer. Создатель Tracer Кирилл Попов из VK в формате интервью ответит на вопросы об устройстве этого инструмента, объяснит суть и пользу профилирования приложений в проде.
🟢 Обсудим лучшие практики оптимизации Compose вместе с Антоном Хорошкевичем из Авито. Вместе рассмотрим основные аспекты производительности Compose на реальных кейсах. Научимся писать код так, чтобы не нарваться на проблемы.
🟢 Попрактикуемся в использовании дополненной реальности в Android-разработке на примере Додо пиццы. Василий Галузин из Dodo engineering расскажет про возможности и производительность AR.
Билеты уже на сайте:
https://podlodka.io/droidcrew
Поспеши забрать свой, чтобы досконально разобраться в производительности UI приложений.📱
25 марта стартует новый сезон по Android-разработке с темой «Оптимизация UI».
Билеты уже на сайте:
https://podlodka.io/droidcrew
Поспеши забрать свой, чтобы досконально разобраться в производительности UI приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Анонсировали однодневный Google I/O
Final Results
21%
Буду смотреть онлайн
25%
Посмотрю в записи
38%
Посмотрю обзоры потом
46%
Почитаю хайлайты после конференции
Android Studio Preview
Следующим маскотом будет Koala. Уже вышла версия Canary 2, а вместе с ней и alpha02 Android Gradle Plugin
Следующим маскотом будет Koala. Уже вышла версия Canary 2, а вместе с ней и alpha02 Android Gradle Plugin
Опрос показал, что есть интерес к статьям по Jetpack Compose. Разберем структуру
1️⃣
2️⃣ Размещение и отрисовка элементов на экране. В какой последовательности и какой жизненный цикл
3️⃣ Уровень компилятора. Увидим во что превращается весь синтаксический сахар и как под капотом происходит рекомпозиция
Сама статья использует другой цикл статей, более полный и с примерами. Рекомендую почитать и его тоже
Composable
на трех уровнях, погружаясь все глубжеEnter → Recompose → Leave
. C точки зрения разработчика, который использует Compose просто для верстки интерфейса без необходимости погружаться в детали реализацииСама статья использует другой цикл статей, более полный и с примерами. Рекомендую почитать и его тоже
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбираемся в шифровании в Android в трех частях. По моему мнению это максимум того, что может пригодиться в работе на позиции Android разработчика
🦾 База Рассмотрим различные способы шифрования и хеширования данных, работающие в Android
🦾 Применяем базу Узнаем, как создать цепочку шифрования и как это работает под капотом
🦾 Прикладное использование в Android Keystore
В итоге:
Это поможет вам хранить данные пользователей более безопасно. Google активно инвестирует в свои библиотеки для безопасного хранения данных, так что вам не придется писать каждый алгоритм вручную.
🦾 База Рассмотрим различные способы шифрования и хеширования данных, работающие в Android
🦾 Применяем базу Узнаем, как создать цепочку шифрования и как это работает под капотом
🦾 Прикладное использование в Android Keystore
В итоге:
Это поможет вам хранить данные пользователей более безопасно. Google активно инвестирует в свои библиотеки для безопасного хранения данных, так что вам не придется писать каждый алгоритм вручную.
А вот и первые результаты интеграции k2 compiler. Пока что только для автокомплита, рефакторинга и навигации по проекту, но уже значительно быстрее! Впечатляет?
До Android Studio доберется не скоро. Альфа версия будет в IDE 2024.1, а наша с вами Canary недельной давности основана на IDE 2023.2
До Android Studio доберется не скоро. Альфа версия будет в IDE 2024.1, а наша с вами Canary недельной давности основана на IDE 2023.2
Занимаетесь разработкой SDK, а не приложения? А если еще и поддерживаете семейство библиотек (например Firebase, Compose, Kotlin ...), то наличие BOM практически обязательно, чтобы те, кто пользуется ваш продуктом, не сталкивались с проблемами совместимости.
Если кратко:
👉 Все модули стягиваются в SDK в один проект, например, с помощью Git submodule
👉 Создается еще один модуль
👉 Внутрь модуля кладется pom-файл со списком зависимостей и исключениями зависимостей
👉 А дальше релиз зависимостей как мы делали с вами тут
Как это будет выглядеть:
Если кратко:
👉 Все модули стягиваются в SDK в один проект, например, с помощью Git submodule
👉 Создается еще один модуль
*-bom
, который не будет содержать кода👉 Внутрь модуля кладется pom-файл со списком зависимостей и исключениями зависимостей
👉 А дальше релиз зависимостей как мы делали с вами тут
Как это будет выглядеть:
implementation(project.dependencies.platform("com.goodreads.android:bom:1.0.0"))
implementation("com.goodreads.android:library1")
implementation("com.goodreads.android:library2")
Небольшой гайд от котлин команды по выбору кроcсплатформенного фреймворка и про медленно, но растущую их популярность.
Что пробовали из кроcсплатформы?
Final Results
41%
Flutter
10%
React Native
50%
Kotlin Multiplatform
3%
Ionic
2%
.NET MAUI
0%
NativeScript
34%
Только натив, только хардкор
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем разбирать прикладные вещи, которые могут помочь на собеседовании и в работе:
✋ Паттерн декоратор Динамически добавляем функциональности классу, оборачивая его в нужную обертку. Хорошая замена наследованию
✋ Паттерн мост Разделяем класс на две отдельные иерархии — абстракцию и реализацию
В целом, касательно паттернов, особенно если готовитесь к собеседованию, можно подглядеть тут. Несмотря на отсутствие примеров на Kotlin, псевдокод и визуализация находятся на высоком уровне
✋ Паттерн декоратор Динамически добавляем функциональности классу, оборачивая его в нужную обертку. Хорошая замена наследованию
✋ Паттерн мост Разделяем класс на две отдельные иерархии — абстракцию и реализацию
В целом, касательно паттернов, особенно если готовитесь к собеседованию, можно подглядеть тут. Несмотря на отсутствие примеров на Kotlin, псевдокод и визуализация находятся на высоком уровне
И еще 1 паттерн - делегирование. Cайт-учебник наполнен комиксами, объясняющий паттерны человеческим языком. Автор делает упор на паттерн в целом и делегирование свойств класса. Про делегирование свойств объекта неплохо расписано тут
Сам паттерн не сложный, но вы его используете каждый день и хорошо бы знать откуда ноги растут
Сам паттерн не сложный, но вы его используете каждый день и хорошо бы знать откуда ноги растут
Dave Leeds on Kotlin
Introduction to Class Delegation
Use Kotlin’s class delegation feature to forward function calls from one object to another - without all the usual boilerplate!
Отдельные анимации для элементов LazyList уже скоро! Свеже-смерженный PR
Как это будет? Заменили модификатор
Modifier.animateItemPlacement()
на Modifier.animateItem().
Прошлый теперь помечен Deprecated, а новый поддерживает все три типа анимаций: Появление, Удаление, Перемещение. Как искать в исходниках стандартных библиотек писал тут
Please open Telegram to view this post
VIEW IN TELEGRAM