В новом выпуске быстрый старт и дело правительства США против Apple, цена Чистой Архитектуры и Android 15 Developer Preview 2, современный способ организации зависимостей, сила последовательности, топ быстрорастущих приложений в России в марте и многое другое.
Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

 iOS
 iOS
• Быстрый старт, или Как ускорить запуск iOS-приложений
• YandexMapKit и SwiftUI: обратный геокодинг
• Интерактивные виджет-подборки в Иви (iOS)
• Путь iOS-разработчика: как я много собеседовался и попал на стажировку
• Разработка под Apple Vision Pro
• Как встроить в TextField индикатор загрузки и кастомную View
• США подали в суд на Apple за незаконную монополию
• ЕС присматривается к Core Technology Fee
• Поваренная книга SwiftUI: тексты и шрифты — часть 1
• Apple может лицензировать ИИ-модели Google или OpenAI
• Swift Tooling: Windows Edition
 Swift Tooling: Windows Edition
• If you use UserDefaults in an app
 If you use UserDefaults in an app
• SwiftUI Tasks Blocking the MainActor
 SwiftUI Tasks Blocking the MainActor
• Store a codable model into AppStorage
 Store a codable model into AppStorage
• Oh Sh*t, My App is Successful and I Didn’t Think About Accessibility
 Oh Sh*t, My App is Successful and I Didn’t Think About Accessibility
• Customizing a Chart in Swift Charts
 Customizing a Chart in Swift Charts
• How to support dark mode in SwiftUI programmatically
 How to support dark mode in SwiftUI programmatically
• How SwiftUI & Concurrency Could Forward Fix Their Issues
 How SwiftUI & Concurrency Could Forward Fix Their Issues
• How to migrate an iOS app to Bazel
 How to migrate an iOS app to Bazel
• XCUITest + SauceLabs + GitHub Actions = Incredible Mobile iOS CI/CD Automation
 XCUITest + SauceLabs + GitHub Actions = Incredible Mobile iOS CI/CD Automation
• Async Unit Testing: The Comprehensive Guide
 Async Unit Testing: The Comprehensive Guide
• Mockirinha — a approach to write unit test for API requests
 Mockirinha — a approach to write unit test for API requests
• Getting Started with Structured Concurrency in Swift
 Getting Started with Structured Concurrency in Swift
• Optimizing UI Testing Efficiency with Page Object Model
 Optimizing UI Testing Efficiency with Page Object Model
• Our journey with Swift thus far — some notes and reflections
 Our journey with Swift thus far — some notes and reflections
• SwiftUI-Container View’s hierarchy
 SwiftUI-Container View’s hierarchy
• Prompt to code in Xcode with Claude 3
 Prompt to code in Xcode with Claude 3
• How to link to native type extensions in DocC
 How to link to native type extensions in DocC
• Tuist-ing TravelPerks iOS app for Faster Build Times
 Tuist-ing TravelPerks iOS app for Faster Build Times
• Your How-To Guide for Implementing Image Cropping and Rotating in iOS
 Your How-To Guide for Implementing Image Cropping and Rotating in iOS
• Hacking Disneyland’s App to fix a Freeze
 Hacking Disneyland’s App to fix a Freeze
• JSON Parsing With Pagination
 JSON Parsing With Pagination
• Build 3D content for visionOS Apps
 Build 3D content for visionOS Apps
• Long Press Button With Progress Bar
 Long Press Button With Progress Bar
• Create a 3D shiny card in SwiftUI
 Create a 3D shiny card in SwiftUI
• Sign In With Apple — Firebase
 Sign In With Apple — Firebase
• SwiftUI Horizontal Wheel Picker
 SwiftUI Horizontal Wheel Picker
• JTAppleCalendar: библиотека календаря на Swift
 JTAppleCalendar: библиотека календаря на Swift
• Swiftfin: видеоплеер Jellyfin для iOS и tvOS
 Swiftfin: видеоплеер Jellyfin для iOS и tvOS
 Android
 Android
• Вы за это заплатите! Цена Чистой Архитектуры. Часть 1 + Часть 2
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 1
• Вышел Android 15 Developer Preview 2
• Разработка под Android в 2024 году
• Зачем в мобильной разработке использовать Flow, если есть мощный ChannelFlow?
• Android TOML. Просто о каталогах зависимостей в Android Studio
• Современный способ организации зависимостей в Android. Version catalog (TOML) и Gradle convention plugin
• Разработка новостного приложения. Часть 4
• Мапим данные из domain в ui модуль в многомодульном проекте
• Animations with Lookahead in Jetpack Compose
 Animations with Lookahead in Jetpack Compose
