В нашем новом дайджесте изменения в App Store и иконки для visionOS, почему Google Play Protect посчитал 2ГИС вредоносным ПО, измерение производительности мобильных приложений в Booking, cамые скачиваемые и зарабатывающие приложения в России в 2023 году и многое другое.
И подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

iOS
• Адаптируем иконку вашего приложения для visionOS
• Пример Microsoft Apple ничему не научил
• Вопросы с собеседований: Асинхронные задачи в Swift
• Netflix отказался от поддержки Vision Pro
• Apple разрешает ссылки на стороннюю оплату в американском App Store
• App Store разделят «на две части» — европейскую и нет
• Компании критикуют 27% налог Apple
• Мок-собеседование iOS-разработчика
•
Asynchronous SwiftUI buttons
•
Is MVVM Dead in SwiftUI?
•
Reading and Writing Spatial Video with AVFoundation
•
Exploring visionOS Accessibility: VoiceOver Gestures
•
Calling Swift from C++ code
•
Adapting your App Icon to visionOS
•
SwiftUI Binding Tips
•
iOS 17.2 Sideload Apps: What You Need to Know About Apple’s New Feature
•
Senior iOS Dev: A Roadmap to Becoming a 2x iOS Engineer
•
Concurrency-safe global variables to prevent data races
•
SwiftUI Button Styles And Shapes
•
SwiftUI Observable in iOS 17
•
Remove background from image in SwiftUI
•
Adventures in EDR, Part 1: Displaying EDR Photos in iOS 17
•
Visualising the build process of your iOS app with XCLogParser
•
Thoughts And Tips After My App Was nominated For A Golden Apple Award From AppleVis
•
Error handling in Swift
•
SwiftUI Grid Tutorial: Neat Rows & Custom Column Alignments
•
The Flexible Swift Error Handling
•
How to use ApiKit to model an API and fetch data from it
•
Force Update & show new App Version is Available
•
Scheme vs. Target in Xcode: Unraveling the Mystery
•
Floating Tab Bar for macOS
•
SwiftData Debugging The Easy Way
•
Staging and Committing with Xcode
•
ADAMANT Messenger for iOS: клиент блокчейн-мессенджера
•
FxSwipeAction: настраиваемые действия для свайпов в SwiftUI
Android
• Пост post-mortem: разбираемся, почему Google Play Protect посчитал 2ГИС вредоносным ПО
• Разбор кода Android-приложения фоторедактора Image Toolbox
• Как улучшить код функциональным подходом
• Отчаяние, отказы и академический отпуск: как я за год вернул уверенность и стал Android-разработчиком
• TDD: реальная история внедрения в проект
• Бесплатный курс «Введение в IDE рефакторинг кода в Kotlin»
• Android-разработка в 2023 году: год эволюции
•
How to add text similarity to your Android applications easily using MediaPipe and Kotlin
•
Creating and managing custom-scoped components in Dagger + Anvil
•
Camouflage the Status Bar with Edge-to-Edge Jetpack Compose Screens and Dialogs
•
Exploring Health Connect
•
Running UI tests in Jetpack Compose using Firebase Test Lab
•
Keep Your Kotlin Code Spotless: A Guide to ktlint and ktfmt Linters
•
Kotlin-Swift interopedia
•
Sealing the Deal: Mastering Sealed Classes in Android with Kotlin
•
The Magic of Kotlin Result Class
•
MVI Architecture Explained On Android
•
Compose and Conquer: A Tale of Effortless Android Navigation3
•
Kotlin: An Illustrated Guide — Sealed Types
•
Blurring the Lines: How to Achieve a Glassmorphic Design with Jetpack Compose
•
Never Use Exceptions for Logic in Kotlin!
•
How to resolve the memory leak issue using an Android Studio profiler
•
Koin-Dependent Composable Previews in Android Jetpack Compose
•
Level Up Your Daily Coding: Unveiling Four Lesser-Known Tools in Android Studio
•
App Performance Analysis with the Android Studio Profiler
•
The Top 3 State Management Mistakes On Android
•
How to Make a Clean Architecture App with Kotlin and Compose Multiplatform
•
Simple Calendar: простой календарь с событиями, задачами, настраиваемыми цветами и виджетами
•
RichEditor: WYSIWYG редактор для Compose
Кроссплатформа
• Интеграция видеоплеера YouTube во Flutter
• Почему Flutter?
• Как я повысил производительность flutter приложения с помощью FragmentShader. Часть 1 + Часть 2
• Podlodka: Qt — кроссплатформенная разработка приложений под декстоп и не только
•
Enhancing Flutter with High-Performance Image Processing Using FFI
•
How to Implement the AnimatedVisibility Widget in Flutter
•
Nitrite — A NoSQL embedded database for Flutter applications
•
Multiplatform UI library: ?Redwood
•
Scaling a Flutter team
•
Build a Custom Bottom Navigation Bar in Flutter with Animated Icons from Rive
•
Dart & Flutter DevTools Extensions
•
How To FIX Text Overflow In Flutter
•
Spotify-KMP: пример приложения на Kotlin Multiplatform
Разработка
• Измерение производительности мобильных приложений в продакшене
• «Спроси маму» в разработке: задавайте правильные вопросы, когда все вам лгут
• Офис Apple в Москве: как я с нуля стал экспертом и попал на приватную вечеринку для разработчиков
• Как снять логи при краше мобильного приложения?
• Как сравнивать цвета и сделать из этого казуальную игру?
• UX – как лучше улучшать
• Запускаем аналог LAMDATEST/BrowserStack для мобильных устройств и не только
• Что можно улучшить в приложении? часть 2. Крадем как художники у Lamoda
• Как мобильные разработчики занимаются инфраструктурой
• Плюс, работа с платежами и особенности разработки SDK
• Как умирают продукты без дизайн аналитики
• Сундар Пичаи предупредил сотрудников Google о грядущих увольнениях
• Действительно ли нам нужны менеджеры по продуктам?
• От стажера до ведущего разработчика — как расти в IT
• Dynamic Programming is not Black Magic
• Applying the SPACE Framework
• How Apple built iCloud to store billions of databases
• How to Build and Optimize a Content Feed in a UGC App in 2023
• Experimenting with Handwriting Recognition for The New York Times Crossword
• Measuring mobile apps performance in production
• why lowercase letters save data
• How Apple built iCloud to store billions of databases
• The Software Engineer’s Role as an API
• Designing better target sizes
•
How to Get a Developer Job – Even in This Economy [Full Course]
•
Figma Crash Course 2024
•
GPUPixel: кроссплатформенные эффекты красоты
Аналитика, маркетинг и монетизация
• Plants vs. Zombies 3 снова вышли в софт-лонч
• События в приложениях — как их создать и в каких случаях они пригодятся
• Самые скачиваемые и зарабатывающие приложения в России в 2023 году
• Google удалил Binance и другие криптобиржи из индийского магазина
• ROBODORO: трекер времени для iOS от red_mad_robot
AI, Устройства, IoT
• «Пора ли гнать на мороз Computer Vision — scientist'ов ?» (Fondation Models и вокруг)
• Кто побеждает в борьбе за технологии и что изменилось в AI с приходом опенсорса
• Samsung представил Galaxy S24 с ИИ от Google
• Locofy превращает макеты в код с помощью ИИ
• Apple впервые заняла первое место по поставкам смартфонов
• У меня зазвонил Репка-фон. Делаем телефон на базе Repka Pi 3 с применением модуля SIM868
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
И подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

