В этом выпуске учет времени с помощью библиотеки Charts и анализ Android-фич на доступность и внедрение accessibility, что такое перерисовка и как с ней бороться, реализация кастомной прокрутки и бесплатный сервис Build Distribution, «Uber с пушками» от Никиты Бира, LLM на реальных задачах фриланса и многое другое. Заходите!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS
• Как мы «рисовали» учет времени на iOS с помощью библиотеки Charts
• Осваиваем скроллинг в SwiftUI: реализация кастомной прокрутки
• Под капотом у пользовательского интерфейса SwiftUI — Детальный разбор: Часть 1 — UIKit
• Как мы из России опубликовали платное приложение в App Store
• Магазин игр Aptoide запустился на iOS в Европе
•
Detecting documents in an image with the Vision framework
•
SwiftUI — Navigation View If Needed
•
SwiftLint 101: Streamline Your Swift Code Quality
•
How to use SceneDelegate in SwiftUI
•
Presenting and Managing Expandable Sections in SwiftUI
•
Yielding and debouncing in Swift Concurrency
•
Enabling Interaction with Table View in SwiftUI
•
Selective testing for all Xcode projects
•
Make your social apps pop with Link Presentation
•
async let vs Task group
•
Distorted Audio when recording external microphones using AVCaptureSession
•
Creating Custom SF Symbols
•
Hiding the Keyboard Using FocusState in SwiftUI
•
SwiftUI Maps — iOS 17 — Look Around, User Location, Directions, Markers & Annotations, Map Styles
•
Create a Custom SwiftUI Calendar with Dynamic Time and Gestures
•
Animation Challenge: Number Pad With Animated Text Effects — SwiftUI
•
Enhancing the Custom Help System in SwiftUI Without Breaking Existing Projects
•
Monal — открытый XMPP-клиент
•
Fluent — ORM для NoSQL и SQL баз данных
Android
• Очумелые ручки: как я превратил старый смартфон в игровую консоль с возможностью звонить
• Сколько потоков использует ваш сетевой клиент?
• Анализ Android-фич на доступность и внедрение accessibility в процесс разработки
• Что такое перерисовка и как с ней бороться
• Шпаргалка: как выглядит Kotlin Coroutine без макияжа
• Kotlin Coroutines под капотом: CoroutineContext и CoroutineScope
• R8: Шакалья работа (уменьшение apk через правки R8)
• Погружаемся в мир технологий Яндекс Переводчика
• Мок собеседование Android разработчика в Контур: архитектура и кодинг приложения
• Amazon прекращает работу Appstore на Android
• Google запустил TrustedTime API
•
Brushed Metal UI in Jetpack Compose
•
Using Ktor In Jetpack Compose
•
Navigating the Challenges of Scoped Storage: Lessons for Modern Android Apps
•
Be Mine and Add Interaction with Compose and Canvas
•
From Frustration to Efficiency: How I Reduced Android Compilation Time by 70%
•
Hints in Compose
•
Not another Clean Architecture article… A master/details app study case
•
Loading Initial Data properly with MVI
•
Kotlin Guards Explained: Boost Code Clarity with when Statements in Kotlin 2.1
•
MVVM vs MVI Architecture in Android: A Comprehensive Comparison
•
Compose for TV | Jetpack Compose Tips
•
All Classes In Kotlin Explained
•
3 Ways How Attackers Can Reverse Engineer Your Android App •
•
SongSync — тексты песен для вашей библиотеки
•
KMP Liquid Slider — слайдер на Jetpack Compose
•
Sketch Image Loader — библиотека загрузки изображений для Compose Multiplatform и Android View
Кроссплатформа
• Секреты мобильной разработки в логистике: разгоняем MVVM до максимума
• Приватный финансовый менеджер inCourse на React Native. Опыт разработки
• Flutter 3.29 — Что нового во Flutter?
• Такие разные Slivers. Часть 5: аналоги обычных виджетов
•
Kotlin Multiplatform Architecture Best Practices for Mobile Apps
•
Build an Imitation Mac Dock With Flutter
•
Building a Space Flight News App with Compose Multiplatform for Android, iOS, and Desktop
•
Mastering Flutter Layouts: Why CustomMultiChildLayout Beats Stack
•
Flutter: How to Remove Singletons from your App and Why?
•
Serverpod raises €2.7 million to help developers level up their applications
•
Flutter State Management: Choosing the Right Approach
•
Building KMP Libraries: The RevenueCat Story
•
Building a Flutter Map App: Handling Location, Permissions & App Lifecycle
Разработка
• Вакансии в области программной инженерии достигли пятилетнего минимума?
• Emerge Tools запустил бесплатный сервис Build Distribution
• Как мы сокращали размер JSONʼа в SDUI
• Valve выпустила исходники Team Fortress 2
• Из веб-тестировщиков в мобильные: инсайты для тех, кто задумался о переходе
• Передаём данные с мобильных устройств в сервисы через каналы радиосвязи
• Аккаунт разработчика Google Play Console и Apple Developer. Как создать из России 2025. Пошаговая инструкция регистрации
• Что такое Mockito и как его использовать
• Оптимизируем релиз мобильного приложения: что получилось, а что нет
• Aнтoн Нaзaров и Анастасия Чупова — Кофе и Код
• За что тебя могут уволить в IT
• Pkl — язык программирования для конфигураций от Apple
• Приложение-калькулятор? Да каждый может написать такое
• VK Education открывает набор на бесплатные образовательные программы в IT и digital
• Конец программирования в том виде, в котором мы его знаем
•
Software Quality
•
Patterns for building realtime features
•
My Approach to Building Large Technical Projects
•
I’m glad AI didn’t exist when I learned to code
•
You can’t call yourself a senior until you’ve worked on a legacy project
•
Embracing passwordless authentication with Grab’s Passkey
•
How AI generated code accelerates technical debt
•
AI Killed The Tech Interview. Now What?
Аналитика, маркетинг и монетизация
• Riley — приложение с искусственным интеллектом для молодых родителей
• RuStore предоставит разработчикам новые инструменты продвижения приложений
• Protector — «Uber с пушками» от Никиты Бира
• Покупки в Google Play Books на iOS теперь осуществляются на сайте
• Niantic продает Pokémon Go
• Как изменился рекламный фрод в 2024 году и какие угрозы ждут индустрию?
• Polymath стремится сделать изучение математики таким же увлекательным, как Minecraft
• LinkedIn — самая высокодоходная социальная платформа на данный момент
•
How we accidentally discovered product market fit and why it turned out to be a bad thing
•
When Getting Sherlocked Leads to Something Better: The TranslateKit Journey
AI, Устройства, IoT
• Подключение самодельных устройств к умному дому Яндекса с Алисой
• KasperskyOS Community Edition SDK: что это за система и как попробовать ее в деле
• Бенчмарк OpenAI протестировал LLM на реальных задачах фриланса
• Автоматизация шлагбаума. Или что делать, когда готового решения нет на рынке
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.

