Продолжение истории внедрения 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…
Android-разработчик Delivery Club рассказывает, как грамотно работать с отменами долгих операций. В новой статье разбираются все состояния корутин и методы написания кода на каждом статусе. Бонусом вы узнаете про выборочную отмену состояний, функционал расширения ensureActive, прерывания и многое другое.
Подробнее читайте по ссылке.
Подробнее читайте по ссылке.
Хабр
Отменяем операции правильно на примере корутин
Всем привет! Меня зовут Павел, я Android-разработчик в Delivery Club. Моя команда разрабатывает функциональность доставки продуктов из магазинов. Я расскажу о подходе к написанию кода,...
Продолжение цикла статей от команды Slack про то, как они полностью переписали свои мобильные приложения. В этой части они рассказывают как:
📌Обновили стек зависимостей на более современный: Gson > Moshi, Android Priority Job Queue > WorkManager
📌Начали экспериментировать с внедрением корутин и Jetpack Compose
Кроме рассказа про конкретные фичи, команда делится и метриками результатов:
🥰54% разработчиков strongly agree с тем, что скорость разработки выросла
⏰Time to merge уменьшился на 30%
📊Процент Kotlin кода – 92%
📌Обновили стек зависимостей на более современный: Gson > Moshi, Android Priority Job Queue > WorkManager
📌Начали экспериментировать с внедрением корутин и Jetpack Compose
Кроме рассказа про конкретные фичи, команда делится и метриками результатов:
🥰54% разработчиков strongly agree с тем, что скорость разработки выросла
⏰Time to merge уменьшился на 30%
📊Процент Kotlin кода – 92%
Slack Engineering
Scaling Slack’s Mobile Codebases: Modernization - Slack Engineering
In the first two posts about the Duplo initiative, we described why we decided to revamp our mobile codebases, the initial phase to clean up tech debt, and our efforts to modularize our iOS and Android codebases (post 1, post 2). In this final post, we will…
WorkManager – отличное решение для реализации работы в бэкграунде. Но из-за того, что он живет вне жизненного цикла приложения, можно наткнуться на различные необычные креши. В статье проводятся эксперименты по крешам внутри WorkManager, изучаются полученные ошибки и даются советы как избежать таких проблем.
Jeroen Mols
The curious case of crashing Workers
WorkManager is great to schedule background work on Android. However, since scheduled work lives outside of the app lifecycle, you might run into unexpected crashes.
Разбор потенциального вектора supply chain атаки на Android приложения через подмену gradle-wrapper на вредоносный пропатченный jar.
JD Porterfield | Articles
The Importance of Validating the Gradle Wrapper
Protecting your projects from malicious gradle wrappers can be straight-forward, find out how in this article!
Qiwi рассказывают про то, как в их приложении используются feature flags, и про детали реализации библиотеки для работы с ними.
Хабр
Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
Привет, Хабр! Меня зовут Василий Материкин, я — Android-разработчик в QIWI. В этом посте я расскажу о применении фича-флагов в QIWI Кошельке. Внедрение Trunk-Based Development и Feature Flags В...
Вышла новая версия Android Studio – Chipmunk. Ключевое в релизе – фокус на стабильность и исправление многих багов и переезд на новую версию IntelliJ, что само по себе приносит тонну улучшений.
Android Developers Blog
Android Studio Chipmunk
Posted by Paris Hsu, Product & Design, Android; Takeshi Hagikura, Developer Relations Engineer, Android Today, we are thrill...
Вышел Flutter 3! Из основных хайлайтов:
📌Релиз стабильной версии Flutter для всех десктопных платформ: Windows, macOS, Linux
📌Поддержка Material 3
📌Поддержка 120 hz рендера на iOS
📌Двойное ускорение декодирования изображений на вебе
📌Новый API жизненного цикла web приложений
📌Обновление линтера до 2.0 с кучей новых проверок
📌Релиз стабильной версии Flutter для всех десктопных платформ: Windows, macOS, Linux
📌Поддержка Material 3
📌Поддержка 120 hz рендера на iOS
📌Двойное ускорение декодирования изображений на вебе
📌Новый API жизненного цикла web приложений
📌Обновление линтера до 2.0 с кучей новых проверок
Medium
What’s new in Flutter 3
Deep dive into our latest release, including macOS and Linux stable, performance improvements, and more!
Небольшой хинт по тому, как сделать работу в Android Studio немного более продуктивной. Вы можете отключить отображение в код комплишне тех API, которые вы точно никогда не планируете использовать. Для этого перейдите в Preferences > Editor > General > Auto Import, и настройте конфиг под себя.
www.jetpackcompose.app
Here's a productivity hack to save tens of engineering hours* when working with Jetpack Compose!
⏳ Learn about a simple trick that will save you many engineering hours when working with Jetpack Compose!