Релиз Kotlin 1.8.10
Вышла патч-версия для последнего мажорного релиза Kotlin с исправлениями багов в новом фронтенде, serialization плагине, Gradle и Kapt.
Вышла патч-версия для последнего мажорного релиза Kotlin с исправлениями багов в новом фронтенде, serialization плагине, Gradle и Kapt.
GitHub
Release Kotlin 1.8.10 · JetBrains/kotlin
Changelog
Compiler
KT-55483 K2: Fir is not initialized for FirRegularClassSymbol java/lang/invoke/LambdaMetafactory
KT-55729 "None of the following functions can be called with the arguments ...
Compiler
KT-55483 K2: Fir is not initialized for FirRegularClassSymbol java/lang/invoke/LambdaMetafactory
KT-55729 "None of the following functions can be called with the arguments ...
Планы Kotlin по улучшению опыта авторов библиотек
Опыт авторов библиотек – один из приоритетов команды Kotlin на ближайший год. В частности, планируется сделать следующее:
✍️Улучшить синтаксис и тулинг для KDoc
🗒️Выпустить стабильную Dokka
📚Написать подробный гайд с лучшими практиками по дизайну JVM и мультиплатформенных библиотек
Опыт авторов библиотек – один из приоритетов команды Kotlin на ближайший год. В частности, планируется сделать следующее:
✍️Улучшить синтаксис и тулинг для KDoc
🗒️Выпустить стабильную Dokka
📚Написать подробный гайд с лучшими практиками по дизайну JVM и мультиплатформенных библиотек
The JetBrains Blog
We Are Improving Library Authors' Experience! | The Kotlin Blog
Improvements for library authors’ experience planned and what’s already been done, particularly the Dokka documentation update.
Как Square оптимизировал время билда
Команды Square подбивает итоги последнего года работы команды, которая занималась оптимизацией Gradle билда. Основная идея – даже для очень больших проектов можно оптимизировать работу Gradle настолько, чтобы сделать миграцию на Bazel или другую новую билд-систему бессмысленной.
Команды Square подбивает итоги последнего года работы команды, которая занималась оптимизацией Gradle билда. Основная идея – даже для очень больших проектов можно оптимизировать работу Gradle настолько, чтобы сделать миграцию на Bazel или другую новую билд-систему бессмысленной.
Релиз Compose Multiplatform 1.3.0
Вышел новый релиз мультиплатформенного Compose, в котором поправили баги, подтянули версии используемых зависимостей до актуальных, и завезли несколько новых фичей для Compose Desktop.
Вышел новый релиз мультиплатформенного Compose, в котором поправили баги, подтянули версии используемых зависимостей до актуальных, и завезли несколько новых фичей для Compose Desktop.
GitHub
Release 1.3.0 · JetBrains/compose-multiplatform
Common
Fixes
Fix configuration cache issues
Use global directory to download wix toolset
IDEA plugin - Redo: set until-build to undefined value
Desktop
Features
Desktop AlertDialog scrim color
M...
Fixes
Fix configuration cache issues
Use global directory to download wix toolset
IDEA plugin - Redo: set until-build to undefined value
Desktop
Features
Desktop AlertDialog scrim color
M...
Вышла первая Beta версия Kotlin 1.8.20
🕸️Kotlin/Wasm официально вышел в статус Experimental, с поддержкой в stdlib и kotlin.test. Код, скомпилированный Kotlin/Wasm, будет запускаться в последних версиях Chrome, Firefox и Edge со специальным включенным флагом.
🏎️Новая инкременталка для Kotlin/JVM включена по дефолту.
☠️Задепрекейчена часть таргетов Kotlin/Native. Детали описаны в отдельном блогпосте.
🧱В мультиплатформу завезли поддержку Gradle Composite Builds.
🤩В стандартной библиотеке появилась экспериментальная поддержка Base64 и common Closeable интерфейса.
А самое главное – заспойлерили, что один из следующих мажорных релизов будет называться Kotlin 2.0!
🕸️Kotlin/Wasm официально вышел в статус Experimental, с поддержкой в stdlib и kotlin.test. Код, скомпилированный Kotlin/Wasm, будет запускаться в последних версиях Chrome, Firefox и Edge со специальным включенным флагом.
🏎️Новая инкременталка для Kotlin/JVM включена по дефолту.
☠️Задепрекейчена часть таргетов Kotlin/Native. Детали описаны в отдельном блогпосте.
🧱В мультиплатформу завезли поддержку Gradle Composite Builds.
🤩В стандартной библиотеке появилась экспериментальная поддержка Base64 и common Closeable интерфейса.
А самое главное – заспойлерили, что один из следующих мажорных релизов будет называться Kotlin 2.0!
Релиз Decompose 1.0.0
Вышел первый стабильный релиз библиотеки Decompose, мулььиплатформенной библиотеки для организации роутинга в приложении. Основные изменения в релизе:
*️⃣Поддержка последних версий Kotlin и Compose
*️⃣Стабилизированы Generic Navigation и Stack Animation API
*️⃣Новый способ интеграции рутового компонента во фрагменты
Вышел первый стабильный релиз библиотеки Decompose, мулььиплатформенной библиотеки для организации роутинга в приложении. Основные изменения в релизе:
*️⃣Поддержка последних версий Kotlin и Compose
*️⃣Стабилизированы Generic Navigation и Stack Animation API
*️⃣Новый способ интеграции рутового компонента во фрагменты
Цвета и цветовые пространства
Вы красите кнопки, но делаете это без уважения к цветам. Чтобы исправить ситуацию, мы записали выпуск Подлодки про то, что такое цвета, какие бывают цветовые пространства и чем они различаются, как они выглядят в картинках и градиентах и как отображаются на экранах.
Вдогонку – хорошая статья за авторством гостя про историю развития цвета в CSS и новый формат OLKCH.
Вы красите кнопки, но делаете это без уважения к цветам. Чтобы исправить ситуацию, мы записали выпуск Подлодки про то, что такое цвета, какие бывают цветовые пространства и чем они различаются, как они выглядят в картинках и градиентах и как отображаются на экранах.
Вдогонку – хорошая статья за авторством гостя про историю развития цвета в CSS и новый формат OLKCH.
podlodka.io
Podlodka #305 – Цвета и цветовые пространства
Специально для тех, кто считает несправедливыми шутки про “покраску кнопок”, мы с головой ушли в увлекательный и непростой мир представления цвета в компьютерных системах. Так вот, цвета – это очень сложно! Вместе с Андреем Ситником разбираемся почему.
Кастомизация нативного Share Sheet
Если вам раньше не хватало возможностей кастомизации нативного диалога шаринга, посмотрите на него еще раз – за последние годы его существенно подкрутили. В статье показывают, как, например, можно задавать свой кастомный текст, который будет шариться, или трекать в аналитику, шаринг в какие приложения используется чаще всего.
Если вам раньше не хватало возможностей кастомизации нативного диалога шаринга, посмотрите на него еще раз – за последние годы его существенно подкрутили. В статье показывают, как, например, можно задавать свой кастомный текст, который будет шариться, или трекать в аналитику, шаринг в какие приложения используется чаще всего.
Android Dev Social
You don't need a custom share sheet for that!
Native share sheets have come a long way on Android and there's really no excuse for implementing custom share sheets anymore. Right?
At Pocket we sat down a couple years ago to retire our old custom share UI and switch to the native one, but we uncovered…
At Pocket we sat down a couple years ago to retire our old custom share UI and switch to the native one, but we uncovered…
Weekend Offer для ML- и мобильных разработчиков от VK
Мероприятие состоится уже на этих выходных, 18–19 февраля. Успевайте откликнуться до 16 февраля, чтобы познакомиться с командами, узнать больше о продуктах VK и получить шанс попасть в одну из команд (Дзен, Почта Mail.ru, Антиспам и Маруся) за два дня.
Кстати, ML Дзена ищет в свою команду и Java-разработчиков.
Мероприятие состоится уже на этих выходных, 18–19 февраля. Успевайте откликнуться до 16 февраля, чтобы познакомиться с командами, узнать больше о продуктах VK и получить шанс попасть в одну из команд (Дзен, Почта Mail.ru, Антиспам и Маруся) за два дня.
Кстати, ML Дзена ищет в свою команду и Java-разработчиков.
team.vk.company
Weekend Offer VK
Weekend Offer для ML-специалистов и мобильных разработчиков
Кластеринг в Map Compose
- Год назад команда Android зарелизила библиотеку Map Compose для работы с картами.
- В ней нет встроенной поддержки кластеризации маркеров. Если вам она требуется, нужно бриджиться с библиотекой maps-util.
- Судя по коммитам в Map Compose, через какое-то время можно ожидать и нативную поддержку кластеров.
- Год назад команда Android зарелизила библиотеку Map Compose для работы с картами.
- В ней нет встроенной поддержки кластеризации маркеров. Если вам она требуется, нужно бриджиться с библиотекой maps-util.
- Судя по коммитам в Map Compose, через какое-то время можно ожидать и нативную поддержку кластеров.
Medium
Clustering With Maps Compose For Android
Bridging the maps-util library with Jetpack Compose
ЦВТ (ГК Девелоника) ищут Android-разработчика с опытом работы от 3-х лет
Они собирают команду для работы над крупнейшей социальной сетью, которую посещают 52% российских интернет-пользователей ежедневно. Вместе вы будете развивать новое приложение для удобного общения: от мгновенных и голосовых сообщений до отправки файлов.
Перед тобой будут стоять задачи:
— Участие в командной разработке программных продуктов, проработке архитектуры, сопровождении проектов;
— Проведение код-ревью;
— Декомпозиция, оценка и постановка задач;
— Контроль качества;
— Рефакторинг.
Локация поиска: вся Россия, удаленный формат работы.
Пиши @irinasunfunny , @Bastet_111 , @ivannamry , что ты от канала Android Good Reads и стань частью одной из продуктовых команд.
Они собирают команду для работы над крупнейшей социальной сетью, которую посещают 52% российских интернет-пользователей ежедневно. Вместе вы будете развивать новое приложение для удобного общения: от мгновенных и голосовых сообщений до отправки файлов.
Перед тобой будут стоять задачи:
— Участие в командной разработке программных продуктов, проработке архитектуры, сопровождении проектов;
— Проведение код-ревью;
— Декомпозиция, оценка и постановка задач;
— Контроль качества;
— Рефакторинг.
Локация поиска: вся Россия, удаленный формат работы.
Пиши @irinasunfunny , @Bastet_111 , @ivannamry , что ты от канала Android Good Reads и стань частью одной из продуктовых команд.
Как Reddit переезжали на Anvil
Дано: приложение на 500 модулей, активно использующее Dagger 2 и кастомный kapt процессор для борьбы с циклическими зависимостями. Команде не нравилось, что их DI сетап слишком сложный, онбордить новых людей в него трудно, а использование kapt существенно замедляет сборку.
Чтобы решить эти проблемы, проект перевели на работу с Anvil. В статье – история миграции, результаты и советы тем, кто решит повторить их путь.
Дано: приложение на 500 модулей, активно использующее Dagger 2 и кастомный kapt процессор для борьбы с циклическими зависимостями. Команде не нравилось, что их DI сетап слишком сложный, онбордить новых людей в него трудно, а использование kapt существенно замедляет сборку.
Чтобы решить эти проблемы, проект перевели на работу с Anvil. В статье – история миграции, результаты и советы тем, кто решит повторить их путь.
Reddit
From the RedditEng community on Reddit
Explore this post and more from the RedditEng community
Инспекции для переезда на Gradle Version Catalogs
Gradle Version Catalogs – новая фича Gradle, которая позволяет вынести объявление зависимостей и их версий в отдельный файл, переиспользовать его между несколькими проектами, объединять зависимости в бандлы и другими способами управлять их структурой.
Так вот, в Android Studio Giraffe появился набор новых инспекций, которые упростят переезд.
Gradle Version Catalogs – новая фича Gradle, которая позволяет вынести объявление зависимостей и их версий в отдельный файл, переиспользовать его между несколькими проектами, объединять зависимости в бандлы и другими способами управлять их структурой.
Так вот, в Android Studio Giraffe появился набор новых инспекций, которые упростят переезд.
Weekend Offer для C++ и мобильных разработчиков от ВКонтакте
Мероприятие состоится 11–12 марта онлайн. Успевайте откликнуться до 9 марта включительно, чтобы познакомиться с командами. Помимо этого, вы сможете узнать больше о работе по каждому из трех направлений (Android, iOS и BackEnd) и получить шанс попасть в одну из 10 команд.
Мероприятие состоится 11–12 марта онлайн. Успевайте откликнуться до 9 марта включительно, чтобы познакомиться с командами. Помимо этого, вы сможете узнать больше о работе по каждому из трех направлений (Android, iOS и BackEnd) и получить шанс попасть в одну из 10 команд.
Поиски ресурс-менеджера пула мобильной разработки
Кто такой ресурс-менеджер?
— Лидер, который выстраивает работу в команде и создает атмосферу, где хочется двигаться вперед.
— Обеспечивает рост и развитие компетенций наших разработчиков, помогает в реализации проектов уровня РФ.
Какие навыки важны?
— Опыт в ИТ от 3-х лет. Это может быть разработчик, желающий попробовать себя в новой роли, или руководитель проектов, который хочет сменить вектор деятельности.
— Умение мотивировать команду, создавать новые и совершенствовать текущие процессы компании.
— Ожидается, что ты понимаешь специфику мобильной разработки, а если еще и заказной, то почему ты еще не на собеседовании?
Локации поиска: Москва, Санкт-Петербург, Екатеринбург, Ижевск, Самара, Ульяновск, Воронеж
Увидел в описании себя? Пиши @KhisamovaS и @Aiagovkina, что ты от канала Android Good Reads и стань частью уникальной команды экспертов — ресурс-менеджеров.
Кто такой ресурс-менеджер?
— Лидер, который выстраивает работу в команде и создает атмосферу, где хочется двигаться вперед.
— Обеспечивает рост и развитие компетенций наших разработчиков, помогает в реализации проектов уровня РФ.
Какие навыки важны?
— Опыт в ИТ от 3-х лет. Это может быть разработчик, желающий попробовать себя в новой роли, или руководитель проектов, который хочет сменить вектор деятельности.
— Умение мотивировать команду, создавать новые и совершенствовать текущие процессы компании.
— Ожидается, что ты понимаешь специфику мобильной разработки, а если еще и заказной, то почему ты еще не на собеседовании?
Локации поиска: Москва, Санкт-Петербург, Екатеринбург, Ижевск, Самара, Ульяновск, Воронеж
Увидел в описании себя? Пиши @KhisamovaS и @Aiagovkina, что ты от канала Android Good Reads и стань частью уникальной команды экспертов — ресурс-менеджеров.
Мобильный разработчик Android, найдись! 🕵🏻♂️
Ozon делает приложение для миллионов поĸупателей, вĸлючающее множество сервисов — от поĸупĸи товаров, до бронирования авиабилетов и управления банĸовсĸими услугами.
У тебя есть опыт разработĸи на Kotlin от 2 лет? Тогда эта вакансия для тебя!
Стек: RxJava 2, Dagger 2, Architecture Components (ViewModel, Room, etc.), Firebase, Glide, Coroutine
Мотивация:
✔️ Никакого legacy
✔️ Своя дизайн-система
✔️ In-House фреймворки для Server Driven UI, аналитики, Feature Toggles, A/B тестов, Push-рассылок
✔️ Своя навигация на Android Fragments
Условия:
✔️ Удаленка, гибрид или офис (Россия, Казахстан) — выбирать тебе
✔️ Свобода действий в принятии решений
✔️ Конкурентное предложение по зарплате
✔️ А также система бонусов, с возможностью влиять на свой совокупный доход
Если ты хочешь влиться в команду крупнейшего e-commerce — оставляй отклик на сайте.
Ozon делает приложение для миллионов поĸупателей, вĸлючающее множество сервисов — от поĸупĸи товаров, до бронирования авиабилетов и управления банĸовсĸими услугами.
У тебя есть опыт разработĸи на Kotlin от 2 лет? Тогда эта вакансия для тебя!
Стек: RxJava 2, Dagger 2, Architecture Components (ViewModel, Room, etc.), Firebase, Glide, Coroutine
Мотивация:
✔️ Никакого legacy
✔️ Своя дизайн-система
✔️ In-House фреймворки для Server Driven UI, аналитики, Feature Toggles, A/B тестов, Push-рассылок
✔️ Своя навигация на Android Fragments
Условия:
✔️ Удаленка, гибрид или офис (Россия, Казахстан) — выбирать тебе
✔️ Свобода действий в принятии решений
✔️ Конкурентное предложение по зарплате
✔️ А также система бонусов, с возможностью влиять на свой совокупный доход
Если ты хочешь влиться в команду крупнейшего e-commerce — оставляй отклик на сайте.
Как работает String Pool в JVM
Строки в JVM хранятся в специальной области памяти в куче – string pool. Благодаря этому получается неплохо экономить память. Но есть и неприятное последствие – нельзя гарантированно удалить строки из памяти приложения, что ведет к рискам безопасности.
В статье на примере детально разбирается, как работает string pool, и предлагается работать с ByteBuffer вместо String для секьюрных данных.
Строки в JVM хранятся в специальной области памяти в куче – string pool. Благодаря этому получается неплохо экономить память. Но есть и неприятное последствие – нельзя гарантированно удалить строки из памяти приложения, что ведет к рискам безопасности.
В статье на примере детально разбирается, как работает string pool, и предлагается работать с ByteBuffer вместо String для секьюрных данных.
Ищем разработчика в команду билдтулинга Kotlin
Если вы любите писать плагины для Gradle, хорошо разбираетесь в принципах его работы и устали от разработки мобильных приложений, то приходите работать в команду Kotlin. Нужно будет ускорять инкрементальную компиляцию, улучшать импорт в IDE и работать над поддержкой нового компилятора К2.
Если вы любите писать плагины для Gradle, хорошо разбираетесь в принципах его работы и устали от разработки мобильных приложений, то приходите работать в команду Kotlin. Нужно будет ускорять инкрементальную компиляцию, улучшать импорт в IDE и работать над поддержкой нового компилятора К2.
Для работы в международной команде базового английского может не хватить. Держите 5 советов, которые помогут подготовиться к общению с иностранными коллегами.
Если хотите подтянуть язык для работы в IT — попробуйте Яндекс Практикум. Они запустили курсы специально для разработчиков, аналитиков и продакт-менеджеров.
В основе обучения — занятия с личным преподавателем, дополнительно вас ждёт разговорная практика с иностранными IT-специалистами. Они помогут освоить язык на примере собеседований, стендапов, ревью и других рабочих встреч. Будет проще пройти реальное англоязычное собеседование, если вы уже тренировали его на занятиях.
Записывайтесь на бесплатную консультацию к куратору. Он определит ваш уровень языка и расскажет о курсе.
Если хотите подтянуть язык для работы в IT — попробуйте Яндекс Практикум. Они запустили курсы специально для разработчиков, аналитиков и продакт-менеджеров.
В основе обучения — занятия с личным преподавателем, дополнительно вас ждёт разговорная практика с иностранными IT-специалистами. Они помогут освоить язык на примере собеседований, стендапов, ревью и других рабочих встреч. Будет проще пройти реальное англоязычное собеседование, если вы уже тренировали его на занятиях.
Записывайтесь на бесплатную консультацию к куратору. Он определит ваш уровень языка и расскажет о курсе.