Темы



Мобильная разработка за неделю #562 (28 октября — 4 ноября)

В новом дайджесте ковка Metal и поиск регрессий в Compose, полностью переделанный React Native и форк Flutter, тактильный отклик в мобильных приложениях, сравнение размеров iOS и Android приложений, самые скачиваемые и зарабатывающие приложения в России в октябре и многое другое. Подключайтесь!

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

kpdhhpl8q8tiowucloc1apwta2o.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Делаем в SwiftUI размытие экрана при переключении задачи
• Реализуем Face ID аутентификацию в iOS-приложении
• Малоизвестные фичи SwiftUI
• Swift TaskGroup на примерах
• Apple купила Pixelmator
• Как устроена библиотека AppMetrica
• Здесь куют Metal
• Как iOS-разработчику выжить на проекте с KMP?
• App Store будет показывать сводку отзывов, сделанную ИИ
• Copilot появился в Apple Xcode
• 377ae0333d0f4b7b97307c9eea5ee21a.gifApp development on iPad
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy is xcodebuild slower than the Xcode GUI?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding actors in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSimplify Your iOS CI with Makefiles
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMaking illegal states unrepresentable
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMeasuring View Visibility Percentage in SwiftUI Using PreferenceKeys
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing the #require macro for Swift Testing
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCoordinators & SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifInstalling and Using Copilot in Xcode: AI Code Completion
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Strategy Pattern
• 377ae0333d0f4b7b97307c9eea5ee21a.gifProblematic Swift Concurrency Patterns
• 377ae0333d0f4b7b97307c9eea5ee21a.gifIntroducing Swift Testing. Lifecycle.
• 377ae0333d0f4b7b97307c9eea5ee21a.gifImproving test coverage with parameterized tests in Swift testing
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to automatically update build and version numbers in your app using Fastlane
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPreview Driven Development
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngConvert a SwiftUI view to an image
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTranslation API
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAccessibility — The clock is ticking
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Bottom Sheet like Apple Music App
• 96716bcb926741e79bb1c284a88083ca.pngGeometrize — изображения из примитивов
• 96716bcb926741e79bb1c284a88083ca.pngParalayout — пиксельно идеальная верстка в iOS
• 96716bcb926741e79bb1c284a88083ca.pngCoreDataEvolution — безопасная многопоточность для Core Data

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Главный метод 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
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGemini on Android, The story so far
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow To Create a Parallax Movie Pager In Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKoin Annotations 1.4 stable & First 2.0 beta version
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAutomating Versioning and APK Naming in Gradle for Android Projects
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGenerating Code Coverage Report with JaCoCo: A Complete Guide for Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering DisposableEffect in Jetpack Compose: Managing Side Effects Effectively
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGradle Modularisation
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTips to Improve Frame Rates in Android Apps
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid interview questions about Activity component
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe beauty of Kotlin Type System
• 377ae0333d0f4b7b97307c9eea5ee21a.gifElevate Your Dependency Injection Game: Koin 4.0 Unveiled for Kotlin Developers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGoogle confirms the Android 16 dessert code-name is Baklava
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngNavigation In Multi-Module Android Apps
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngThe Ultimate Beginner«s Roadmap to Android App Architecture
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDangerous Minds: How we«re getting developer education wrong
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDroidcon Lisbon 2024
• 96716bcb926741e79bb1c284a88083ca.pngCompose Unstyled — UI-компоненты Compose Multiplatform
• 96716bcb926741e79bb1c284a88083ca.pngLawnchair — лаунчер для Android

malx8hbgozt6lee8rmxmg96_s6a.pngКроссплатформа

• React Native полностью переделан
• Создан Flock — форк Flutter
• Как начать создавать Flutter-приложения на Авроре: полная инструкция
• Три пути к Flutter: истории разработчиков, которые справились
• Пробуем Flutter в Telegram Mini Apps: Насколько хорошее решение для разработки?
• Оптимизация архитектуры: делим крупные классы с помощью миксинов
• Шеринг файлов локализации между несколькими пакетами в Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter RAII: Simplifying Resource Management in Your Apps
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Migrate from Dagger 2 / Hilt to Koin for KMP
• 377ae0333d0f4b7b97307c9eea5ee21a.gifArchitect Your React Native app to handle Millions of Users and Large Development Teams
• 377ae0333d0f4b7b97307c9eea5ee21a.gifInspektor — Multiplatform HTTP inspection library for KTOR
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin Multiplatform Development Roadmap for 2025
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing Vertex AI in a Compose/Kotlin Multiplatform project
• 377ae0333d0f4b7b97307c9eea5ee21a.gifI built a web app with Flutter and this is how I feel about it
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBreaking Up with GetX: Know the Facts Before You Judge
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReact Native, and «the native feel»

7081c634ec176ab6b953d9d19e82a09a.pngРазработка

• Правда ли, что приложения для Android намного меньше, чем для iOS?
• Тактильный отклик в мобильных приложениях: что это такое, когда использовать и зачем?
• Octoverse 2024: ежегодный отчет от GitHub
• Битва титанов: натив, кроссплатформа и PWA — ищем плюсы и минусы на каждом этапе разработки
• Без теории к практике: как уловить радиоволну инклюзивного дизайна, опираясь на опыт реальных людей
• Самые высокооплачиваемые вакансии октября в сфере разработки приложений
• Задачи с собеседований: Leetcode — Наибольший общий префикс
• От натива до SDUI через гибрид
• Карьера мобильного разработчика 2024
• Разработка в робототехнике — Автоматизация, Автопилоты
• 377ae0333d0f4b7b97307c9eea5ee21a.gifInvestigation of a Workbench UI Latency Issue
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to build the perfect mobile release train
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAmphion: OS audio, music & speech generation toolkit
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing an 8K TV as a monitor
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOn One-on-Ones — Insights From 1,500 Meetings
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDecoupling Design From Engineering
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy Pascal Deserves a Second Look
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy sprints are taking the joy out of building software
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGoogle Cloud Digital Leader Certification Course 2024

509dc9bde69347ecbe0c21ff2973d7e7.jpgАналитика, маркетинг и монетизация

• Самые скачиваемые и зарабатывающие приложения в России в октябре 2024
• Рынок iOS-приложений в Европе — отчет Setapp
• VK Реклама упростила продвижение приложений из RuStore
• Nintendo выпустила стриминговое приложение с музыкой из своих игр
• Маркетологи в мобайле: Любовь Бондарева (Rostic«s)
• Как я использовал Keynote для создания скриншотов и роликов для App Store
• Приложение Screenable превращает любой iPhone в стартовый телефон для детей
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMy 9 Favorite Growth Framework
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow DreamPlus Games Makes $2M Per Month On Twilight Hype

8538129f5e7b404a720121cb9c3814db.jpgAI, Устройства, IoT

• Опыты с акселерометром и гироскопом на платформе S7V30
• Тестируем Pixtral12B и LLaMA 3.2 11B на народных Tesla P100 и P40
• Как я занял первое место в AI Journey Contest 2023 (трек Personal AI)
• Распознавание ж/д пикетных столбиков по фотографиям с беспилотника на основе PyTorch и YOLOv5
• Как «ДубльДом» хочет сделать свои дома умными
• Как учёные начали расшифровывать пение птиц
• Архитектура и основы безопасности Zigbee
• Лучшие клавиатуры 2024
• GitHub обновляет Copilot
• Более четверти нового кода в Google создается ИИ

← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

© Habrahabr.ru