Оффер в Яндекс за 2 дня 🚀
9-10 июля Яндекс проводит Weekend Offer для мобильных разработчиков, участники которого смогут присоединиться к командам Маркета, Еды, Такси и многих других сервисов.
Если у вас есть опыт коммерческой разработки на iOS, Android, Flutter от 3 лет — регистрируйтесь на сайте и решайте задачи предварительного этапа.
9 июля две онлайн-секции с кодом и уже на следующий день лучшие участники получат офферы от Яндекса.
9-10 июля Яндекс проводит Weekend Offer для мобильных разработчиков — мероприятие, на котором можно получить оффер от Яндекса за 2 дня.
🔥 AvitoTech ищет Android-разработчиков…
…сразу в три команды кластера mobile!
Вот чем предстоит в них заниматься:
🏄♂️ Команда Speed: развивать системы сборки тестовый фреймворк, тестовый раннер, CI/CD-инфру и инструменты для автотестирования;
🎨 Команда Mobile Design System: работать над консистентностью UI, строить компонентную архитектуру, создавать элементы интерфейса и развивать backend-driven UI;
🏗 Команда Mobile Architecture: упрощать жизнь продуктовым разработчикам через создание гибкой, расширяемой архитектуры мобильных приложений.
Залетайте на сайт за подробностями: bit.ly/3zV9pl6
Присоединяйся к Avito Cluster Mobile. Развивай вместе с нами мобильную платформу в Авито, с помощью разработки и популяризации:общих архитектурных подходов, стандартов качества кода и поддержки общих платформенных библиотек.
Сталкивались с тем, что информация о том, почему было принято то или иное архитектурное решение, со временем теряется? Держите подробную статью про Architecture Decision Records – практику записей и хранения ключевых архитектурных решений.
Челленджи Android-разработчика: для джуна, мидла, сеньора
CTO FUNCORP Дима Васильев собрал топ-3 своих воспоминаний:
Джуном я получил первую серьезную задачу: обеспечить почти мгновенный показ ролика в приложении с любого места. С Faststart никто не работал, а реализация должна поддерживать старый тип отдачи контента. В итоге — видео у миллионов пользователей работает в 6 раз быстрее.
Дорос до миддла. Задача: улучшить алгоритм загрузки контента. Нужно написать с нуля логику кэширования, доскачивания и предзагрузки файлов. В итоге — число ретраев у пользователей снижается почти втрое.
В роли сеньора делал глубокую техническую аналитику, так как приложение монетизируется через рекламу. Android Vitals, Firebase, Fabric, Mixpanel не умели того, что нужно. Пишем свое и попутно оптимизируем: нативные крэши уменьшились в 10 раз, out of memory — в 15.
Если у тебя за плечами тоже есть сеньорские челленджи, обрати внимание на вакансию Android-разработчика от FUNCORP:
Senior Android Developer
Про постепенный рефакторинг приложения с Fragments на Compose с top-down подходом, при котором на Compose переводятся сначала контейнеры, а уже потом – отдельные компоненты.
Когда вы дизайните новую библиотеку, архитектуру приложения или просто интерфейс класса, всегда надо пытаться представить, как его потенциальные пользователи могут косячить с его использованием. В статье разбираются примеры того, как хорошие библиотеки оказывались вредными из-за того, что не учитывали тенденцию людей ошибаться, и различные подходы к тому, как сделать ваш дизайн устойчивым к ошибкам.
This article is a write-up of a talk I gave at MinneBar 2022. You can see the slides for the original deck here. (As of writing, the recording is not online yet.)
The title of this talk is "maintaining software correctness." But what exactly do I mean by “correctness”? Let
Команда Касперского делится своим опытом использования Baseline profiles для оптимизации перфоманса. Помимо итоговых результатов, статья дает хороший обзор принципов работы этих профилей.
Производительность важна для формирования положительного пользовательского опыта использования приложения, поэтому разработчики стремятся ускорить работу своих программ. Для приложений в области...
Вышел релиз kotlinx-datetime 0.4.0. Главное нововведение – появление класса LocalTime, который позволяет удобно работать со временем в рамках одного дня.
Add the LocalTime class for representing time-of-day (#57). Thank you, @bishiboosh!
Provide LocalTime#toSecondOfDay, LocalTime.fromSecondOfDay, and various other functions for compact representatio...
В Kotlin 1.7.0 добавили возможность генерировать билд репорты после каждой сборки проекта. Они содержат подробную информацию о том, из каких этапов состояла компиляция, какой этап сколько времени занимал, и какие проблемы были обнаружены по пути. Фича супер-полезна в тех случаях, когда сборка кажется медленной, но вы не знаете, куда конкретно копать.
I’m happy to announce that the Koin Annotations project is now getting to its first stable version. With this, we are introducing a new way to declare modules, components, and new tooling capacity.
В версии 1.2.0-beta03 библиотеки Compose Animation добавили много новых easing functions для анимаций. Держите подробную статью про то, как они работают и как реализовать свою кастомную функцию.
В Java планируют завезти новый Classfile Processing API, который упростит доступ к чтению и записи классфайлов, в том числе с учетом того, что их формат каждые полгода дорабатывается и меняется.
Подборка советов по тому, как упростить свои рутинные задачи в Android Studio. Вот некоторые из них:
🙈Убрать из индексации автоматически генерируемые файлы
📝Начать использовать Scratches для быстрой проверки идей
🔀Научиться редактировать сразу несколько строк кода
📚Использовать историю буфера обмена
🕖Пользоваться локальной историей файла для отката последних изменений
Рефакторинг крупного проекта – всегда интересная история. Яндекс Музыка рассказывает, как они подошли к переписыванию ядра приложения, как прорабатывали его архитектуру и постепенно раскатывали на пользователей.
Однажды ты просыпаешься и понимаешь: избыточность компонентов и рассинхронизация в твоём приложении начинают вредить пользователям. Однажды ты смотришь на написанное давным-давно ядро, плачешь...
Вышел Kotlin 1.7.0!
- K2 компилятор стал доступен для JVM проектов и показывает 2.2 ускорение компиляции
- Новая инкрементальная компиляция в Gradle, которая существенно ускоряет билд
- Underscore operator for type arguments
- Стабилизированы opt-in аннотации, definitely non-nullable типы и builder inference
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 from Swagger on Ktor Part 6: How to schedule jobs with Quartz on Ktor Part 7: Moving from mobile to backend development with Ktor It’s been a few months since I’ve started working with Ktor to build the backend of Revelop.
Тестировать перфоманс Compose нужно всегда в релизных сборках с включенным R8. В статье детально разбираются причины, по которым замеры дебажных сборок совсем нерепрезентативны.