В новом дайджесте ковка Metal и поиск регрессий в Compose, полностью переделанный React Native и форк Flutter, тактильный отклик в мобильных приложениях, сравнение размеров iOS и Android приложений, самые скачиваемые и зарабатывающие приложения в России в октябре и многое другое. Подключайтесь!
Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/kp/dh/hp/kpdhhpl8q8tiowucloc1apwta2o.png)
iOS
• Делаем в SwiftUI размытие экрана при переключении задачи
• Реализуем Face ID аутентификацию в iOS-приложении
• Малоизвестные фичи SwiftUI
• Swift TaskGroup на примерах
• Apple купила Pixelmator
• Как устроена библиотека AppMetrica
• Здесь куют Metal
• Как iOS-разработчику выжить на проекте с KMP?
• App Store будет показывать сводку отзывов, сделанную ИИ
• Copilot появился в Apple Xcode
•
App development on iPad
•
Why is xcodebuild slower than the Xcode GUI?
•
Understanding actors in Swift
•
Simplify Your iOS CI with Makefiles
•
Making illegal states unrepresentable
•
Measuring View Visibility Percentage in SwiftUI Using PreferenceKeys
•
Using the #require macro for Swift Testing
•
Coordinators & SwiftUI
•
Installing and Using Copilot in Xcode: AI Code Completion
•
The Strategy Pattern
•
Problematic Swift Concurrency Patterns
•
Introducing Swift Testing. Lifecycle.
•
Improving test coverage with parameterized tests in Swift testing
•
How to automatically update build and version numbers in your app using Fastlane
•
Preview Driven Development
•
Convert a SwiftUI view to an image
•
Translation API
•
Accessibility — The clock is ticking
•
SwiftUI Bottom Sheet like Apple Music App
•
Geometrize — изображения из примитивов
•
Paralayout — пиксельно идеальная верстка в iOS
•
CoreDataEvolution — безопасная многопоточность для Core Data
Android
• Главный метод Android-приложения
• Поиск регрессий в Compose
• Пятый элемент: разбираемся с Separated apps в KNOX Service Plugin (KSP)
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 5
• Внедрение электронной цифровой подписи в мобильное приложение на Android
• Как написать Android приложение, которое не будет стыдно положить в портфолио. Гайд для новичков в Android разработке
• Кастомный Date and Time picker как в Telegram на Kotlin Jetpack Compose
• Android cookbook: готовим WebView правильно
• Kotlin Coroutines. Устройство и возможности использования
• Фреш на полке, фреш в стеке
• Более частые выпуски Android SDK: более быстрые инновации и высокое качество
• Google работает над аналогом Dynamic Island для Android
•
Gemini on Android, The story so far
•
How To Create a Parallax Movie Pager In Jetpack Compose
•
Koin Annotations 1.4 stable & First 2.0 beta version
•
Automating Versioning and APK Naming in Gradle for Android Projects
•
Generating Code Coverage Report with JaCoCo: A Complete Guide for Android
•
Mastering DisposableEffect in Jetpack Compose: Managing Side Effects Effectively
•
Gradle Modularisation
•
Tips to Improve Frame Rates in Android Apps
•
Android interview questions about Activity component
•
The beauty of Kotlin Type System
•
Elevate Your Dependency Injection Game: Koin 4.0 Unveiled for Kotlin Developers
•
Google confirms the Android 16 dessert code-name is Baklava
•
Navigation In Multi-Module Android Apps
•
The Ultimate Beginner’s Roadmap to Android App Architecture
•
Dangerous Minds: How we’re getting developer education wrong
•
Droidcon Lisbon 2024
•
Compose Unstyled — UI-компоненты Compose Multiplatform
•
Lawnchair — лаунчер для Android
Кроссплатформа
• React Native полностью переделан
• Создан Flock — форк Flutter
• Как начать создавать Flutter-приложения на Авроре: полная инструкция
• Три пути к Flutter: истории разработчиков, которые справились
• Пробуем Flutter в Telegram Mini Apps: Насколько хорошее решение для разработки?
• Оптимизация архитектуры: делим крупные классы с помощью миксинов
• Шеринг файлов локализации между несколькими пакетами в Flutter
•
Flutter RAII: Simplifying Resource Management in Your Apps
•
How to Migrate from Dagger 2 / Hilt to Koin for KMP
•
Architect Your React Native app to handle Millions of Users and Large Development Teams
•
Inspektor — Multiplatform HTTP inspection library for KTOR
•
Kotlin Multiplatform Development Roadmap for 2025
•
Using Vertex AI in a Compose/Kotlin Multiplatform project
•
I built a web app with Flutter and this is how I feel about it
•
Breaking Up with GetX: Know the Facts Before You Judge
•
React Native, and «the native feel»
Разработка
• Правда ли, что приложения для Android намного меньше, чем для iOS?
• Тактильный отклик в мобильных приложениях: что это такое, когда использовать и зачем?
• Octoverse 2024: ежегодный отчет от GitHub
• Битва титанов: натив, кроссплатформа и PWA — ищем плюсы и минусы на каждом этапе разработки
• Без теории к практике: как уловить радиоволну инклюзивного дизайна, опираясь на опыт реальных людей
• Самые высокооплачиваемые вакансии октября в сфере разработки приложений
• Задачи с собеседований: Leetcode — Наибольший общий префикс
• От натива до SDUI через гибрид
• Карьера мобильного разработчика 2024
• Разработка в робототехнике — Автоматизация, Автопилоты
•
Investigation of a Workbench UI Latency Issue
•
How to build the perfect mobile release train
•
Amphion: OS audio, music & speech generation toolkit
•
Using an 8K TV as a monitor
•
On One-on-Ones — Insights From 1,500 Meetings
•
Decoupling Design From Engineering
•
Why Pascal Deserves a Second Look
•
Why sprints are taking the joy out of building software
•
Google Cloud Digital Leader Certification Course 2024
Аналитика, маркетинг и монетизация
• Самые скачиваемые и зарабатывающие приложения в России в октябре 2024
• Рынок iOS-приложений в Европе — отчет Setapp
• VK Реклама упростила продвижение приложений из RuStore
• Nintendo выпустила стриминговое приложение с музыкой из своих игр
• Маркетологи в мобайле: Любовь Бондарева (Rostic’s)
• Как я использовал Keynote для создания скриншотов и роликов для App Store
• Приложение Screenable превращает любой iPhone в стартовый телефон для детей
•
My 9 Favorite Growth Framework
•
How DreamPlus Games Makes $2M Per Month On Twilight Hype
AI, Устройства, IoT
• Опыты с акселерометром и гироскопом на платформе S7V30
• Тестируем Pixtral12B и LLaMA 3.2 11B на народных Tesla P100 и P40
• Как я занял первое место в AI Journey Contest 2023 (трек Personal AI)
• Распознавание ж/д пикетных столбиков по фотографиям с беспилотника на основе PyTorch и YOLOv5
• Как «ДубльДом» хочет сделать свои дома умными
• Как учёные начали расшифровывать пение птиц
• Архитектура и основы безопасности Zigbee
• Лучшие клавиатуры 2024
• GitHub обновляет Copilot
• Более четверти нового кода в Google создается ИИ
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/kp/dh/hp/kpdhhpl8q8tiowucloc1apwta2o.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Делаем в SwiftUI размытие экрана при переключении задачи
• Реализуем Face ID аутентификацию в iOS-приложении
• Малоизвестные фичи SwiftUI
• Swift TaskGroup на примерах
• Apple купила Pixelmator
• Как устроена библиотека AppMetrica
• Здесь куют Metal
• Как iOS-разработчику выжить на проекте с KMP?
• App Store будет показывать сводку отзывов, сделанную ИИ
• Copilot появился в Apple Xcode
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Главный метод Android-приложения
• Поиск регрессий в Compose
• Пятый элемент: разбираемся с Separated apps в KNOX Service Plugin (KSP)
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 5
• Внедрение электронной цифровой подписи в мобильное приложение на Android
• Как написать Android приложение, которое не будет стыдно положить в портфолио. Гайд для новичков в Android разработке
• Кастомный Date and Time picker как в Telegram на Kotlin Jetpack Compose
• Android cookbook: готовим WebView правильно
• Kotlin Coroutines. Устройство и возможности использования
• Фреш на полке, фреш в стеке
• Более частые выпуски Android SDK: более быстрые инновации и высокое качество
• Google работает над аналогом Dynamic Island для Android
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• React Native полностью переделан
• Создан Flock — форк Flutter
• Как начать создавать Flutter-приложения на Авроре: полная инструкция
• Три пути к Flutter: истории разработчиков, которые справились
• Пробуем Flutter в Telegram Mini Apps: Насколько хорошее решение для разработки?
• Оптимизация архитектуры: делим крупные классы с помощью миксинов
• Шеринг файлов локализации между несколькими пакетами в Flutter
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Правда ли, что приложения для Android намного меньше, чем для iOS?
• Тактильный отклик в мобильных приложениях: что это такое, когда использовать и зачем?
• Octoverse 2024: ежегодный отчет от GitHub
• Битва титанов: натив, кроссплатформа и PWA — ищем плюсы и минусы на каждом этапе разработки
• Без теории к практике: как уловить радиоволну инклюзивного дизайна, опираясь на опыт реальных людей
• Самые высокооплачиваемые вакансии октября в сфере разработки приложений
• Задачи с собеседований: Leetcode — Наибольший общий префикс
• От натива до SDUI через гибрид
• Карьера мобильного разработчика 2024
• Разработка в робототехнике — Автоматизация, Автопилоты
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Самые скачиваемые и зарабатывающие приложения в России в октябре 2024
• Рынок iOS-приложений в Европе — отчет Setapp
• VK Реклама упростила продвижение приложений из RuStore
• Nintendo выпустила стриминговое приложение с музыкой из своих игр
• Маркетологи в мобайле: Любовь Бондарева (Rostic’s)
• Как я использовал Keynote для создания скриншотов и роликов для App Store
• Приложение Screenable превращает любой iPhone в стартовый телефон для детей
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Опыты с акселерометром и гироскопом на платформе S7V30
• Тестируем Pixtral12B и LLaMA 3.2 11B на народных Tesla P100 и P40
• Как я занял первое место в AI Journey Contest 2023 (трек Personal AI)
• Распознавание ж/д пикетных столбиков по фотографиям с беспилотника на основе PyTorch и YOLOv5
• Как «ДубльДом» хочет сделать свои дома умными
• Как учёные начали расшифровывать пение птиц
• Архитектура и основы безопасности Zigbee
• Лучшие клавиатуры 2024
• GitHub обновляет Copilot
• Более четверти нового кода в Google создается ИИ
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.