• Adding Ktlint to your Android project
 Adding Ktlint to your Android project
• Optimize App Performance By Mastering Stability in Jetpack Compose
 Optimize App Performance By Mastering Stability in Jetpack Compose
• The Ktor Roadmap for 2024
 The Ktor Roadmap for 2024
• Customize Clickables and Ripples
 Customize Clickables and Ripples
• Stressing the JVM GC on Android
 Stressing the JVM GC on Android
• Automating Android App Deployment to Firebase App Distribution With Fastlane
 Automating Android App Deployment to Firebase App Distribution With Fastlane
• Accessibility Checks with Jetpack Compose Previews
 Accessibility Checks with Jetpack Compose Previews
• Jetpack Compose needs a Design System layer
 Jetpack Compose needs a Design System layer
• Composition over Inheritance: My refactoring recipe
 Composition over Inheritance: My refactoring recipe
• @Composable Modifier vs composed factory in Jetpack Compose
 @Composable Modifier vs composed factory in Jetpack Compose
• Stop Passing Event/UI-Action Callbacks in Jetpack Compose
 Stop Passing Event/UI-Action Callbacks in Jetpack Compose
• Android Localization: List Formatter in Android
 Android Localization: List Formatter in Android
• Kotlin’s JDK release compatibility flag
 Kotlin’s JDK release compatibility flag
• Build Wear OS application using Jetpack Compose
 Build Wear OS application using Jetpack Compose
• Detecting Banker Malware Installed on Android Devices
 Detecting Banker Malware Installed on Android Devices
• Optimizing CI/CD Processes with Selective Testing
 Optimizing CI/CD Processes with Selective Testing
• Now in Android: 101 — Android 15 Developer Preview 2, TheAndroidShow, the Google I/O date, & more
 Now in Android: 101 — Android 15 Developer Preview 2, TheAndroidShow, the Google I/O date, & more
• How to Implement Biometric Auth in Your Android App
 How to Implement Biometric Auth in Your Android App
• This Is My FAVORITE Error Handling Class
 This Is My FAVORITE Error Handling Class
• Java vs. Kotlin: The Ultimate Showdown of Virtual Threads & Coroutines
 Java vs. Kotlin: The Ultimate Showdown of Virtual Threads & Coroutines
• Gramophone: музыкальный плеер на Media3 и Material Design
 Gramophone: музыкальный плеер на Media3 и Material Design
• Routine Tracker: календарь-планировщик для Android
 Routine Tracker: календарь-планировщик для Android
 Кроссплатформа
 Кроссплатформа
• ViewModel + Kotlin Multiplatform. Пробуем нативное решение
• Тестирование пользовательского интерфейса во Flutter
• Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3
• Рецепт приготовления кроссплатформенного мобильного видеоредактора
• Fixing FVM with an open source mindset
 Fixing FVM with an open source mindset
• Flutter & ML Kit 1.0: AI powered Apps
 Flutter & ML Kit 1.0: AI powered Apps
• How to use KMP library inside the Flutter plugin?
 How to use KMP library inside the Flutter plugin?
• The power of open-source. Making Maestro work better with Flutter
 The power of open-source. Making Maestro work better with Flutter
• Flutter-Clean Architecture
 Flutter-Clean Architecture
• Introducing the Redacted Widget for Flutter: Enhance Your Loading Experience!
 Introducing the Redacted Widget for Flutter: Enhance Your Loading Experience!
• Advanced Theming Techniques in Flutter: Leveraging Extensions for Dynamic UIs
 Advanced Theming Techniques in Flutter: Leveraging Extensions for Dynamic UIs
 Разработка
 Разработка
• Как растратить свою карьеру — один комфортный год за другим
• Перехват трафика мобильных приложений
• Сила последовательности в побочных проектах
• Как рождаются идеи pet-проектов?
• О вреде Test Driven Development
• Почему навигация в Google, Booking и Spotify именно такая, и какую лучше выбрать вам
• Собеседование по System Design: проектируем клон Авито
• Не работал в FAANG — не программист: полгода работы в Apple
• Программисты не нужны
• Как инсайт Netflix удвоил конверсию Gett
• GitHub предлагает автоматическое исправление уязвимостей в коде с помощью ИИ
• JetBrains запускает TeamCity Pipelines для упрощения работы с CI/CD
• Visual Studio App Center закрывается
• Interviewing at Staff+ level
 Interviewing at Staff+ level
• How Figma’s databases team lived to tell the scale
 How Figma’s databases team lived to tell the scale
