CameraViewFinder – новый способ работать с превью камеры
В CameraX появился новый класс – CameraViewFinder. С его помощью можно быстро реализовывать превью видеопотока с камеры устройства, которое будет автоматически адаптироваться под изменения контекста – смену ориентации, изменения инсетов, получение доступа к камере другим приложением.
В CameraX появился новый класс – CameraViewFinder. С его помощью можно быстро реализовывать превью видеопотока с камеры устройства, которое будет автоматически адаптироваться под изменения контекста – смену ориентации, изменения инсетов, получение доступа к камере другим приложением.
Android Developers Blog
Introducing Camera Viewfinder
CameraViewFinder is ready-to-use across resizable surfaces, configuration changes, rotations, and multi-window modes.
Команда Тинькофф ищет Android-разработчиков 💡
Большое комьюнити мобильных разработчиков Тинькофф решает крутые задачи — создает высоконагруженные сервисы для 27 миллионов клиентов, экспериментирует и ищет новые решения. Приглашает в команду Android-разработчиков с опытом от трех лет
Работать с Тинькофф значит:
— не ограничивать свои скиллы и вводить в сервисы новые фичи;
— делать жизнь миллионов людей удобнее и технологичней;
— расти в грейде по скиллам, а не по стажу в компании;
— становиться заметным в комьюнити Android-разработчиков.
А еще команда всегда «за» действительно комфортную работу. Поэтому большинство бытовых забот делегируют компании: от расширенного ДМС и юридической помощи до питания и разных активностей.
Откликнуться и узнать подробнее о команде Android-разработчиков Тинькофф: https://l.tinkoff.ru/mobile-prof
Большое комьюнити мобильных разработчиков Тинькофф решает крутые задачи — создает высоконагруженные сервисы для 27 миллионов клиентов, экспериментирует и ищет новые решения. Приглашает в команду Android-разработчиков с опытом от трех лет
Работать с Тинькофф значит:
— не ограничивать свои скиллы и вводить в сервисы новые фичи;
— делать жизнь миллионов людей удобнее и технологичней;
— расти в грейде по скиллам, а не по стажу в компании;
— становиться заметным в комьюнити Android-разработчиков.
А еще команда всегда «за» действительно комфортную работу. Поэтому большинство бытовых забот делегируют компании: от расширенного ДМС и юридической помощи до питания и разных активностей.
Откликнуться и узнать подробнее о команде Android-разработчиков Тинькофф: https://l.tinkoff.ru/mobile-prof
Генерация Baseline Profiles с помощью GitHub Actions
Самая сложная часть работы с baseline profiles – их генерация. В статье лежит гайд по тому, как можно быстро настроить генерацию профиля для своего проекта на базе GitHub Actions.
Самая сложная часть работы с baseline profiles – их генерация. В статье лежит гайд по тому, как можно быстро настроить генерацию профиля для своего проекта на базе GitHub Actions.
Medium
The Simplest Guide To Generate Baseline Profiles Continuously
How to empower builds with GitHub Actions
Тред иконок приложений, сгенерированных Midjourney
Прогресс нейронок, генерирующих иллюстрации, сделал более доступными и красивые иконки для ваших пет-проектов. Посмотрите, какая красота получается!
Прогресс нейронок, генерирующих иллюстрации, сделал более доступными и красивые иконки для ваших пет-проектов. Посмотрите, какая красота получается!
📌 ВКонтакте привлекает разработчиков к созданию мини-приложений
Команда регулярно проводит конкурсы вроде VK Fresh Code, которые помогают найти лучшие ИТ-продукты и привлечь к развитию платформы талантливых разработчиков. В недавнем этапе выиграли 25 мини-приложений на базе платформы VK Mini Apps на разные тематики, а их создатели получили гранты из призового фонда в 4,5 миллиона рублей. Поучаствовать в конкурсе могут как отдельные разработчики, так и команды.
Команда регулярно проводит конкурсы вроде VK Fresh Code, которые помогают найти лучшие ИТ-продукты и привлечь к развитию платформы талантливых разработчиков. В недавнем этапе выиграли 25 мини-приложений на базе платформы VK Mini Apps на разные тематики, а их создатели получили гранты из призового фонда в 4,5 миллиона рублей. Поучаствовать в конкурсе могут как отдельные разработчики, так и команды.
Обновился роадмап Kotlin
Основной фокус на четырех больших проектах:
1️⃣Релиз стабильного K2 компилятора
2️⃣Релиз нового плагина для IDE на базе K2
3️⃣Стабильный релиз KMM
4️⃣Улучшение жизни авторов библиотек
Подборка интересных фичей и планов:
💣Общий тикет с планами по всем новым языковым фичам и экспериментам
💣Детальные планы по тому, что будет стабилизировано в КММ
💣Первый релиз К2 IDE будет включать в себя только часть фичей старого плагина
💣.gradle.kts планируют сделать дефолтным для всей экосистемы вместо Groovy
💣Новый Gradle DSL для конфигурации компиляторных аргументов
💣Плагин для IDE, который позволит работать с Kotlin в стиле датасаенсовых ноутбуков
💣Много улучшений в KDoc
💣Большой гайд по дизайну API и обеспечению обратной совместимости для авторов библиотек
💣Поддержка Base64 и Hex в stdlib
Голосуйте за самые интересные тикеты, задавайте в комментариях к ним вопросы и обратную связь!
Основной фокус на четырех больших проектах:
1️⃣Релиз стабильного K2 компилятора
2️⃣Релиз нового плагина для IDE на базе K2
3️⃣Стабильный релиз KMM
4️⃣Улучшение жизни авторов библиотек
Подборка интересных фичей и планов:
💣Общий тикет с планами по всем новым языковым фичам и экспериментам
💣Детальные планы по тому, что будет стабилизировано в КММ
💣Первый релиз К2 IDE будет включать в себя только часть фичей старого плагина
💣.gradle.kts планируют сделать дефолтным для всей экосистемы вместо Groovy
💣Новый Gradle DSL для конфигурации компиляторных аргументов
💣Плагин для IDE, который позволит работать с Kotlin в стиле датасаенсовых ноутбуков
💣Много улучшений в KDoc
💣Большой гайд по дизайну API и обеспечению обратной совместимости для авторов библиотек
💣Поддержка Base64 и Hex в stdlib
Голосуйте за самые интересные тикеты, задавайте в комментариях к ним вопросы и обратную связь!
Что ждете больше всего?
Anonymous Poll
13%
Стабильный K2 компилятор
3%
Новый K2 IDE плагин
23%
Стабильный КММ
7%
Ускорение компиляции Kotlin/Native
10%
Улучшения .gradle.kts
12%
Ускорение инкрементальной компиляции в Gradle
4%
Новые языковые фичи (non local break and continue, ..<, data objects)
7%
Новые фичи стандартной библиотеки, корутин и сериализации
21%
Посмотреть результаты
Remote Development в Uber
Отличная статья для тех, кто любит читать, как решаются проблемы в огромных командах разработки. После переезда всех сервисов и приложений Uber в монорепозиторий заметно просела скорость сборки и сложность поднятия локального окружения. Чтобы решить проблему, команда реализовала возможность быстрого поднятия контейнера с преднастроенным рабочим окружением, к которому можно коннектиться с помощью remote development фичей IntelliJ и VSCode.
В статье детали про архитектуру решения, его плюсы и известные проблемы.
Отличная статья для тех, кто любит читать, как решаются проблемы в огромных командах разработки. После переезда всех сервисов и приложений Uber в монорепозиторий заметно просела скорость сборки и сложность поднятия локального окружения. Чтобы решить проблему, команда реализовала возможность быстрого поднятия контейнера с преднастроенным рабочим окружением, к которому можно коннектиться с помощью remote development фичей IntelliJ и VSCode.
В статье детали про архитектуру решения, его плюсы и известные проблемы.
Все про работу со стейтом в Compose
var enabled by remember { mutableStateOf(true) }
☁️mutableStateOf(true) создает объект типа MutableState<Boolean>, который содержит сам стейт
☁️Функция remember говорит фреймворку о том, что выполнять лямбду при каждой рекомпозиции не нужно
☁️Ключевое слово by позволяет работать с переменной enabled как с Boolean
Статья начинается с разбора того, как именно определяется стейт, а затем уходит в детали:
🧷Что будет, если опустить что-то из перечисленных выше шагов
🧷Чем отличаются stateful и stateless composables, и когда стейт нужен
🧷Почему TextInput должен быть stateful
🧷Работа со стейтом во ViewModel
🧷Представление стейта с помощью Flow, rxJava и LiveData
var enabled by remember { mutableStateOf(true) }
☁️mutableStateOf(true) создает объект типа MutableState<Boolean>, который содержит сам стейт
☁️Функция remember говорит фреймворку о том, что выполнять лямбду при каждой рекомпозиции не нужно
☁️Ключевое слово by позволяет работать с переменной enabled как с Boolean
Статья начинается с разбора того, как именно определяется стейт, а затем уходит в детали:
🧷Что будет, если опустить что-то из перечисленных выше шагов
🧷Чем отличаются stateful и stateless composables, и когда стейт нужен
🧷Почему TextInput должен быть stateful
🧷Работа со стейтом во ViewModel
🧷Представление стейта с помощью Flow, rxJava и LiveData
У Сбера появилась платформа для разработчиков html-игр.
Здесь каждый может не только получить новый канал продвижения, но и монетизировать свои разработки — достаточно адаптировать игру под пульт, загрузить в каталог хостинга Сбера и начать зарабатывать на in-app покупках и рекламных интеграциях.
Для геймдевелоперов у Сбера действует ежемесячная программа мотивации.
Все подробности здесь
Здесь каждый может не только получить новый канал продвижения, но и монетизировать свои разработки — достаточно адаптировать игру под пульт, загрузить в каталог хостинга Сбера и начать зарабатывать на in-app покупках и рекламных интеграциях.
Для геймдевелоперов у Сбера действует ежемесячная программа мотивации.
Все подробности здесь
Как устроен и работает Kotlin DSL для описания конфига GitHub Actions
Автор проекта github-workflows-kt рассказывает о том, как настрадался с описанием конфигурации CI с помощью YAML и решил переписать все на Kotlin DSL.
Самое интересное в статье – то, как автор подошел к вопросам дизайна, выделял основные сущности и исправлял проблемы большого количества дублирующихся сущностей в YAML.
Автор проекта github-workflows-kt рассказывает о том, как настрадался с описанием конфигурации CI с помощью YAML и решил переписать все на Kotlin DSL.
Самое интересное в статье – то, как автор подошел к вопросам дизайна, выделял основные сущности и исправлял проблемы большого количества дублирующихся сущностей в YAML.
KotlinDL теперь на Android
ONNX – это спецификация deep learning моделей, которая поддерживается большинством фреймворков для их обучения, например, TensorFlow. KotlinDL дает возможность запускать такие модели прямо на устройстве с помощью простого API.
Вместе с библиотекой идут несколько уже обученных моделей для следующих задач:
👀Определение объектов
🌅Классификация изображений
💃Распознавание поз
😊Распознавание лиц
🫠Выравнивание лиц
Что еще есть в библиотеке:
- DSL для препроцессинга изображений до передачи их нейронке, с готовыми функциями для кропа, изменения масштаба и поворота.
- Поддержка аппаратного ускорения на девайсах со специальным железом.
- Поддержка любых кастомных ONNX моделей, которые обучили вы сами.
Делитесь фидбэком в комментариях, команде он очень важен!
ONNX – это спецификация deep learning моделей, которая поддерживается большинством фреймворков для их обучения, например, TensorFlow. KotlinDL дает возможность запускать такие модели прямо на устройстве с помощью простого API.
Вместе с библиотекой идут несколько уже обученных моделей для следующих задач:
👀Определение объектов
🌅Классификация изображений
💃Распознавание поз
😊Распознавание лиц
🫠Выравнивание лиц
Что еще есть в библиотеке:
- DSL для препроцессинга изображений до передачи их нейронке, с готовыми функциями для кропа, изменения масштаба и поворота.
- Поддержка аппаратного ускорения на девайсах со специальным железом.
- Поддержка любых кастомных ONNX моделей, которые обучили вы сами.
Делитесь фидбэком в комментариях, команде он очень важен!
This media is not supported in your browser
VIEW IN TELEGRAM
Самое простое интро в шейдеры
Если вы никогда не писали свои шейдеры, и просто киваете с умным видом, когда кто-то начинает говорить про оптимизированный под GPU код, обязательно прочитайте статью.
💻Отличие CPU от GPU в вопросах вычислений
🤔Ограничения в разработке шейдеров
🎨Примеры шейдеров
Если вы никогда не писали свои шейдеры, и просто киваете с умным видом, когда кто-то начинает говорить про оптимизированный под GPU код, обязательно прочитайте статью.
💻Отличие CPU от GPU в вопросах вычислений
🤔Ограничения в разработке шейдеров
🎨Примеры шейдеров
Yatagan – новый DI фреймворк
- Ребята из Яндекс Браузера написали и заопенсорсили новый DI фреймворк, практически полностью совместимый с Dagger по API. Его основной плюс в том, что он ускорил сборку их проекта в два раза.
- В статье с большим количеством деталей разбирается история управления зависимостями в их проекте, архитектура и реализация Yatagan.
- Ребята из Яндекс Браузера написали и заопенсорсили новый DI фреймворк, практически полностью совместимый с Dagger по API. Его основной плюс в том, что он ускорил сборку их проекта в два раза.
- В статье с большим количеством деталей разбирается история управления зависимостями в их проекте, архитектура и реализация Yatagan.
Как измерить, сколько времени выполняется блок кода
Самый простой способ узнать, сколько времени уходит на выполнение какого-то куска кода – обернуть его в экспериментальную функцию стандартной библиотеки measureTime. После выполнения лямбды возвращается объект Duration, содержащий информацию о времени ее исполнения.
Самый простой способ узнать, сколько времени уходит на выполнение какого-то куска кода – обернуть его в экспериментальную функцию стандартной библиотеки measureTime. После выполнения лямбды возвращается объект Duration, содержащий информацию о времени ее исполнения.
Architecture Templates от Google
Google завернули все свои архитектурные рекомендации в несколько шаблонов на GitHub.
Google завернули все свои архитектурные рекомендации в несколько шаблонов на GitHub.
apk.sh – консольный инструмент для реверс-инжиниринга
- Скрипт помогает автоматизировать рутинные задачи реверс-инжиниринга, в том числе загрузку, декодирование и патчинг APK.
- Под капотом используется apktool и frida.
- Скрипт помогает автоматизировать рутинные задачи реверс-инжиниринга, в том числе загрузку, декодирование и патчинг APK.
- Под капотом используется apktool и frida.