В этом дайджесте сторонние загрузки в iOS и ускорение дебага на Android, схемы кампусов и неочевидные палки в колеса, свои “Герои”, артефакты пришельцев в вашем коде, руководство для начинающих по автономным агентам и многое другое.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

iOS
• Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи
• Coffee&Code #4: Анастасия Улитина (Amazon Prime Video)
• SKAdNetwork 4.0 для приложений с подписками
• Пользователи iOS смогут менять оплату подписки прямо из приложений
• Apple готовит множество приложений для AR/VR-гарнитуры
• iOS 17, как сообщается, создаст условия для сторонней загрузки приложений
•
An Autopsy of SKEmitterNode (With a Conversion to SwiftUI)
•
The “some” keyword in Swift
•
Understanding the Role of Expressions in Swift Programming
•
Understanding unstructured and detached tasks in Swift
•
Apple’s Hello animation
•
Don’t Destroy Swift’s Performance with These mistakes
•
Implement Your First Swift Package Build Plugin
•
Cryptography in iOS Applications: Techniques and Code Examples
•
Deeplink URL handling in SwiftUI
•
Preparing My App for Swift 6
•
Handling Network calls in Swift with Moya
•
How the relative size modifier interacts with stack views
•
Presenting Expandable Text Fields In SwiftUI
•
Recreate Adobe AfterEffects With SFX Using SwiftUI
•
ImageRenderer in SwiftUI
•
2,000 Imports: Organizing My Apps’ SwiftPM Modules
•
How Senior iOS Engineers Style Code: Performance And Clarity
•
How I would solve the Facebook iOS App Design Interview
•
HealthGPT: запросы на естественном языке к Apple Health
•
Mockingbird: фреймворк мокирования для Swift и Objective-C
Android
• Ускоряем дебаг в разы. Зачем и как использовать брейкпоинты
• Собеседование Middle Android разработчика
• Схема кампуса в Android приложении
• Запускаем Android Emulator на процессорах AMD под управлением Windows 10/11 Home
• Пишем Android-приложение с ChatGPT
• Ultron — самый простой фреймворк для разработки UI тестов Android
• CustomView Android. Кольцевая диаграмма для отображения статистики
• Написали UI для чата поддержки с помощью Jetpack Compose: как это было
• Берём Glance Widgets под контроль
• Что нового в Android и куда нас приведут нейронки
• Google Play будет автоматически предлагать обновить сбоящие приложения
• Android 13 вдвое увеличил распространение с января
•
Главный доклад KotlinConf 2023
•
Random Musings on the Android 14 Developer Beta 1
•
Drawing edge to edge in Jetpack Compose
•
Synking all the things with CRDTs: Local first development
•
Bump version code for Android apps using GitHub Actions
•
Hey Google, It’s Your Bug!
•
Create your own Gradle Tasks and Plugins in less than 10 minutes
•
3 Common Ways To Retry Network Requests Automatically in Android
•
10 Useful Kotlin Extension Functions for Simplifying Your Code
•
Sharesheet custom actions — Android14
•
Android modularization from MVP to Enterprise
•
Improvements and Changes to Compose’s Pointer Input
•
An Android Studio Template Project for Your Android Apps
•
Improvements and Changes to Compose’s Pointer Input
•
Level Up your Bottom Navigation with Lottie Animations
•
Bazel: The Revolutionary Build System for Android App Development
•
Supercharge your (Android) terminal experience
•
State Flow and Shared Flow in Kotlin
•
The Shape of Things to Come
•
Ultron: простое UI-тестирование для Android
•
Redukks: Redux/Uniflow для Kotlin Multiplatform
Кроссплатформа
• Почему так удобно использовать паттерн MVI в KMM
• Как мы стриминг пилили, или 5 неочевидных палок в колеса от Flutter
• Почему вам стоит использовать Unity Simulator при разработке под мобильные платформы
• Создаем клон Instagram при помощи Flutter и Feeds. Часть 2
•
Google’s Recommended Flutter App State Management
•
React Native’s New Architecture: A New Era of Performance
•
Records & Patterns — Dart | Flutter ????
•
Redukks: Redux/Uniflow для Kotlin Multiplatform
•
Can React Native Close the Performance Gap? A Dive into C++ Turbo Native Modules
•
How to Use Mixin to Create Reusable Multi Selection Logic
•
Understanding KMM: Beginners guide
•
Visual Studio Code Extensions to Improve Your Flutter App Development
Разработка
• О, «Герои»? Дайте две! Как я писал очередной браузерный клон легендарной стратегии, в который уже почти* можно играть
• Как Slack отправляет миллионы сообщений в режиме реального времени
• GraphQL: от восторга до разочарования
• Требования к графическим интерфейсам: одна памятка ответит на все ваши вопросы
• Intern Meetup Week. Mobile
• $45 млн в Серии А: Ditto — база данных для мобильных, веб, IoT и серверных приложений
• $53 млн в Серии D: Odeko — платформа для кофеен
• Секрет идеально сбалансированных пустых пространств
• Артефакты пришельцев
• Apache EventMesh стал проектом верхнего уровня
•
When Can I Call Myself a Senior Developer?
•
Mastering the Amazon Interview: A Comprehensive Guide to Amazon’s 16 Leadership Principles
•
Protecting Your API from App Impersonation: Token Hijacking Guide and Mitigation of JWT Theft
•
Onboarding: 10 Tips for Designing the Great UX
•
I asked this system design question to 3 guys during a developer interview and none of them gave the answer
•
Software Architecture Is For Suckers
•
Firebase Firestore — List of Essential Security Rules
•
Cheetah: ИИ-помощник в прохождении интервью
Аналитика, маркетинг и монетизация
• Sega покупает Rovio
• В RuStore появилась авторизация через Tinkoff ID и мгновенная оплата с Tinkoff Pay
• Google предложит альтернативные системы оплаты в Великобритании
• Marvel Move — фитнес с супергероями
• BeReal продолжает расти
• Самые скачиваемые приложения в марте 2023
AI, Устройства, IoT
• Полное руководство для начинающих по автономным агентам
• ChatGPT — лучший помощник программиста. Примеры реальных задач. Плагины и инструменты
• Осваивают ли LLM модели мира, или лишь поверхностную статистику?
• Как мы перепридумали сценарии умного дома для Zigbee-устройств
• Ещё один Хаброметр
• Kandinsky создаёт игры
• Кормушка для собак с интеграцией Bitcoin и Lightning Network
• Потоковый проект в режиме реального времени с использованием данных смартфона
• Новые устройства Яндекса для умного дома
•
List of Open Sourced Fine-Tuned Large Language Models (LLM)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