• Vision Pro is an over-engineered «devkit»
 Vision Pro is an over-engineered «devkit»
• Make CI/CD Part of Your Development Flow With TeamCity Pipelines
 Make CI/CD Part of Your Development Flow With TeamCity Pipelines
• How Tinder Scaled to 1.6 Billion Swipes per Day
 How Tinder Scaled to 1.6 Billion Swipes per Day
• Empirically supported code review best practices
 Empirically supported code review best practices
• Tooltip: A small design element with a big UX impact
 Tooltip: A small design element with a big UX impact
• This is the moment to reinvent your product
 This is the moment to reinvent your product
• How to Solve 1000 Leetcode Problems in 300 Days?
 How to Solve 1000 Leetcode Problems in 300 Days?
• Will AI Devices Kill UX?
 Will AI Devices Kill UX?
• AutoDev: ИИ-помощник для разработки
 AutoDev: ИИ-помощник для разработки
• Shattered Pixel Dungeon: кроссплатформенный «рогалик»
 Shattered Pixel Dungeon: кроссплатформенный «рогалик»
 Аналитика, маркетинг и монетизация
 Аналитика, маркетинг и монетизация
• Приложение для ведения бюджета Copilot переживает бум после закрытия Mint
• Epic Games запускает магазин на iOS и Android
• Топ быстрорастущих приложений в России в марте
• Sensor Tower покупает data.ai
• Приложение Apple Sports не смогло опередить конкурентов
• Casual Gaming in 2024: Using Insights From 2023
 Casual Gaming in 2024: Using Insights From 2023
 AI, Устройства, IoT
 AI, Устройства, IoT
• Quantization Deep Dive, или Введение в современную квантизацию
• Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++
• Расчёт вкусов пользователя для ленты рекомендаций с применением item2vec-подхода
• Умный офис в «Москва-Сити» на Home Assistant: автоматизируем только нужное
• Демистифицируем машинное обучение – из разработчика в ML-инженеры
• Исследователи обнаружили неисправимую уязвимость в чипах Apple Silicon
• Google DeepMind разработал ИИ ассистента для футбола
• Лучшие механические клавиатуры 2024
• xAI Илона Маска открыл код ИИ-модели Grok
• Новый метод обучения ИИ от Apple сохраняет конфиденциальность
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

 iOS
 iOS• Быстрый старт, или Как ускорить запуск iOS-приложений