iOS• Адаптируем иконку вашего приложения для visionOS
• Пример Microsoft Apple ничему не научил
• Вопросы с собеседований: Асинхронные задачи в Swift
• Netflix отказался от поддержки Vision Pro
• Apple разрешает ссылки на стороннюю оплату в американском App Store
• App Store разделят «на две части» — европейскую и нет
• Компании критикуют 27% налог Apple
• Мок-собеседование iOS-разработчика
•
Asynchronous SwiftUI buttons•
Is MVVM Dead in SwiftUI?•
Reading and Writing Spatial Video with AVFoundation•
Exploring visionOS Accessibility: VoiceOver Gestures•
Calling Swift from C++ code•
Adapting your App Icon to visionOS•
SwiftUI Binding Tips•
iOS 17.2 Sideload Apps: What You Need to Know About Apple’s New Feature•
Senior iOS Dev: A Roadmap to Becoming a 2x iOS Engineer•
Concurrency-safe global variables to prevent data races•
SwiftUI Button Styles And Shapes•
SwiftUI Observable in iOS 17•
Remove background from image in SwiftUI•
Adventures in EDR, Part 1: Displaying EDR Photos in iOS 17•
Visualising the build process of your iOS app with XCLogParser•
Thoughts And Tips After My App Was nominated For A Golden Apple Award From AppleVis•
Error handling in Swift•
SwiftUI Grid Tutorial: Neat Rows & Custom Column Alignments•
The Flexible Swift Error Handling•
How to use ApiKit to model an API and fetch data from it•
Force Update & show new App Version is Available•
Scheme vs. Target in Xcode: Unraveling the Mystery•
Floating Tab Bar for macOS•
SwiftData Debugging The Easy Way•
Staging and Committing with Xcode•
ADAMANT Messenger for iOS: клиент блокчейн-мессенджера•
FxSwipeAction: настраиваемые действия для свайпов в SwiftUI
Android• Пост post-mortem: разбираемся, почему Google Play Protect посчитал 2ГИС вредоносным ПО
• Разбор кода Android-приложения фоторедактора Image Toolbox
• Как улучшить код функциональным подходом
• Отчаяние, отказы и академический отпуск: как я за год вернул уверенность и стал Android-разработчиком
• TDD: реальная история внедрения в проект
• Бесплатный курс «Введение в IDE рефакторинг кода в Kotlin»
• Android-разработка в 2023 году: год эволюции
•
How to add text similarity to your Android applications easily using MediaPipe and Kotlin•
Creating and managing custom-scoped components in Dagger + Anvil•
Camouflage the Status Bar with Edge-to-Edge Jetpack Compose Screens and Dialogs•
Exploring Health Connect•
Running UI tests in Jetpack Compose using Firebase Test Lab•
Keep Your Kotlin Code Spotless: A Guide to ktlint and ktfmt Linters•
Kotlin-Swift interopedia•
Sealing the Deal: Mastering Sealed Classes in Android with Kotlin•
The Magic of Kotlin Result Class•
MVI Architecture Explained On Android•
Compose and Conquer: A Tale of Effortless Android Navigation3•
Kotlin: An Illustrated Guide — Sealed Types•
Blurring the Lines: How to Achieve a Glassmorphic Design with Jetpack Compose•
Never Use Exceptions for Logic in Kotlin!•
How to resolve the memory leak issue using an Android Studio profiler•
Koin-Dependent Composable Previews in Android Jetpack Compose•
Level Up Your Daily Coding: Unveiling Four Lesser-Known Tools in Android Studio•
App Performance Analysis with the Android Studio Profiler•
The Top 3 State Management Mistakes On Android•
How to Make a Clean Architecture App with Kotlin and Compose Multiplatform•
Simple Calendar: простой календарь с событиями, задачами, настраиваемыми цветами и виджетами•
RichEditor: WYSIWYG редактор для Compose
Кроссплатформа• Интеграция видеоплеера YouTube во Flutter
• Почему Flutter?
• Как я повысил производительность flutter приложения с помощью FragmentShader. Часть 1 + Часть 2
• Podlodka: Qt — кроссплатформенная разработка приложений под декстоп и не только
•
Enhancing Flutter with High-Performance Image Processing Using FFI•
How to Implement the AnimatedVisibility Widget in Flutter•
Nitrite — A NoSQL embedded database for Flutter applications•
Multiplatform UI library: ?Redwood•
Scaling a Flutter team•
Build a Custom Bottom Navigation Bar in Flutter with Animated Icons from Rive•
Dart & Flutter DevTools Extensions•
How To FIX Text Overflow In Flutter•
Spotify-KMP: пример приложения на Kotlin Multiplatform
Разработка• Измерение производительности мобильных приложений в продакшене
• «Спроси маму» в разработке: задавайте правильные вопросы, когда все вам лгут
• Офис Apple в Москве: как я с нуля стал экспертом и попал на приватную вечеринку для разработчиков
• Как снять логи при краше мобильного приложения?
• Как сравнивать цвета и сделать из этого казуальную игру?
• UX – как лучше улучшать
• Запускаем аналог LAMDATEST/BrowserStack для мобильных устройств и не только
• Что можно улучшить в приложении? часть 2. Крадем как художники у Lamoda
• Как мобильные разработчики занимаются инфраструктурой
• Плюс, работа с платежами и особенности разработки SDK
• Как умирают продукты без дизайн аналитики
• Сундар Пичаи предупредил сотрудников Google о грядущих увольнениях
• Действительно ли нам нужны менеджеры по продуктам?
• От стажера до ведущего разработчика — как расти в IT
• Dynamic Programming is not Black Magic
• Applying the SPACE Framework
• How Apple built iCloud to store billions of databases
• How to Build and Optimize a Content Feed in a UGC App in 2023
• Experimenting with Handwriting Recognition for The New York Times Crossword
• Measuring mobile apps performance in production
• why lowercase letters save data
• How Apple built iCloud to store billions of databases
• The Software Engineer’s Role as an API
• Designing better target sizes
•
How to Get a Developer Job – Even in This Economy [Full Course]•
Figma Crash Course 2024•
GPUPixel: кроссплатформенные эффекты красоты
Аналитика, маркетинг и монетизация• Plants vs. Zombies 3 снова вышли в софт-лонч
• События в приложениях — как их создать и в каких случаях они пригодятся
• Самые скачиваемые и зарабатывающие приложения в России в 2023 году
• Google удалил Binance и другие криптобиржи из индийского магазина
• ROBODORO: трекер времени для iOS от red_mad_robot
AI, Устройства, IoT• «Пора ли гнать на мороз Computer Vision — scientist'ов ?» (Fondation Models и вокруг)
• Кто побеждает в борьбе за технологии и что изменилось в AI с приходом опенсорса
• Samsung представил Galaxy S24 с ИИ от Google
• Locofy превращает макеты в код с помощью ИИ
• Apple впервые заняла первое место по поставкам смартфонов
• У меня зазвонил Репка-фон. Делаем телефон на базе Repka Pi 3 с применением модуля SIM868
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
