Альфа рассказывает про свой подход к Server-Driven UI, который позволяет им гибко настраивать любые формы, в том числе с зависимыми шагами.
Хабр
Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг
Server-Driven UI (SDUI) — это подход для динамичного и гибкого пользовательского интерфейса, когда сервер посредством API сообщает приложению, какие компоненты и с каким контентом отображать. Он...
Разработчики из Reddit делятся историей того, как переезд их CDN на IPv6 повлек за собой трудноуловимый баг с медиа, которое не загружалось у части пользователей.
Reddit
From the RedditEng community on Reddit
Explore this post and more from the RedditEng community
Продолжение статьи про многомодульный BDSM. В ней разбирается, как правильно связывать api-модуль, содержащий в себе только интерфейсы и модели, и feature-модуль, содержащий логику отдельной фичи.
Хабр
Многомодульный BDSM: как связать Gradle модули и как с ними общаться после этого?
В многомодульном приложении часто возникает ситуация, когда в одном модуле находится интерфейс, а вот его реализация находится в совершенно другом модуле. Как следствие, возникает потребность как-то...
Артем Зиннатуллин опубликовал Ketolang – специальный диалект Kotlin, который удобно использовать для написания reproducable конфигураций. Например, для билд-систем. Он интересен и как пример того, как можно писать свои компиляторные плагины.
GitHub
GitHub - buildfoundation/ketolang: Future of general purpose Сonfiguration languages. Side-effect-less dialect of Kotlin.
Future of general purpose Сonfiguration languages. Side-effect-less dialect of Kotlin. - buildfoundation/ketolang
Если вам лень было изучать обновление роадмапа Kotlin, в этой статье я подбил самые интересные вещи оттуда!
The JetBrains Blog
What to Expect From the Kotlin Team in 2022–23: Key Projects and Productivity Features | The Kotlin Blog
Learn more about what improvements to expect from the Kotlin team in the next 12 months
Результаты последнего опроса пользователей Kotlin Multiplatform
🏎28% уже используют KMM в проде, 16% – начали делать на нем фичи, но еще не зарелизили, 18% – планируют использовать и находятся на стадии исследования.
🍻45% разработчиков работают с KMM более чем на одном проекте
📖В основном шарятся модели, на втором месте – нетворкинг, на третьем – сериализация.
💻20% тех, кто использует Multiplatform for Web, делают это с помощью Compose.
Если у вас тоже есть опыт работы с Kotlin Multiplatform, пройдите новый опрос, и поделитесь им с командой!
🏎28% уже используют KMM в проде, 16% – начали делать на нем фичи, но еще не зарелизили, 18% – планируют использовать и находятся на стадии исследования.
🍻45% разработчиков работают с KMM более чем на одном проекте
📖В основном шарятся модели, на втором месте – нетворкинг, на третьем – сериализация.
💻20% тех, кто использует Multiplatform for Web, делают это с помощью Compose.
Если у вас тоже есть опыт работы с Kotlin Multiplatform, пройдите новый опрос, и поделитесь им с командой!
The JetBrains Blog
The State of Kotlin Multiplatform Survey Q3-Q4 2021 | The Kotlin Blog
Find the key findings of the Kotlin Multiplatform survey Q3-Q4 2021. We asked our users about their experience with Kotlin Multiplatform.
Вы знали, что GitHub Actions можно описывать на Kotlin? Держите лайвкодинг, где показывается, как специальный DSL помогает заменить YAML.
YouTube
[TKUG #7] Piotr Krzemiński, "Authoring GitHub workflows in Kotlin"
https://github.com/krzema12/github-actions-kotlin-dsl
YAML becomes more and more ubiquitous. For simple tasks and data model it may be sufficient, but once we need to express something more, its simplicity quickly becomes a major roadblock. This is the case…
YAML becomes more and more ubiquitous. For simple tasks and data model it may be sufficient, but once we need to express something more, its simplicity quickly becomes a major roadblock. This is the case…
Если вы используете Compose и столкнулись с задачей реализации взаимозависимого скролла вложенных друг в друга View и scrollable composables, вас очень порадует экспериментальный интероп между ними! Документация и сэмпл.
GitHub
compose-samples/Jetchat at main · android/compose-samples
Official Jetpack Compose samples. Contribute to android/compose-samples development by creating an account on GitHub.
В Академии Яндекса стартует бесплатная Школа мобильной разработки.
Это двухмесячное интенсивное обучение от экспертов Яндекса, которые ежедневно работают с сервисами для многомиллионной аудитории.
Начинающие разработчики смогут:
•в разы улучшить свои навыки,
•познакомиться с реальными задачами бизнеса,
•научиться работать в команде и войти в профессиональное коммьюнити.
Обучение в Школе также дает возможность устроиться в компанию — после успешного прохождения программы от 50 до 70% выпускников становятся стажерами и сотрудниками Яндекса.
В этом году можно выбрать одно из трех направлений обучения на выбор: Android, iOS или Flutter.
Для поступления на трек по Android понадобятся базовые знания Kotlin и Java, а также минимальный опыт разработки приложений. Лекции и практические занятия стартуют 20 июля и пройдут в онлайн-формате, а с 9 сентября начнется работа над проектом в московском офисе Яндекса. Ребятам из других городов оплатят проезд и проживание.
Срок подачи заявок – до 23 июня. Все подробности здесь
Это двухмесячное интенсивное обучение от экспертов Яндекса, которые ежедневно работают с сервисами для многомиллионной аудитории.
Начинающие разработчики смогут:
•в разы улучшить свои навыки,
•познакомиться с реальными задачами бизнеса,
•научиться работать в команде и войти в профессиональное коммьюнити.
Обучение в Школе также дает возможность устроиться в компанию — после успешного прохождения программы от 50 до 70% выпускников становятся стажерами и сотрудниками Яндекса.
В этом году можно выбрать одно из трех направлений обучения на выбор: Android, iOS или Flutter.
Для поступления на трек по Android понадобятся базовые знания Kotlin и Java, а также минимальный опыт разработки приложений. Лекции и практические занятия стартуют 20 июля и пройдут в онлайн-формате, а с 9 сентября начнется работа над проектом в московском офисе Яндекса. Ребятам из других городов оплатят проезд и проживание.
Срок подачи заявок – до 23 июня. Все подробности здесь
academy.yandex.ru
Школа мобильной разработки
Как создавать мобильные приложения с заботой о пользователях? Расскажут эксперты Яндекса на интенсивной программе одному из направлений: Android, iOS или Flutter
Всем очень понравились фотографии фермы девайсов от Uber. Пока мы ждем подробного доклада от них, посмотрите на статью от ребят из АТИ, в которой они дали детальную инструкцию по созданию своей собственной фермы.
Хабр
Как создать мобильную ферму, или Вжух! И ты мобильный фермер
Привет, «Хабр»! Мы — Даня и Ксюша, разработчик и тестировщик команды мобильных приложений в компании ATI.SU . Сегодня хотим рассказать удивительную историю о том, как наши системные администраторы...
Тестировать перфоманс Compose нужно всегда в релизных сборках с включенным R8. В статье детально разбираются причины, по которым замеры дебажных сборок совсем нерепрезентативны.
Medium
Why should you always test Compose performance in release?
When discussing performance related to Compose, you’ll find that the guidance states “always test in release mode with R8 enabled”. You…
Идеальная серия статей для Android разработчиков, которые решили попробовать написать что-то на бэкенде с использованием Ktor.
📌Структура Ktor проекта
📌Хранение логов
📌Работа с in-memory базой
📌Миграция данных
📌Генерация документации со Swagger
📌Запуск джобов по расписанию
📌Сравнение мобильной и бэкенд разработки: архитектура, DI, тестирование
📌Структура Ktor проекта
📌Хранение логов
📌Работа с in-memory базой
📌Миграция данных
📌Генерация документации со Swagger
📌Запуск джобов по расписанию
📌Сравнение мобильной и бэкенд разработки: архитектура, DI, тестирование
Marco Gomiero
Structuring a Ktor project
SERIES: Building a backend with Ktor
Part 1: Structuring a Ktor project Part 2: How to persist Ktor logs Part 3: How to use an in-memory database for testing on Ktor Part 4: How to handle database migrations with Liquibase on Ktor Part 5 Generate API documentation…
Part 1: Structuring a Ktor project Part 2: How to persist Ktor logs Part 3: How to use an in-memory database for testing on Ktor Part 4: How to handle database migrations with Liquibase on Ktor Part 5 Generate API documentation…
📆Каждый день я стараюсь публиковать хотя бы один классный и полезный материал про Android разработку. За месяц их набегает несколько десятков, и ориентироваться в них не всегда легко. Чтобы облегчить вам задачу, я периодически публикую дайджест самых популярных постов, разбитых на категории.
📰Новости Kotlin и JetBrains
Релиз Kotlin 1.7.0
Детали обновления роадмапа Kotlin
Новый экспериментальный UI для IntelliJ IDEA
😛Языки
Роман Елизаров: Language Design in the Real World
Как работает Project Loom в Java
🧱Архитектурные подходы
Какие типы модулей встречаются в многомодульных проектах
Server-Driven UI от Альфы
Что нового в Koin 3.2
🎁Прочее
Как устроиться Staff Android инженером
Ферма девайсов от Uber
🕵️♀️Кстати, у меня есть еще один канал, на который стоит подписаться тем, кто хочет расти в управление командой – TechLead Good Reads. Держите несколько интересных материалов оттуда на закуску!
Как устроена инженерная культура в Facebook
Как SkyEng решал проблему некомпетентных тимлидов
15 ментальных моделей для принятий лучших решений
Как проводить крутые и полезные собеседования без кода
Если дайджест вам понравился – ставьте ❤️, 👍 и 🔥. Благодаря этому я пойму, что собирал его не зря! А если у вас будут конкретные предложения по его улучшению – смело пишите в комментарии!
#digest
📰Новости Kotlin и JetBrains
Релиз Kotlin 1.7.0
Детали обновления роадмапа Kotlin
Новый экспериментальный UI для IntelliJ IDEA
😛Языки
Роман Елизаров: Language Design in the Real World
Как работает Project Loom в Java
🧱Архитектурные подходы
Какие типы модулей встречаются в многомодульных проектах
Server-Driven UI от Альфы
Что нового в Koin 3.2
🎁Прочее
Как устроиться Staff Android инженером
Ферма девайсов от Uber
🕵️♀️Кстати, у меня есть еще один канал, на который стоит подписаться тем, кто хочет расти в управление командой – TechLead Good Reads. Держите несколько интересных материалов оттуда на закуску!
Как устроена инженерная культура в Facebook
Как SkyEng решал проблему некомпетентных тимлидов
15 ментальных моделей для принятий лучших решений
Как проводить крутые и полезные собеседования без кода
Если дайджест вам понравился – ставьте ❤️, 👍 и 🔥. Благодаря этому я пойму, что собирал его не зря! А если у вас будут конкретные предложения по его улучшению – смело пишите в комментарии!
#digest
Telegram
Android Good Reads
Вышел Kotlin 1.7.0!
- K2 компилятор стал доступен для JVM проектов и показывает 2.2 ускорение компиляции
- Новая инкрементальная компиляция в Gradle, которая существенно ускоряет билд
- Underscore operator for type arguments
- Стабилизированы opt-in аннотации…
- K2 компилятор стал доступен для JVM проектов и показывает 2.2 ускорение компиляции
- Новая инкрементальная компиляция в Gradle, которая существенно ускоряет билд
- Underscore operator for type arguments
- Стабилизированы opt-in аннотации…
Рефакторинг крупного проекта – всегда интересная история. Яндекс Музыка рассказывает, как они подошли к переписыванию ядра приложения, как прорабатывали его архитектуру и постепенно раскатывали на пользователей.
Хабр
Рефакторинг приложения с десятилетним легаси за три месяца. Опыт Яндекс Музыки
Однажды ты просыпаешься и понимаешь: избыточность компонентов и рассинхронизация в твоём приложении начинают вредить пользователям. Однажды ты смотришь на написанное давным-давно ядро, плачешь...
Подборка советов по тому, как упростить свои рутинные задачи в Android Studio. Вот некоторые из них:
🙈Убрать из индексации автоматически генерируемые файлы
📝Начать использовать Scratches для быстрой проверки идей
🔀Научиться редактировать сразу несколько строк кода
📚Использовать историю буфера обмена
🕖Пользоваться локальной историей файла для отката последних изменений
🙈Убрать из индексации автоматически генерируемые файлы
📝Начать использовать Scratches для быстрой проверки идей
🔀Научиться редактировать сразу несколько строк кода
📚Использовать историю буфера обмена
🕖Пользоваться локальной историей файла для отката последних изменений
adambennett.dev
Things you can do in Android Studio
A disorganised list of the features in Android Studio/IntelliJ that keep me productive
Статья про использование подгружаемых с сервера Lua скриптов в Android приложении, с интеропом в обе стороны.
Medium
Enable Lua Scripting On Android App
Enable remote scripting control over an Android App
В Java планируют завезти новый Classfile Processing API, который упростит доступ к чтению и записи классфайлов, в том числе с учетом того, что их формат каждые полгода дорабатывается и меняется.
В версии 1.2.0-beta03 библиотеки Compose Animation добавили много новых easing functions для анимаций. Держите подробную статью про то, как они работают и как реализовать свою кастомную функцию.
Medium
Easing in to Easing Curves in Jetpack Compose 🎢
Learn how to create and use custom easing functions in Compose
Вышла первая стабильная версия Koin Annotations, работающая поверх KSP. Получилась более легковесная альтернатива Koin DSL.
blog.cloud-inject.io
Blog - Koin - Cloud-Inject.io
Keep yourself informed about the latest developments in the Koin framework and Cloud-Inject Observability Dev platform directly from the creators.
В Kotlin 1.7.0 добавили возможность генерировать билд репорты после каждой сборки проекта. Они содержат подробную информацию о том, из каких этапов состояла компиляция, какой этап сколько времени занимал, и какие проблемы были обнаружены по пути. Фича супер-полезна в тех случаях, когда сборка кажется медленной, но вы не знаете, куда конкретно копать.