• YandexMapKit и SwiftUI: обратный геокодинг
• Интерактивные виджет-подборки в Иви (iOS)
• Путь iOS-разработчика: как я много собеседовался и попал на стажировку
• Разработка под Apple Vision Pro
• Как встроить в TextField индикатор загрузки и кастомную View
• США подали в суд на Apple за незаконную монополию
• ЕС присматривается к Core Technology Fee
• Поваренная книга SwiftUI: тексты и шрифты — часть 1
• Apple может лицензировать ИИ-модели Google или OpenAI
•
 Swift Tooling: Windows Edition
 Swift Tooling: Windows Edition•
 If you use UserDefaults in an app
 If you use UserDefaults in an app•
 SwiftUI Tasks Blocking the MainActor
 SwiftUI Tasks Blocking the MainActor•
 Store a codable model into AppStorage
 Store a codable model into AppStorage•
 Oh Sh*t, My App is Successful and I Didn’t Think About Accessibility
 Oh Sh*t, My App is Successful and I Didn’t Think About Accessibility•
 Customizing a Chart in Swift Charts
 Customizing a Chart in Swift Charts•
 How to support dark mode in SwiftUI programmatically
 How to support dark mode in SwiftUI programmatically•
 How SwiftUI & Concurrency Could Forward Fix Their Issues
 How SwiftUI & Concurrency Could Forward Fix Their Issues•
 How to migrate an iOS app to Bazel
 How to migrate an iOS app to Bazel•
 XCUITest + SauceLabs + GitHub Actions = Incredible Mobile iOS CI/CD Automation
 XCUITest + SauceLabs + GitHub Actions = Incredible Mobile iOS CI/CD Automation•
 Async Unit Testing: The Comprehensive Guide
 Async Unit Testing: The Comprehensive Guide•
 Mockirinha — a approach to write unit test for API requests
 Mockirinha — a approach to write unit test for API requests•
 Getting Started with Structured Concurrency in Swift
 Getting Started with Structured Concurrency in Swift•
 Optimizing UI Testing Efficiency with Page Object Model
 Optimizing UI Testing Efficiency with Page Object Model•
 Our journey with Swift thus far — some notes and reflections
 Our journey with Swift thus far — some notes and reflections•
 SwiftUI-Container View’s hierarchy
 SwiftUI-Container View’s hierarchy•
 Prompt to code in Xcode with Claude 3
 Prompt to code in Xcode with Claude 3•
 How to link to native type extensions in DocC
 How to link to native type extensions in DocC•
 Tuist-ing TravelPerks iOS app for Faster Build Times
 Tuist-ing TravelPerks iOS app for Faster Build Times•
 Your How-To Guide for Implementing Image Cropping and Rotating in iOS
 Your How-To Guide for Implementing Image Cropping and Rotating in iOS•
 Hacking Disneyland’s App to fix a Freeze
 Hacking Disneyland’s App to fix a Freeze•
 JSON Parsing With Pagination
 JSON Parsing With Pagination•
 Build 3D content for visionOS Apps
 Build 3D content for visionOS Apps•
 Long Press Button With Progress Bar
 Long Press Button With Progress Bar•
 Create a 3D shiny card in SwiftUI
 Create a 3D shiny card in SwiftUI•
 Sign In With Apple — Firebase
 Sign In With Apple — Firebase•
 SwiftUI Horizontal Wheel Picker
 SwiftUI Horizontal Wheel Picker•
 JTAppleCalendar: библиотека календаря на Swift
 JTAppleCalendar: библиотека календаря на Swift•
 Swiftfin: видеоплеер Jellyfin для iOS и tvOS
 Swiftfin: видеоплеер Jellyfin для iOS и tvOS Android
 Android• Вы за это заплатите! Цена Чистой Архитектуры. Часть 1 + Часть 2
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 1
• Вышел Android 15 Developer Preview 2
• Разработка под Android в 2024 году
• Зачем в мобильной разработке использовать Flow, если есть мощный ChannelFlow?
• Android TOML. Просто о каталогах зависимостей в Android Studio
• Современный способ организации зависимостей в Android. Version catalog (TOML) и Gradle convention plugin
• Разработка новостного приложения. Часть 4
• Мапим данные из domain в ui модуль в многомодульном проекте
•
 Animations with Lookahead in Jetpack Compose
 Animations with Lookahead in Jetpack Compose•
 Adding Ktlint to your Android project
 Adding Ktlint to your Android project•
 Optimize App Performance By Mastering Stability in Jetpack Compose
 Optimize App Performance By Mastering Stability in Jetpack Compose•
 The Ktor Roadmap for 2024
 The Ktor Roadmap for 2024•
 Customize Clickables and Ripples
 Customize Clickables and Ripples•
 Stressing the JVM GC on Android
 Stressing the JVM GC on Android•
 Automating Android App Deployment to Firebase App Distribution With Fastlane
 Automating Android App Deployment to Firebase App Distribution With Fastlane•
 Accessibility Checks with Jetpack Compose Previews
 Accessibility Checks with Jetpack Compose Previews•
 Jetpack Compose needs a Design System layer
 Jetpack Compose needs a Design System layer•
 Composition over Inheritance: My refactoring recipe
 Composition over Inheritance: My refactoring recipe•
 @Composable Modifier vs composed factory in Jetpack Compose
 @Composable Modifier vs composed factory in Jetpack Compose•
 Stop Passing Event/UI-Action Callbacks in Jetpack Compose
 Stop Passing Event/UI-Action Callbacks in Jetpack Compose•
 Android Localization: List Formatter in Android
 Android Localization: List Formatter in Android•
 Kotlin’s JDK release compatibility flag
 Kotlin’s JDK release compatibility flag•
 Build Wear OS application using Jetpack Compose
 Build Wear OS application using Jetpack Compose•
 Detecting Banker Malware Installed on Android Devices
 Detecting Banker Malware Installed on Android Devices•
 Optimizing CI/CD Processes with Selective Testing
 Optimizing CI/CD Processes with Selective Testing•
 Now in Android: 101 — Android 15 Developer Preview 2, TheAndroidShow, the Google I/O date, & more
 Now in Android: 101 — Android 15 Developer Preview 2, TheAndroidShow, the Google I/O date, & more•
 How to Implement Biometric Auth in Your Android App
 How to Implement Biometric Auth in Your Android App•
 This Is My FAVORITE Error Handling Class
 This Is My FAVORITE Error Handling Class•
 Java vs. Kotlin: The Ultimate Showdown of Virtual Threads & Coroutines
 Java vs. Kotlin: The Ultimate Showdown of Virtual Threads & Coroutines•
 Gramophone: музыкальный плеер на Media3 и Material Design
 Gramophone: музыкальный плеер на Media3 и Material Design•
 Routine Tracker: календарь-планировщик для Android
 Routine Tracker: календарь-планировщик для Android Кроссплатформа
 Кроссплатформа• ViewModel + Kotlin Multiplatform. Пробуем нативное решение