iOS• Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи
• Coffee&Code #4: Анастасия Улитина (Amazon Prime Video)
• SKAdNetwork 4.0 для приложений с подписками
• Пользователи iOS смогут менять оплату подписки прямо из приложений
• Apple готовит множество приложений для AR/VR-гарнитуры
• iOS 17, как сообщается, создаст условия для сторонней загрузки приложений
Марк Гурман из Блумберг докладывает, что в iOS 17, которую скоро презентуют на WWDC, сделают решение для сторонней загрузки приложений. Как и когда это начнет работать неизвестно (а может и вообще не начнет), но в Европе в 2024 вступает в силу Закон о цифровых рынках, так что, видимо, это крайний срок для реализации задуманного.• Цикломатическая сложность в Swift
•
An Autopsy of SKEmitterNode (With a Conversion to SwiftUI)•
The “some” keyword in Swift•
Understanding the Role of Expressions in Swift Programming•
Understanding unstructured and detached tasks in Swift•
Apple’s Hello animation•
Don’t Destroy Swift’s Performance with These mistakes•
Implement Your First Swift Package Build Plugin•
Cryptography in iOS Applications: Techniques and Code Examples•
Deeplink URL handling in SwiftUI•
Preparing My App for Swift 6•
Handling Network calls in Swift with Moya•
How the relative size modifier interacts with stack views•
Presenting Expandable Text Fields In SwiftUI•
Recreate Adobe AfterEffects With SFX Using SwiftUI•
ImageRenderer in SwiftUI•
2,000 Imports: Organizing My Apps’ SwiftPM Modules•
How Senior iOS Engineers Style Code: Performance And Clarity•
How I would solve the Facebook iOS App Design Interview•
HealthGPT: запросы на естественном языке к Apple Health•
Mockingbird: фреймворк мокирования для Swift и Objective-C
Android• Ускоряем дебаг в разы. Зачем и как использовать брейкпоинты
• Собеседование Middle Android разработчика
• Схема кампуса в Android приложении
• Запускаем Android Emulator на процессорах AMD под управлением Windows 10/11 Home
• Пишем Android-приложение с ChatGPT
• Ultron — самый простой фреймворк для разработки UI тестов Android
• CustomView Android. Кольцевая диаграмма для отображения статистики
• Написали UI для чата поддержки с помощью Jetpack Compose: как это было
• Берём Glance Widgets под контроль
• Что нового в Android и куда нас приведут нейронки
• Google Play будет автоматически предлагать обновить сбоящие приложения
• Android 13 вдвое увеличил распространение с января
•
Главный доклад KotlinConf 2023•
Random Musings on the Android 14 Developer Beta 1•
Drawing edge to edge in Jetpack Compose•
Synking all the things with CRDTs: Local first development•
Bump version code for Android apps using GitHub Actions•
Hey Google, It’s Your Bug!•
Create your own Gradle Tasks and Plugins in less than 10 minutes•
3 Common Ways To Retry Network Requests Automatically in Android•
10 Useful Kotlin Extension Functions for Simplifying Your Code•
Sharesheet custom actions — Android14•
Android modularization from MVP to Enterprise•
Improvements and Changes to Compose’s Pointer Input•
An Android Studio Template Project for Your Android Apps•
Improvements and Changes to Compose’s Pointer Input•
Level Up your Bottom Navigation with Lottie Animations•
Bazel: The Revolutionary Build System for Android App Development•
Supercharge your (Android) terminal experience•
State Flow and Shared Flow in Kotlin•
The Shape of Things to Come•
Ultron: простое UI-тестирование для Android•
Redukks: Redux/Uniflow для Kotlin Multiplatform
Кроссплатформа• Почему так удобно использовать паттерн MVI в KMM
• Как мы стриминг пилили, или 5 неочевидных палок в колеса от Flutter
• Почему вам стоит использовать Unity Simulator при разработке под мобильные платформы
• Создаем клон Instagram при помощи Flutter и Feeds. Часть 2
•
Google’s Recommended Flutter App State Management•
React Native’s New Architecture: A New Era of Performance•
Records & Patterns — Dart | Flutter ????•
Redukks: Redux/Uniflow для Kotlin Multiplatform•
Can React Native Close the Performance Gap? A Dive into C++ Turbo Native Modules•
How to Use Mixin to Create Reusable Multi Selection Logic•
Understanding KMM: Beginners guide•
Visual Studio Code Extensions to Improve Your Flutter App Development
Разработка• О, «Герои»? Дайте две! Как я писал очередной браузерный клон легендарной стратегии, в который уже почти* можно играть
• Как Slack отправляет миллионы сообщений в режиме реального времени
• GraphQL: от восторга до разочарования
• Требования к графическим интерфейсам: одна памятка ответит на все ваши вопросы
• Intern Meetup Week. Mobile
• $45 млн в Серии А: Ditto — база данных для мобильных, веб, IoT и серверных приложений
• $53 млн в Серии D: Odeko — платформа для кофеен
• Секрет идеально сбалансированных пустых пространств
• Артефакты пришельцев
• Apache EventMesh стал проектом верхнего уровня
•
When Can I Call Myself a Senior Developer?•
Mastering the Amazon Interview: A Comprehensive Guide to Amazon’s 16 Leadership Principles•
Protecting Your API from App Impersonation: Token Hijacking Guide and Mitigation of JWT Theft•
Onboarding: 10 Tips for Designing the Great UX•
I asked this system design question to 3 guys during a developer interview and none of them gave the answer•
Software Architecture Is For Suckers•
Firebase Firestore — List of Essential Security Rules•
Cheetah: ИИ-помощник в прохождении интервью
Аналитика, маркетинг и монетизация• Sega покупает Rovio
Про покупку Rovio не могу не процитировать Александра Горного: «Есть популярная история с бизнес-тренингов: Angry Birds это сорок-какая-то игра из тех, что делали Rovio. Все провалились, одна взлетела. И вывод – нет везения, есть работа, пробуйте-пробуйте-пробуйте, и у вас обязательно получится мегахит. Сейчас, после продажи студии, подумалось, что у истории вышло продолжение. Вот они уже десять с лишним лет после первого успеха пытаются выпустить второй хит. Ресурсов стало непредставимо больше, попыток наверняка было больше сорока. Результат – ноль. Не работает работа, нужно везение». И что: ничего не работает ☹️• Airbnb: 5 продуктовых уроков о том, как вводить новые функции
• В RuStore появилась авторизация через Tinkoff ID и мгновенная оплата с Tinkoff Pay
• Google предложит альтернативные системы оплаты в Великобритании
• Marvel Move — фитнес с супергероями
И что: еще пример Zombies, Run! показал, как интересно можно дополнить любое занятие нарративом. А как ваш продукт можно улучшить рассказами о зомби? А если зомби заменить супергероями, то можно сразу х2 к цене ставить.• Winamp возвращается с новыми приложениями
• BeReal продолжает расти
• Самые скачиваемые приложения в марте 2023
AI, Устройства, IoT• Полное руководство для начинающих по автономным агентам
• ChatGPT — лучший помощник программиста. Примеры реальных задач. Плагины и инструменты
• Осваивают ли LLM модели мира, или лишь поверхностную статистику?
• Как мы перепридумали сценарии умного дома для Zigbee-устройств
• Ещё один Хаброметр
• Kandinsky создаёт игры
• Кормушка для собак с интеграцией Bitcoin и Lightning Network
• Потоковый проект в режиме реального времени с использованием данных смартфона
• Новые устройства Яндекса для умного дома
•
List of Open Sourced Fine-Tuned Large Language Models (LLM)← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
awesome_a
Здравствуйте, можно вас попросить поменять плагиат в вашей статье на оригинал?
Речь про "3 Common Ways To Retry Network Requests Automatically in Android".
Плагиат (Mar 21): https://medium.com/@manuchekhrdev/3-ways-to-retry-network-requests-automatically-in-android-15245ffa0ead
Оригинал (Mar 14): https://medium.com/mobilepeople/how-to-retry-network-requests-automatically-in-android-kotlin-64dcafb7f294