• Как мы «рисовали» учет времени на iOS с помощью библиотеки Charts
• Осваиваем скроллинг в SwiftUI: реализация кастомной прокрутки
• Под капотом у пользовательского интерфейса SwiftUI — Детальный разбор: Часть 1 — UIKit
• Как мы из России опубликовали платное приложение в App Store
• Магазин игр Aptoide запустился на iOS в Европе
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Очумелые ручки: как я превратил старый смартфон в игровую консоль с возможностью звонить
• Сколько потоков использует ваш сетевой клиент?
• Анализ Android-фич на доступность и внедрение accessibility в процесс разработки
• Что такое перерисовка и как с ней бороться
• Шпаргалка: как выглядит Kotlin Coroutine без макияжа
• Kotlin Coroutines под капотом: CoroutineContext и CoroutineScope
• R8: Шакалья работа (уменьшение apk через правки R8)
• Погружаемся в мир технологий Яндекс Переводчика
• Мок собеседование Android разработчика в Контур: архитектура и кодинг приложения
• Amazon прекращает работу Appstore на Android
• Google запустил TrustedTime API
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Секреты мобильной разработки в логистике: разгоняем MVVM до максимума
• Приватный финансовый менеджер inCourse на React Native. Опыт разработки
• Flutter 3.29 — Что нового во Flutter?
• Такие разные Slivers. Часть 5: аналоги обычных виджетов
•

•

•

•

•

•

•

•

•


• Вакансии в области программной инженерии достигли пятилетнего минимума?
• Emerge Tools запустил бесплатный сервис Build Distribution
• Как мы сокращали размер JSONʼа в SDUI
• Valve выпустила исходники Team Fortress 2
• Из веб-тестировщиков в мобильные: инсайты для тех, кто задумался о переходе
• Передаём данные с мобильных устройств в сервисы через каналы радиосвязи
• Аккаунт разработчика Google Play Console и Apple Developer. Как создать из России 2025. Пошаговая инструкция регистрации
• Что такое Mockito и как его использовать
• Оптимизируем релиз мобильного приложения: что получилось, а что нет
• Aнтoн Нaзaров и Анастасия Чупова — Кофе и Код
• За что тебя могут уволить в IT
• Pkl — язык программирования для конфигураций от Apple
• Приложение-калькулятор? Да каждый может написать такое
• VK Education открывает набор на бесплатные образовательные программы в IT и digital
• Конец программирования в том виде, в котором мы его знаем
•

•

•

•

•

•

•

•


• Riley — приложение с искусственным интеллектом для молодых родителей
• RuStore предоставит разработчикам новые инструменты продвижения приложений
• Protector — «Uber с пушками» от Никиты Бира
• Покупки в Google Play Books на iOS теперь осуществляются на сайте
• Niantic продает Pokémon Go
• Как изменился рекламный фрод в 2024 году и какие угрозы ждут индустрию?
• Polymath стремится сделать изучение математики таким же увлекательным, как Minecraft
• LinkedIn — самая высокодоходная социальная платформа на данный момент
•

•


• Подключение самодельных устройств к умному дому Яндекса с Алисой
• KasperskyOS Community Edition SDK: что это за система и как попробовать ее в деле
• Бенчмарк OpenAI протестировал LLM на реальных задачах фриланса
• Автоматизация шлагбаума. Или что делать, когда готового решения нет на рынке
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.