• Тестирование пользовательского интерфейса во Flutter
• Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3
• Рецепт приготовления кроссплатформенного мобильного видеоредактора
•
 Fixing FVM with an open source mindset
 Fixing FVM with an open source mindset•
 Flutter & ML Kit 1.0: AI powered Apps
 Flutter & ML Kit 1.0: AI powered Apps•
 How to use KMP library inside the Flutter plugin?
 How to use KMP library inside the Flutter plugin?•
 The power of open-source. Making Maestro work better with Flutter
 The power of open-source. Making Maestro work better with Flutter•
 Flutter-Clean Architecture
 Flutter-Clean Architecture•
 Introducing the Redacted Widget for Flutter: Enhance Your Loading Experience!
 Introducing the Redacted Widget for Flutter: Enhance Your Loading Experience!•
 Advanced Theming Techniques in Flutter: Leveraging Extensions for Dynamic UIs
 Advanced Theming Techniques in Flutter: Leveraging Extensions for Dynamic UIs Разработка
 Разработка• Как растратить свою карьеру — один комфортный год за другим
• Перехват трафика мобильных приложений
• Сила последовательности в побочных проектах
• Как рождаются идеи pet-проектов?
• О вреде Test Driven Development
• Почему навигация в Google, Booking и Spotify именно такая, и какую лучше выбрать вам
• Собеседование по System Design: проектируем клон Авито
• Не работал в FAANG — не программист: полгода работы в Apple
• Программисты не нужны
• Как инсайт Netflix удвоил конверсию Gett
• GitHub предлагает автоматическое исправление уязвимостей в коде с помощью ИИ
• JetBrains запускает TeamCity Pipelines для упрощения работы с CI/CD
• Visual Studio App Center закрывается
•
 Interviewing at Staff+ level
 Interviewing at Staff+ level•
 How Figma’s databases team lived to tell the scale
 How Figma’s databases team lived to tell the scale•
 Vision Pro is an over-engineered «devkit»
 Vision Pro is an over-engineered «devkit»•
 Make CI/CD Part of Your Development Flow With TeamCity Pipelines
 Make CI/CD Part of Your Development Flow With TeamCity Pipelines•
 How Tinder Scaled to 1.6 Billion Swipes per Day
 How Tinder Scaled to 1.6 Billion Swipes per Day•
 Empirically supported code review best practices
 Empirically supported code review best practices•
 Tooltip: A small design element with a big UX impact
 Tooltip: A small design element with a big UX impact•
 This is the moment to reinvent your product
 This is the moment to reinvent your product•
 How to Solve 1000 Leetcode Problems in 300 Days?
 How to Solve 1000 Leetcode Problems in 300 Days?•
 Will AI Devices Kill UX?
 Will AI Devices Kill UX?•
 AutoDev: ИИ-помощник для разработки
 AutoDev: ИИ-помощник для разработки•
 Shattered Pixel Dungeon: кроссплатформенный «рогалик»
 Shattered Pixel Dungeon: кроссплатформенный «рогалик» Аналитика, маркетинг и монетизация
 Аналитика, маркетинг и монетизация• Приложение для ведения бюджета Copilot переживает бум после закрытия Mint
• Epic Games запускает магазин на iOS и Android
• Топ быстрорастущих приложений в России в марте
• Sensor Tower покупает data.ai
• Приложение Apple Sports не смогло опередить конкурентов
•
 Casual Gaming in 2024: Using Insights From 2023
 Casual Gaming in 2024: Using Insights From 2023 AI, Устройства, IoT
 AI, Устройства, IoT• Quantization Deep Dive, или Введение в современную квантизацию
• Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++
• Расчёт вкусов пользователя для ленты рекомендаций с применением item2vec-подхода
• Умный офис в «Москва-Сити» на Home Assistant: автоматизируем только нужное
• Демистифицируем машинное обучение – из разработчика в ML-инженеры
• Исследователи обнаружили неисправимую уязвимость в чипах Apple Silicon
• Google DeepMind разработал ИИ ассистента для футбола
• Лучшие механические клавиатуры 2024
• xAI Илона Маска открыл код ИИ-модели Grok
• Новый метод обучения ИИ от Apple сохраняет конфиденциальность
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
          