Статья про то, как тестировать анимации в Compose с помощью фреймворка «Compose UI Test», на выходе которых вы получаете скриншоты результата.
Mobile development with Alex
Jetpack Compose: Testing animations
Designers and developers pay more attention to animations. This article will explore how to test animation created with Jetpack Compose.
Выпуск подкаста Happy Path Programming с Романом Елизаровым про то, как принимаются решения по языковому дизайну в Kotlin.
Spotify for Podcasters
#60 Kotlin Language Design with Roman Elizarov by Happy Path Programming
Kotlin Language designer Roman Elizarov, joins us to talk about finding the right balances when designing Kotlin.
Discuss this episode: https://discord.gg/nPa76qF
Discuss this episode: https://discord.gg/nPa76qF
Все еще не разобрались, зачем нужны Context Receivers? Это видео поможет разобраться.
YouTube
Context Receivers Are Coming to Kotlin!
Kotlin 1.6.20 comes with a new toy: Context Receivers. You can use them to elegantly constrain functions (and more!) to a specific context from which they can be called. Sebastian (https://twitter.com/sebi_io) helps you figure out what exactly that means:…
В Jetpack Compose 1.2.0 добавили возможность репортить различные перфоманс метрики во время сборки. Держите лучший пост прошлой недели про то, как Compose работает под капотом и какие решения могут ухудшить или улучшить эти метрики.
Keep rules – это фича ProGuard, которая позволяет сохранять оригинальные имена классов или функций после оптимизации кода. Это нужно, например, для того, чтобы не ломалась логика, основанная на рефлексии. С Java все работает просто, а вот использование keep rules с Kotlin не так очевидно.
Guardsquare
Keep Rules in the Age of Kotlin | Guardsquare
Learn why you need to think in terms of Java when writing keep rules for Kotlin code and how to maintain security in the Age of Kotlin Programming Language.
Текст про историю создания и развития протокола JSON. Пара фактов для затравочки:
📌Ключи в JSON помещаются в кавычки по историческим причинам – чтобы при скармливании его интерпретатору JavaScript не возникало коллизий по зарезервированным словам.
📌Великолепная цитата автора JSON в ответ на набросы про то, что он переизобрел XML: «The good thing about reinventing the wheel is that you can get a round one».
📌Ключи в JSON помещаются в кавычки по историческим причинам – чтобы при скармливании его интерпретатору JavaScript не возникало коллизий по зарезервированным словам.
📌Великолепная цитата автора JSON в ответ на набросы про то, что он переизобрел XML: «The good thing about reinventing the wheel is that you can get a round one».
twobithistory.org
The Rise and Rise of JSON
Команда Slack выложила в открытый доступ свой внутренний Gradle плагин. Посмотрите, чтобы вдохновиться:
📌Базовая конфигурация для Kotlin и Android
📌Специальный DSL для включения и выключения частых зависимостей
📌Метрики модульности
📌И много разных тасок, которые вы сможете попробовать забрать и в свой проект
📌Базовая конфигурация для Kotlin и Android
📌Специальный DSL для включения и выключения частых зависимостей
📌Метрики модульности
📌И много разных тасок, которые вы сможете попробовать забрать и в свой проект
GitHub
GitHub - slackhq/slack-gradle-plugin: Gradle and IntelliJ build tooling used in Slack's Android repo
Gradle and IntelliJ build tooling used in Slack's Android repo - slackhq/slack-gradle-plugin
Гайд из четырех частей по тому, как использовать KSP:
1️⃣Введение
2️⃣Настройка проекта и написание первого процессора
3️⃣Кодогенерация
4️⃣Использование сгенеренных классов в приложении
1️⃣Введение
2️⃣Настройка проекта и написание первого процессора
3️⃣Кодогенерация
4️⃣Использование сгенеренных классов в приложении
DEV Community
Android KSP guide for dummies by a Dummy: Part 1
KSP, Kotlin Symbol Processing is answer to annotation processing for Kotlin by google. It replaces...
Продолжение истории внедрения KMM в приложение Qiwi – в этот раз не столько про код, сколько про выбор технологии, разработку прототипа и продажу решения в другие команды. Ребята пишут, что за последний год каждая новая фича пишется уже с использованием КММ – так что их точно стоит послушать.
Хабр
Как мы в QIWI внедряли Kotlin Multiplatform Mobile Часть 2: Смотрим шире
Это продолжение нашего рассказа о внедрении Kotlin Multiplatform Mobile в QIWI. Если хотите узнать больше про технику, посмотреть на код, переходите в первую часть . В этой статье будет больше...
Twitter рассказали, что все новые фичи в приложении теперь будут разрабатываться на Compose. По их отзывам в результате перехода стало меньше бойлерплейта, упростилось тестирование и уменьшилось общее количество UI багов.
Android Developers Blog
Twitter going all in on Jetpack Compose for feature development: greater productivity, less bugs
Posted by The Android Team As one of the most widely used social media platforms, Twitter is always hunting for ways to...
Хороший вводный материал в Jetpack Macrobenchmark – библиотеку для измерения перфоманса различных сценариев в приложении локально и на CI. В гайде разбирается, как добавить бенчмарк в свой проект, начать измерять время старта приложения и скорость появления фреймов.
Medium
Measure and improve performance with Macrobenchmark
Introduction to Jetpack Macrobenchmark and Baseline Profiles
Еще одна статья с критикой архитектурных гайдлайнов Google. Автор разбирается с тем, в чем конкретно роль View слоя, сколько и какой логики можно там держать.
Rock and Null
What should the View layer be responsible for in Android?
When it comes to software architecture, there's no truly a single universal way of doing things. And the "borders" between layers, no matter how hard you might try to describe them, are subjective.
Подборка коротких Tips&Tricks по работе с Kotlin от команды его разработки:
0️⃣Operators and Nullable Values
⏱Timing Code
👨🎤Elvis Operator
♾Loops
🎁Collections
📘Strings
0️⃣Operators and Nullable Values
⏱Timing Code
👨🎤Elvis Operator
♾Loops
🎁Collections
📘Strings
YouTube
Operator Functions With Nullable Values | Kotlin Tips 2023
In Kotlin, you can override operators like addition and subtraction for your classes and supply your own logic. But what if you want to allow null values, both on their left and right sides?
In this episode of Kotlin Tips, Sebastian (https://twitter.com/sebi_io)…
In this episode of Kotlin Tips, Sebastian (https://twitter.com/sebi_io)…
Разработчики OkHttp рассказывают, как вместо того, чтобы добавлять в библиотеку логи, они решили предоставить абстрактный класс EventListener. Это удобно, потому что пользователи библиотеки могут реализовывать свою логику для обработки ключевых событий библиотеки – использовать свой любимый логгер, подключать метрики. В общем, присмотритесь к использованию EventListener и в своих собственных библиотек и приложениях!
Public Object
EventListener is Like Logging, But Good
In 2013 I opened OkHttp Issue #270, ‘Analytics API’. The request was to just add some debug logging: We should add verbose logging for the response cache. Folks occasionally are puzzled when the cache doesn't work. Let's make it easy for them to figure out…
Слайды топовейшего доклада Zac Sweers про различные способы и инструменты ускорения сборки проекта. Самого доклада в доступе еще нет, но слайды вполне самодостаточны.
Speaker Deck
Improve Build Times in Less Time
Build times are never as fast as we want but there is a lot you can do to improve them today without being a Gradle domain expert or buying everyone new computers! In this talk we'll cover a number of different tools, patterns, and common pitfalls to avoid…
Админ нашего айосного чата Евгений Елчев закончил записывать свой бесплатный курс по Dart и Flutter. Все космические 102 урока доступны на Youtube, смотрите их и подписывайтесь на Женю, он крутой!
Compose, Kotlin Flow, MultiModule: в Ozon Tech открылся набор на бесплатный курс для Android-разработчиков
Тебя ждет:
🔹Два месяца онлайн-занятий
🔹Менторство от экспертов и тьюторов
🔹Опыт разработчиков лидирующего e-com с настоящим highload
🔹Офферы в Ozon для лучших выпускников
🔹Вебинары по вторникам и четвергам с 19:00 до 21:00
🔹Воркшопы по субботам с разбором кейсов от экспертов e-com
Как попасть на курс?
Оставь заявку на сайте ➡️ 15 мая пройди отборочный контест ➡️ попади в рейтинг лучших ➡️ развивайся под менторством экспертов Ozon.
Регистрация на курс
Тебя ждет:
🔹Два месяца онлайн-занятий
🔹Менторство от экспертов и тьюторов
🔹Опыт разработчиков лидирующего e-com с настоящим highload
🔹Офферы в Ozon для лучших выпускников
🔹Вебинары по вторникам и четвергам с 19:00 до 21:00
🔹Воркшопы по субботам с разбором кейсов от экспертов e-com
Как попасть на курс?
Оставь заявку на сайте ➡️ 15 мая пройди отборочный контест ➡️ попади в рейтинг лучших ➡️ развивайся под менторством экспертов Ozon.
Регистрация на курс
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)
⚠️Firebase App Distribution в России – всё
Последнюю неделю подписчики периодически жаловались на то, что в Firebase отваливался App Distribution – нельзя было установить сборки на телефоны с российскими IP. Сегодня количество жалоб на такое поведение в нашем чате выросло еще сильнее. Вот что отвечает саппорт:
“Firebase is available in most countries and regions. However, Firebase restricts access to some of its business services in certain countries or regions. At this time, distribution of pre-release app versions via Firebase App Distribution is restricted in Russia”.
Если у вас есть информация про работоспособность других сервисов Firebase – расскажите в реплаях.
Последнюю неделю подписчики периодически жаловались на то, что в Firebase отваливался App Distribution – нельзя было установить сборки на телефоны с российскими IP. Сегодня количество жалоб на такое поведение в нашем чате выросло еще сильнее. Вот что отвечает саппорт:
“Firebase is available in most countries and regions. However, Firebase restricts access to some of its business services in certain countries or regions. At this time, distribution of pre-release app versions via Firebase App Distribution is restricted in Russia”.
Если у вас есть информация про работоспособность других сервисов Firebase – расскажите в реплаях.
Самый быстрый путь в «Лабораторию Касперского» для мобильных разработчиков с опытом от 1 года
Кого ищут?
- Android-разработчиков со знанием Java / Kotlin
- iOS-разработчиков со знанием Swift / ObjectiveC
Какие условия?
Ты будешь работать над B2B- и B2C-продуктами, инновационными технологическими решениями и кастомизациями. Сможешь выбрать удобный формат для работы: офис, удаленка или гибрид.
Из бонусов: ДМС со стоматологией; программа релокации в штаб-квартиру для кандидатов из регионов; страхование; 2 спортзала, сауна, массажист и врач в офисе.
Если хочешь узнать подробнее, то переходи по ссылке.
Что нужно делать?
- До 11 мая подай заявку на участие;
- 14 мая приходи на онлайн-знакомство с командой
Уже 15 мая ты можешь получить оффер.
Подать заявку: https://kas.pr/ma4d
Кого ищут?
- Android-разработчиков со знанием Java / Kotlin
- iOS-разработчиков со знанием Swift / ObjectiveC
Какие условия?
Ты будешь работать над B2B- и B2C-продуктами, инновационными технологическими решениями и кастомизациями. Сможешь выбрать удобный формат для работы: офис, удаленка или гибрид.
Из бонусов: ДМС со стоматологией; программа релокации в штаб-квартиру для кандидатов из регионов; страхование; 2 спортзала, сауна, массажист и врач в офисе.
Если хочешь узнать подробнее, то переходи по ссылке.
Что нужно делать?
- До 11 мая подай заявку на участие;
- 14 мая приходи на онлайн-знакомство с командой
Уже 15 мая ты можешь получить оффер.
Подать заявку: https://kas.pr/ma4d
careers.kaspersky.ru
Mobile Easy Offer
Карьера в Лаборатории Касперского
Вышел Kotlin 1.7.0-Beta! Это – превью версия релиза, которая раньше называлась M1. Она нужна для того, чтобы вы могли протестировать совместимость с вашими проектами и прислать обратную связь по багам, если найдете их.
Что интересного по фичам:
📌Builder type inference работает автоматически без флажков
📌В Stdlib вернулись min() и max() функции
📌Стабилизация definitely non-nullable типов
📌Стабилизация Regex.matchAt() и Regex.matchesAt()
📌Улучшения перфоманса и стабильности нового GC для Kotlin/Native
Что интересного по фичам:
📌Builder type inference работает автоматически без флажков
📌В Stdlib вернулись min() и max() функции
📌Стабилизация definitely non-nullable типов
📌Стабилизация Regex.matchAt() и Regex.matchesAt()
📌Улучшения перфоманса и стабильности нового GC для Kotlin/Native
The JetBrains Blog
Kotlin 1.7.0-Beta Released | The Kotlin Blog
The first preview of the 1.7.0 release is out. Introducing Kotlin 1.7.0-Beta! This preview includes: - Changes to builder inference. - The return of the min() and max() collection functions. - Stabilizing of definitely non-nullable types. - Updates for the…