Когда вы дизайните новую библиотеку, архитектуру приложения или просто интерфейс класса, всегда надо пытаться представить, как его потенциальные пользователи могут косячить с его использованием. В статье разбираются примеры того, как хорошие библиотеки оказывались вредными из-за того, что не учитывали тенденцию людей ошибаться, и различные подходы к тому, как сделать ваш дизайн устойчивым к ошибкам.
Dan Lew Codes
Maintaining Software Correctness
This article is a write-up of a talk I gave at MinneBar 2022. Instead of reading this, you could also watch the recording or view the slides.
The title of this talk is "maintaining software correctness." But what exactly do I mean by “correctness”? Let me…
The title of this talk is "maintaining software correctness." But what exactly do I mean by “correctness”? Let me…
Про постепенный рефакторинг приложения с Fragments на Compose с top-down подходом, при котором на Compose переводятся сначала контейнеры, а уже потом – отдельные компоненты.
Medium
Load Fragments in Jetpack Compose: Beyond What Google Taught
An experience from unworkable solutions to a solution that can load, pop, and restore fragments as needed.
Челленджи Android-разработчика: для джуна, мидла, сеньора
CTO FUNCORP Дима Васильев собрал топ-3 своих воспоминаний:
Джуном я получил первую серьезную задачу: обеспечить почти мгновенный показ ролика в приложении с любого места. С Faststart никто не работал, а реализация должна поддерживать старый тип отдачи контента. В итоге — видео у миллионов пользователей работает в 6 раз быстрее.
Дорос до миддла. Задача: улучшить алгоритм загрузки контента. Нужно написать с нуля логику кэширования, доскачивания и предзагрузки файлов. В итоге — число ретраев у пользователей снижается почти втрое.
В роли сеньора делал глубокую техническую аналитику, так как приложение монетизируется через рекламу. Android Vitals, Firebase, Fabric, Mixpanel не умели того, что нужно. Пишем свое и попутно оптимизируем: нативные крэши уменьшились в 10 раз, out of memory — в 15.
Если у тебя за плечами тоже есть сеньорские челленджи, обрати внимание на вакансию Android-разработчика от FUNCORP:
Senior Android Developer
CTO FUNCORP Дима Васильев собрал топ-3 своих воспоминаний:
Джуном я получил первую серьезную задачу: обеспечить почти мгновенный показ ролика в приложении с любого места. С Faststart никто не работал, а реализация должна поддерживать старый тип отдачи контента. В итоге — видео у миллионов пользователей работает в 6 раз быстрее.
Дорос до миддла. Задача: улучшить алгоритм загрузки контента. Нужно написать с нуля логику кэширования, доскачивания и предзагрузки файлов. В итоге — число ретраев у пользователей снижается почти втрое.
В роли сеньора делал глубокую техническую аналитику, так как приложение монетизируется через рекламу. Android Vitals, Firebase, Fabric, Mixpanel не умели того, что нужно. Пишем свое и попутно оптимизируем: нативные крэши уменьшились в 10 раз, out of memory — в 15.
Если у тебя за плечами тоже есть сеньорские челленджи, обрати внимание на вакансию Android-разработчика от FUNCORP:
Senior Android Developer
Сталкивались с тем, что информация о том, почему было принято то или иное архитектурное решение, со временем теряется? Держите подробную статью про Architecture Decision Records – практику записей и хранения ключевых архитектурных решений.
Medium
The Ultimate Guide to Architectural Decision Records
Introduction to ADRs with examples, templates, and managing tools
🔥 AvitoTech ищет Android-разработчиков…
…сразу в три команды кластера mobile!
Вот чем предстоит в них заниматься:
🏄♂️ Команда Speed: развивать системы сборки тестовый фреймворк, тестовый раннер, CI/CD-инфру и инструменты для автотестирования;
🎨 Команда Mobile Design System: работать над консистентностью UI, строить компонентную архитектуру, создавать элементы интерфейса и развивать backend-driven UI;
🏗 Команда Mobile Architecture: упрощать жизнь продуктовым разработчикам через создание гибкой, расширяемой архитектуры мобильных приложений.
Залетайте на сайт за подробностями: bit.ly/3zV9pl6
…сразу в три команды кластера mobile!
Вот чем предстоит в них заниматься:
🏄♂️ Команда Speed: развивать системы сборки тестовый фреймворк, тестовый раннер, CI/CD-инфру и инструменты для автотестирования;
🎨 Команда Mobile Design System: работать над консистентностью UI, строить компонентную архитектуру, создавать элементы интерфейса и развивать backend-driven UI;
🏗 Команда Mobile Architecture: упрощать жизнь продуктовым разработчикам через создание гибкой, расширяемой архитектуры мобильных приложений.
Залетайте на сайт за подробностями: bit.ly/3zV9pl6
avito.tech
Avito Cluster MOBILE
Присоединяйся к Avito Cluster Mobile. Развивай вместе с нами мобильную платформу в Авито, с помощью разработки и популяризации:общих архитектурных подходов, стандартов качества кода и поддержки общих платформенных библиотек.
Оффер в Яндекс за 2 дня 🚀
9-10 июля Яндекс проводит Weekend Offer для мобильных разработчиков, участники которого смогут присоединиться к командам Маркета, Еды, Такси и многих других сервисов.
Если у вас есть опыт коммерческой разработки на iOS, Android, Flutter от 3 лет — регистрируйтесь на сайте и решайте задачи предварительного этапа.
9 июля две онлайн-секции с кодом и уже на следующий день лучшие участники получат офферы от Яндекса.
9-10 июля Яндекс проводит Weekend Offer для мобильных разработчиков, участники которого смогут присоединиться к командам Маркета, Еды, Такси и многих других сервисов.
Если у вас есть опыт коммерческой разработки на iOS, Android, Flutter от 3 лет — регистрируйтесь на сайте и решайте задачи предварительного этапа.
9 июля две онлайн-секции с кодом и уже на следующий день лучшие участники получат офферы от Яндекса.
Оффер от Яндекса за выходные
9-10 июля Яндекс проводит Weekend Offer для мобильных разработчиков — мероприятие, на котором можно получить оффер от Яндекса за 2 дня.
Вышла библиотека Kotlin DataFrame, основная задача которой – удобный импорт структурированных данных из CSV/JSON и других форматов и предоставление DSL для операций над ними. Библиотека пригодится как тем, кто много работает с анализом данных, так и тем, кому просто пришлось разбирать большой и сложный JSON ответ от сервера.
The JetBrains Blog
Kotlin DataFrame Preview | The Kotlin Blog
TL;DR: We at the Kotlin team have developed a Kotlin library for data frames. Today we’re releasing its first public preview version. It provides a readable and powerful DSL for data wrangling and i/o
Один из необходимых скиллов для разработчика – умение учиться. Надеюсь, вы проходили тот самый курс “Learn how to learn” на Coursera, или читали книгу его автора, Барбары Оакли, “Думай как математик”. Если нет – обязательно положите себе это в бэклог, получите кучу пользы и удовольствия.
Еще один крутой способ прокачать этот навык – прийти на конференцию Podlodka Soft Skills Crew. В новом сезоне мы расскажем, как выстроить эффективный подход к самообучению – понять свои цели, построить план по их достижению, выбрать подходящие инструменты и встроить это в свою жизнь на уровне привычки. Все это присыпано воркшопами и разбором ваших собственных проблем, так что после конференции вы выйдете с планом, подходящим именно вам!
👉Конференция начинается 11 июля, залетайте с промокодом
Еще один крутой способ прокачать этот навык – прийти на конференцию Podlodka Soft Skills Crew. В новом сезоне мы расскажем, как выстроить эффективный подход к самообучению – понять свои цели, построить план по их достижению, выбрать подходящие инструменты и встроить это в свою жизнь на уровне привычки. Все это присыпано воркшопами и разбором ваших собственных проблем, так что после конференции вы выйдете с планом, подходящим именно вам!
👉Конференция начинается 11 июля, залетайте с промокодом
droidgr_learn2learn
!Coursera
Learning How to Learn: Powerful mental tools to help you master tough subjects
Unlock powerful learning techniques used by experts across disciplines. Discover how the brain learns, memory strategies, and ways to overcome procrastination. Enhance your skills with practical tips and research-backed methods. Available in multiple languages.
Вышел Kotlin 1.7.10. Это – хотфиксный релиз, исправляющий несколько мажорных проблем в 1.7.0. Полный список – тут.
GitHub
Release Kotlin 1.7.10 · JetBrains/kotlin
Changelog
Compiler
KT-52702 Invalid locals information when compiling kotlinx.collections.immutable with Kotlin 1.7.0-RC2
KT-52892 Disappeared specific builder inference resolution ambiguity error...
Compiler
KT-52702 Invalid locals information when compiling kotlinx.collections.immutable with Kotlin 1.7.0-RC2
KT-52892 Disappeared specific builder inference resolution ambiguity error...
Qiwi рассказывают, как работает их система диплинков, построенная на аннотациях и кодогенерации. Как бонус – в нее заложена генерация таблицы со всеми ссылками, которую использует команда маркетинга.
Хабр
We need to go deeper: диплинки и кодогенерация
Привет! Мы написали свою систему диплинков на основе кодогенерации. В этой статье поговорим, как мы упростили работу с диплинками и смогли отловить устаревшие, добавили мониторинг и как собрали все...
Google начали версионировать и релизить независимо друг от друга все компоненты Compose. Это особенно важно потому что это позволит сократить задержку между релизом новой версии Kotlin и новой версии Compose Compiler, поддерживающей его.
Android Developers Blog
Independent versioning of Jetpack Compose libraries
Posted by Jolanda Verhoef , Android Developer Relations Engineer Starting today, the various Jetpack Compose libraries will mo...
🤖Возвращаемся с новым сезоном Podlodka Android Crew!🤖
Стартуем 25 июля, тема сезона – "Android под капотом"!
Всю неделю с головой погружаемся в принципы работы технологий, с которыми мы работаем в Android-разработке каждый день!
⚡️Без базы никуда – посмотрим на менеджмент памяти Java и сборку мусора
⚡️Внутренности Android тоже не обойдем, начиная с устройства AOSP и заканчивая IPC
⚡️Хардкорно укопаемся в Kotlin, от компиляторных плагинов и KSP и до нюансов работы Kotlin Multiplatform
⚡️Все знают, что, нельзя не сделать сессию про Dagger, поэтому в его внутренности тоже посмотрим🗡
Будем разбираться фундаментально, ведь именно глубокое понимание платформы и её экосистемы помогает решать проблемы не наугад по привычно подсмотренным рецептам, а осознанно и с максимальной эффективностью!
😉И как всегда в Podlodka Crew все это на протяжении недели с крутыми спикерами, необычными нескучными форматами сессий, и живым комьюнити в Slack.
До следующего понедельника действует early-bird скидка, а билеты и подробности уже доступны на сайте. Ждем на борту!
Стартуем 25 июля, тема сезона – "Android под капотом"!
Всю неделю с головой погружаемся в принципы работы технологий, с которыми мы работаем в Android-разработке каждый день!
⚡️Без базы никуда – посмотрим на менеджмент памяти Java и сборку мусора
⚡️Внутренности Android тоже не обойдем, начиная с устройства AOSP и заканчивая IPC
⚡️Хардкорно укопаемся в Kotlin, от компиляторных плагинов и KSP и до нюансов работы Kotlin Multiplatform
⚡️Все знают, что, нельзя не сделать сессию про Dagger, поэтому в его внутренности тоже посмотрим🗡
Будем разбираться фундаментально, ведь именно глубокое понимание платформы и её экосистемы помогает решать проблемы не наугад по привычно подсмотренным рецептам, а осознанно и с максимальной эффективностью!
😉И как всегда в Podlodka Crew все это на протяжении недели с крутыми спикерами, необычными нескучными форматами сессий, и живым комьюнити в Slack.
До следующего понедельника действует early-bird скидка, а билеты и подробности уже доступны на сайте. Ждем на борту!
podlodka.io
Онлайн-конференция Podlodka Android Crew, сезон #13
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам Android-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Разбор всех этапов совершения сетевого вызова, способов их инструментации, сбора метрик перфоманса и различных способов оптимизации времени совершения запроса. Кейс интересен тем, что для авторов производительность сетевых запросов особенно важна – они делают приложение, основные пользователи которого живут в сельской местности в Индии со слабым сетевым соединением.
Medium
How OkCredit Android App boosted Network Performance by 30%
By instrumenting network calls on production and following best practices, we can make huge improvements to an app’s network performance…
В kotlin-coroutines 1.6 полностью переработан API для тестирования корутин. В этом гайде детально разбираются все изменения, а в этой статье – подробная инструкция по миграции на новый API.
Android Developers
Testing Kotlin coroutines on Android | Android Developers
Сегодня стартует ежегодный опрос про российские команды Android разработки, который я провожу уже шестой год! Скоро мы узнаем:
📖Как Android разработчики получают новые знания
💪Какие команды Android разработки самые сильные
🌎Сколько человек решило уехать, а сколько – остается в России
📖Какие книги больше всего рекомендуют прочесть
🏡Сколько мобильщиков работает удаленно, а сколько – в офисе
Результаты будут в публичном доступе где-то через месяц. Пока их ждете, можете почитать отчеты за прошлые годы.
⏩Пройдите опрос, пошарьте своей команде, ждите результатов!
📖Как Android разработчики получают новые знания
💪Какие команды Android разработки самые сильные
🌎Сколько человек решило уехать, а сколько – остается в России
📖Какие книги больше всего рекомендуют прочесть
🏡Сколько мобильщиков работает удаленно, а сколько – в офисе
Результаты будут в публичном доступе где-то через месяц. Пока их ждете, можете почитать отчеты за прошлые годы.
⏩Пройдите опрос, пошарьте своей команде, ждите результатов!
survey.alchemer.eu
Исследование российских команд Android разработки, 2022
Исследование российских команд Android разработки, 2022
.
.
Каждый разработчик в душе мечтает стать тимлидом, и не красить вьюшки самому, а смотреть, как это делают другие! Если вы руководите другими программистами, или отвечаете за крупные инженерные проекты, то подписывайтесь на мой канал Teamlead Good Reads. Каждый день я делюсь там одним топовым материалом про управление людьми, командами, и проектами. И даже не ленюсь расставлять хэштеги, так что сможете подтянуть свои знания и по старым материалам!
Telegram
Teamlead Good Reads – тимлиды, архитектура, менеджмент людей и разработки
Самые интересные статьи, видео и новости, связанные с управлением людьми, командами, разработкой и продуктами.
Размещение рекламы: @tanyasanovna
Папка лучших продуктовых каналов: https://t.me/addlist/YvmnHCHUp700Nzky
Размещение рекламы: @tanyasanovna
Папка лучших продуктовых каналов: https://t.me/addlist/YvmnHCHUp700Nzky
Разбор часто встречающихся причин memory leak’ов и способов борьбы с ними.
Medium
Performance Considerations for Memory Leaks: An Android Cookbook
A quick reference guide loosely based on “Programming Kotlin with Android: Programming Kotlin with Android”
Хорошая статья про то, как правильно организовывать MVVM архитектуру в КММ проекте с шарингом всего до уровня ViewModel.
Marco Gomiero
Improving shared architecture for a Kotlin Multiplatform, Jetpack Compose and SwiftUI app
A couple of years ago I started working on a pet project to manage personal finances, named MoneyFlow.
This project soon became a personal playground for a Kotlin Multiplatform mobile app and in a previous article, I journaled all the steps that lead me to…
This project soon became a personal playground for a Kotlin Multiplatform mobile app and in a previous article, I journaled all the steps that lead me to…
Подборка релизов прошлой недели
🤖Финальная Android 13 Beta
Полностью стабилизированы все фичи, которые войдут в релиз – так что сборка идеально подходит для тестирования совместимости вашего приложения с новой версией Android.
🐘Gradle 7.5
- Поддержка Java 18 и Groovy 4
- Улучшенные диагностические отчеты
- Улучшения в configuration cache
🧱MVIKotlin 3.0.0
- Новый экспериментальный Store DSL
- Возможность создавать Store из бэкграунд тредов
- Поддержка Apple Silicon
- Новое Time Travel приложение для десктопа и расширение для Chrome DevTools
🤖Финальная Android 13 Beta
Полностью стабилизированы все фичи, которые войдут в релиз – так что сборка идеально подходит для тестирования совместимости вашего приложения с новой версией Android.
🐘Gradle 7.5
- Поддержка Java 18 и Groovy 4
- Улучшенные диагностические отчеты
- Улучшения в configuration cache
🧱MVIKotlin 3.0.0
- Новый экспериментальный Store DSL
- Возможность создавать Store из бэкграунд тредов
- Поддержка Apple Silicon
- Новое Time Travel приложение для десктопа и расширение для Chrome DevTools
Android Developers Blog
Final Android 13 Beta update, official release is next!
Posted by Maru Ahues Bouza, Director, Android Developer Relations We’re just a few weeks away from the official release of Android 13...
Еще один скриншот нового легкого UI IntelliJ, который появится и в Android Studio.