Сравнение перфоманса разных бэкендов Kotlin
Таблица с оценкой перфоманса разных способов компиляции Kotlin-кода и размера получающихся артефактов. Важно помнить, что любые бенчмарки показывают только часть картины, и к ним нужно относиться изначально довольно скептично. Как минимум, оценка производительности на числодробилке будет значительно отличаться от работы с Android проектами.
Таблица с оценкой перфоманса разных способов компиляции Kotlin-кода и размера получающихся артефактов. Важно помнить, что любые бенчмарки показывают только часть картины, и к ним нужно относиться изначально довольно скептично. Как минимум, оценка производительности на числодробилке будет значительно отличаться от работы с Android проектами.
This media is not supported in your browser
VIEW IN TELEGRAM
Тултипы в Compose с помощью библиотеки Balloon
- Balloon – библиотека для создания анимированных интерфейсных подсказок, которые очень хорошо кастомизируются. Библиотека полностью совместима с Compose.
- В статье приводится пример ее использования для создания простого тултипа.
- Balloon – библиотека для создания анимированных интерфейсных подсказок, которые очень хорошо кастомизируются. Библиотека полностью совместима с Compose.
- В статье приводится пример ее использования для создания простого тултипа.
Работа с фокусом в Compose
- Compose дает несколько API для управления фокусом текстовых полей: FocusManager, FocusRequester и различные модификаторы.
- В статье разбирается, как с помощью этих API можно получить текущий фокус, переместить его на другое поле, определив их порядок, и очистить его.
- Compose дает несколько API для управления фокусом текстовых полей: FocusManager, FocusRequester и различные модификаторы.
- В статье разбирается, как с помощью этих API можно получить текущий фокус, переместить его на другое поле, определив их порядок, и очистить его.
Composables – All componen
How to handle focus in Jetpack Compose with examples
This guide will show you how to handle text focus in Jetpack Compose. There are different APIs responsible for different functionalities around text focus: the FocusRequester, the FocusManager and the various focus related Modifiers. We'll cover all of them…
Генеративное искусство на Compose Desktop
18 января пройдет вебинар, на котором Антон Архипов из команды Kotlin покажет, как можно использовать Compose Desktop для отрисовки сложных геометрических фигур и генеративного арта. Вполне себе идея для вашего пет-проекта!
18 января пройдет вебинар, на котором Антон Архипов из команды Kotlin покажет, как можно использовать Compose Desktop для отрисовки сложных геометрических фигур и генеративного арта. Вполне себе идея для вашего пет-проекта!
Как написать свой сериализатор для kotlinx.serialization
Ядро kotlinx.serialization поддерживает не так много форматов – JSON, Protobuf и несколько других. Поддержкой сериализации других форматов в основном занимается коммьюнити. Автор библиотеки KToml рассказывает о деталях устройства и работы kotlinx.serialization и накидывает кучу советов по тому, как писать свои собственные сериализаторы.
Слайды доклада
Ядро kotlinx.serialization поддерживает не так много форматов – JSON, Protobuf и несколько других. Поддержкой сериализации других форматов в основном занимается коммьюнити. Автор библиотеки KToml рассказывает о деталях устройства и работы kotlinx.serialization и накидывает кучу советов по тому, как писать свои собственные сериализаторы.
Слайды доклада
Сколько можно заработать на книге про Android
Автор блога Effective Android, статьями из которого я регулярно делюсь, написал книгу про внутреннее устройство Jetpack Compose. С этого момента прошло уже полтора года, и он поделился своим опытом авторства.
Писать книгу про внутреннее устройство фреймворка довольно тяжело, потому что оно может меняться очень часто, и книгу вместе с ним придется обновлять. Для Compose, который только-только зарелизился, это особенно актуально.
Продажи принесли ему $32k за все время, но это до вычета налогов. Кроме этого, он еще смог привлечь спонсоров, которые принесли дополнительные $6.5k.
Автор блога Effective Android, статьями из которого я регулярно делюсь, написал книгу про внутреннее устройство Jetpack Compose. С этого момента прошло уже полтора года, и он поделился своим опытом авторства.
Писать книгу про внутреннее устройство фреймворка довольно тяжело, потому что оно может меняться очень часто, и книгу вместе с ним придется обновлять. Для Compose, который только-только зарелизился, это особенно актуально.
Продажи принесли ему $32k за все время, но это до вычета налогов. Кроме этого, он еще смог привлечь спонсоров, которые принесли дополнительные $6.5k.
Effective Android
Writing a technical book ✍️ 📖
My complete experience, learnings and earnings included 💸
Планы по улучшению поддержки Kotlin в IDE
Один из основных фокусов команды Kotlin на ближайшие полгода – переписывание IDE поддержки языка на новый К2 компилятор. Этот проект в первую очередь направлен на то, чтобы улучшить стабильность анализа кода и скорость навигации, автокомплишна и подсветки кода и в IDEA, и в Android Studio.
Первая публичная версия нового плагина для IDEA выйдет в июле 2023. Важный момент – первый релиз будет Lightweight версией, которая включает в себя только самые базовые IDE фичи:
🛠️Полноценная подсветка кода и Find Usages
🛠️Базовые автокомплишн и дебаггер
🛠️Основные рефакторинги и code insight фичи (go to declaration, parameter info и т.д.)
🛠️Самые частоиспользуемые инспекции
🛠️Поддержка мультиплатформы и gradle.kts
Старый и новый плагин какле-то время будут жить вместе, так что вы сможете выбирать, что вам важнее – полный список текущих IDE фичей или быстрый перфоманс.
Один из основных фокусов команды Kotlin на ближайшие полгода – переписывание IDE поддержки языка на новый К2 компилятор. Этот проект в первую очередь направлен на то, чтобы улучшить стабильность анализа кода и скорость навигации, автокомплишна и подсветки кода и в IDEA, и в Android Studio.
Первая публичная версия нового плагина для IDEA выйдет в июле 2023. Важный момент – первый релиз будет Lightweight версией, которая включает в себя только самые базовые IDE фичи:
🛠️Полноценная подсветка кода и Find Usages
🛠️Базовые автокомплишн и дебаггер
🛠️Основные рефакторинги и code insight фичи (go to declaration, parameter info и т.д.)
🛠️Самые частоиспользуемые инспекции
🛠️Поддержка мультиплатформы и gradle.kts
Старый и новый плагин какле-то время будут жить вместе, так что вы сможете выбирать, что вам важнее – полный список текущих IDE фичей или быстрый перфоманс.
YouTrack
First public release of the K2-based IntelliJ plugin : KTIJ-23988
Summary [The creation of the new Kotlin K2 compiler](https://youtrack.jetbrains.com/issue/KT-52604/Release-K2-Beta) is also aimed at improving the IDE experience. Performance and quality are the main focuses of the new product. By Q4'23, we are going to release…
Плагин с миникартой для IntelliJ
Во многих редакторах кода есть топовая фича – миникарта открытого сейчас файла. Она упрощает навигацию для тех, кому проще это делать визуально, а не по сигнатурам. В платформу IntelliJ фичу пока не втаскивают, поэтому вместо этого можете попробовать плагин CodeGlance.
Во многих редакторах кода есть топовая фича – миникарта открытого сейчас файла. Она упрощает навигацию для тех, кому проще это делать визуально, а не по сигнатурам. В платформу IntelliJ фичу пока не втаскивают, поэтому вместо этого можете попробовать плагин CodeGlance.
Вводное видео в CameraX
CameraX – новая Jetpack библиотека, которая берет на себя все взаимодействие с камерой и обработку эдж-кейсов, связанных с поведением разных девайсов.
Во вводном пятиминутном видео рассказывается про основные концепции библиотеки и сценарии, в которых она вам может пригодиться.
CameraX – новая Jetpack библиотека, которая берет на себя все взаимодействие с камерой и обработку эдж-кейсов, связанных с поведением разных девайсов.
Во вводном пятиминутном видео рассказывается про основные концепции библиотеки и сценарии, в которых она вам может пригодиться.
Проект iosched заархивирован
Ушла эпоха – iosched, приложение с расписанием Google I/O, которое работало как пример использования архитектурных рекомендаций Google, официально задепрекейчено и заархивировано. Вместо него будет обновляться Now in Android.
Ушла эпоха – iosched, приложение с расписанием Google I/O, которое работало как пример использования архитектурных рекомендаций Google, официально задепрекейчено и заархивировано. Вместо него будет обновляться Now in Android.
Релиз Android Studio Electric Eel
Вышла новая стабильная Android Studio поверх IntelliJ Platform 2022.1.1. Самые заметные изменения:
🎨Дизайн
- Compose Preview обновляются автоматически
- Возможность задать определенный девайс для Compose Preview
- Подсвечивание рекомпозиций в Layout Inspector
- Линтинг для XML лэйаутов
- Единая Problems Panel с репортингом о всех проблемах из разных тулов
🧱Сборка
- Улучшена производительность Gradle Sync, аж на 60%
- Build Analyzer показывает, как скачивание зависимостей влияет на билд
👀Тулинг
- Полностью обновленный Logcat
- Новое App Quality Insights окно, которое подтягивает всю информацию из Crashlytics
- Возможность создавать эмуляторы десктопа
- Мирроринг физического девайса прямо в Android Studio, в то же окно, где показывается эмулятор
Вышла новая стабильная Android Studio поверх IntelliJ Platform 2022.1.1. Самые заметные изменения:
🎨Дизайн
- Compose Preview обновляются автоматически
- Возможность задать определенный девайс для Compose Preview
- Подсвечивание рекомпозиций в Layout Inspector
- Линтинг для XML лэйаутов
- Единая Problems Panel с репортингом о всех проблемах из разных тулов
🧱Сборка
- Улучшена производительность Gradle Sync, аж на 60%
- Build Analyzer показывает, как скачивание зависимостей влияет на билд
👀Тулинг
- Полностью обновленный Logcat
- Новое App Quality Insights окно, которое подтягивает всю информацию из Crashlytics
- Возможность создавать эмуляторы десктопа
- Мирроринг физического девайса прямо в Android Studio, в то же окно, где показывается эмулятор
Как новая Android Studio ускорила импорт для Square
Одна из фичей, которые появились в Android Studio Electric Eel – parallel project import. Она особенно полезна для больших кодовых баз, состоящих из большого количества Gradle subprojects. Для Square ее использование ускорило импорт проекта на 60% – с 9 до 3.5 минут.
Одна из фичей, которые появились в Android Studio Electric Eel – parallel project import. Она особенно полезна для больших кодовых баз, состоящих из большого количества Gradle subprojects. Для Square ее использование ускорило импорт проекта на 60% – с 9 до 3.5 минут.
Coroutines и Project Loom
Инструкция по тому, как написать свой Dispatcher, который будет работать с Project Loom тредами, и с помощью которого можно писать неблокирующий код, и сравнение его производительности с
Инструкция по тому, как написать свой Dispatcher, который будет работать с Project Loom тредами, и с помощью которого можно писать неблокирующий код, и сравнение его производительности с
Dispatchers.IO
.Как сделать анимацию с помощью MotionLayout (туториал по ссылке)
MotionLayout – это контейнер, который позволяет просто создавать сложные анимации, для чего требуется лишь описать сцену.
Android-разработчик Павел Беловол рассказывает в своей статье на ХабрХабр, про свой опыт работы с MotionLayout на примере продакшн-задачи в онлайн-кинотеатре KION. Из статьи вы узнаете, где нужно использовать MotionLayout, а где лучше обойтись без него и писать код анимации самостоятельно.
Читать здесь.
MotionLayout – это контейнер, который позволяет просто создавать сложные анимации, для чего требуется лишь описать сцену.
Android-разработчик Павел Беловол рассказывает в своей статье на ХабрХабр, про свой опыт работы с MotionLayout на примере продакшн-задачи в онлайн-кинотеатре KION. Из статьи вы узнаете, где нужно использовать MotionLayout, а где лучше обойтись без него и писать код анимации самостоятельно.
Читать здесь.
Хабр
Как сделать анимацию с помощью MotionLayout
Привет, Хабр! Меня зовут Павел Беловол, я Android-разработчик на проекте онлайн-кинотеатра KION в МТС Digital . Это новая часть сериала о внедрении фичи Autoplay в KION, в которой я расскажу про свой...
Почему yaml – плохой формат
Скорее всего, до вас долетали обрывки споров про то, насколько хорошая идея использовать yaml для различных конфигов.
Все сводится к тому, что спецификация Yaml на порядок сложнее, чем JSON. Например, спека предусматривает 63 разных способа объявления multiline строк. Кроме того, она еще и значительно меняется от версии к версии.
Вот несколько примеров непредсказуемого поведения YAML конфигов:
*️⃣`- 22:22` в зависимости от версии парсера может быть прочитана как строка, а может – как число 1342.
*️⃣Некоторые символы считываются как строки, а некоторые оказываются зарезервированы под что-то еще. Например,
*️⃣Если где-то в конфиге встретится строчка
*️⃣Не стоит использовать
Скорее всего, до вас долетали обрывки споров про то, насколько хорошая идея использовать yaml для различных конфигов.
Все сводится к тому, что спецификация Yaml на порядок сложнее, чем JSON. Например, спека предусматривает 63 разных способа объявления multiline строк. Кроме того, она еще и значительно меняется от версии к версии.
Вот несколько примеров непредсказуемого поведения YAML конфигов:
*️⃣`- 22:22` в зависимости от версии парсера может быть прочитана как строка, а может – как число 1342.
*️⃣Некоторые символы считываются как строки, а некоторые оказываются зарезервированы под что-то еще. Например,
- *.png
– невалидный сниппет, так как * зарезервирована. А - !.git
будет считан, как пустая строка.*️⃣Если где-то в конфиге встретится строчка
- no,
она будет интерпретирована как false, а не как строка. У этого поведения есть даже свое имя – Norway problem, так как региональный код Норвегии, который часто можно встретить в таких конфигах, тоже no. Ах да, так ведет себя только самая новая версия yaml, что добавляет веселья.*️⃣Не стоит использовать
~,
так как это алиас для null.Ruudvanasseldonk
The yaml document from hell
As a data format, yaml is extremely complicated and it has many footguns. In this post I explain some of those pitfalls by means of an example, and I suggest a few simpler and safer yaml alternatives.
Уроки из реализации swipe to dismiss на Compose
Swipe to dismiss – довольно стандартная фича, реализация которой не должна занимать много времени. Тем не менее, автор статьи потратил три дня на дебаг нескольких неочевидных моментов, которыми и делится в статье.
Swipe to dismiss – довольно стандартная фича, реализация которой не должна занимать много времени. Тем не менее, автор статьи потратил три дня на дебаг нескольких неочевидных моментов, которыми и делится в статье.
Compose BOM для альфа версий компонентов
Недавно Google начал публиковать Gradle BOM для всех Compose зависимостей. Его использование освобождает вас от необходимости менеджерить все версии вручную.
Если вы хотите использовать в проекте не стабильные версии зависимостей, а альфа, первым получая все экспериментальные фичи, то можете переключиться на неофициальный автообновляемый BOM по ссылке.
Недавно Google начал публиковать Gradle BOM для всех Compose зависимостей. Его использование освобождает вас от необходимости менеджерить все версии вручную.
Если вы хотите использовать в проекте не стабильные версии зависимостей, а альфа, первым получая все экспериментальные фичи, то можете переключиться на неофициальный автообновляемый BOM по ссылке.
GitHub
GitHub - chrisbanes/compose-bom: Compose BOM (bill of materials) - alpha edition
Compose BOM (bill of materials) - alpha edition. Contribute to chrisbanes/compose-bom development by creating an account on GitHub.
This media is not supported in your browser
VIEW IN TELEGRAM
Пошаговая реализация Dynamic Island на Compose
Dynamic Island из iOS – спорный с точки зрения UX, но интересный с точки зрения реализации нестандартного UI компонент. Если вы ищете, на каких примерах потренироваться с анимациями на Compose, то как раз отлично подойдет.
Dynamic Island из iOS – спорный с точки зрения UX, но интересный с точки зрения реализации нестандартного UI компонент. Если вы ищете, на каких примерах потренироваться с анимациями на Compose, то как раз отлично подойдет.
3 причины стать мобильным разработчиком на Android
1. Реализовать идеи
Счётчик просмотренных фильмов или управление светом в холодильнике? Приложение можно создать под любую задачу, на любом компьютере, для разных устройств и брендов.
2. «Пощупать» результат
70% людей в мире, у которых есть смартфон, пользуются Android. Разработчики улучшают жизнь людей и видят отклик: всегда можно протестировать приложение на своём устройстве или почитать отзывы в магазине.
3. Зарабатывать
По данным Хабр Карьеры, начинающие Android-разработчики получают от 40 000 ₽ в месяц, а опытные уровня middle — от 120 000 ₽. Часто разработчики работают удалённо.
Если хотите попробовать себя в этой профессии, начните бесплатную вводную часть курса по Android-разработке. Она делится на два уровня: начальный и для более подготовленных. Вы с первого урока учитесь на реальных задачах и погружаетесь в рабочую среду.
Познакомьтесь с языками Java и Kotlin, напишите своё первое приложение бесплатно →
1. Реализовать идеи
Счётчик просмотренных фильмов или управление светом в холодильнике? Приложение можно создать под любую задачу, на любом компьютере, для разных устройств и брендов.
2. «Пощупать» результат
70% людей в мире, у которых есть смартфон, пользуются Android. Разработчики улучшают жизнь людей и видят отклик: всегда можно протестировать приложение на своём устройстве или почитать отзывы в магазине.
3. Зарабатывать
По данным Хабр Карьеры, начинающие Android-разработчики получают от 40 000 ₽ в месяц, а опытные уровня middle — от 120 000 ₽. Часто разработчики работают удалённо.
Если хотите попробовать себя в этой профессии, начните бесплатную вводную часть курса по Android-разработке. Она делится на два уровня: начальный и для более подготовленных. Вы с первого урока учитесь на реальных задачах и погружаетесь в рабочую среду.
Познакомьтесь с языками Java и Kotlin, напишите своё первое приложение бесплатно →
Яндекс Практикум
Курс «Android-разработчик» - онлайн-обучение разработке мобильных приложений под Андроид
Онлайн-курс «Android-разработчик» от сервиса Яндекс Практикум. 12 месяцев обучения разработке мобильных приложений под Андроид для начинающих (с нуля). Научитесь писать код на Java и Kotlin, создадите командный дипломный проект, с дипломом и помощью в трудоустройстве.
Обновленные данные Android's Platform Distribution
6 января Google обновил данные по распределению используемых версий Android. Теперь можно посмотреть, какой процент пользователей сидит на Android 13 – пока это 5%.
6 января Google обновил данные по распределению используемых версий Android. Теперь можно посмотреть, какой процент пользователей сидит на Android 13 – пока это 5%.