Темы



Мобильная разработка за неделю #565 (18 — 24 ноября)

В новом дайджесте реверс-инжиниринг новой функции iOS Inactivity Reboot и поиск Золотого пути к устойчивой Android-разработке, шапочный разбор с CoordinatorLayout и взрослая анатомия крэшей на iOS, приложения для HarmonyOS Next, лучший квартал экономики приложений, большая битва платформ и многое другое. Подключайтесь!

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

dcgpansrcjeisrhzavl2dkb1ubc.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Реверс-инжиниринг новой функции iOS Inactivity Reboot
• Исследуем интерактивный Bottom Sheet в SwiftUI
• Об анатомии крэшей на iOS «по-взрослому»
• Apple убивает Swift
• Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик
• Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 1
• Дейтинг, Swift и Формула-1: от первых шагов в IT до победы в хакатоне
• 377ae0333d0f4b7b97307c9eea5ee21a.gifiOS разработка с нуля
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExploring Apple Intelligence: Writing Tools
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering TextEditor in SwiftUI: Features, Limitations, and Tips
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreating a macOS Screensaver in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMap Models Made Easy
• 377ae0333d0f4b7b97307c9eea5ee21a.gifConcurrency in Swift 6
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to use a Connectable publisher in Combine
• 377ae0333d0f4b7b97307c9eea5ee21a.gifProper Navigation in SwiftUI with Coordinators
• 377ae0333d0f4b7b97307c9eea5ee21a.gifStatic, Dynamic, Mergeable, oh, my!
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwift 6 suitable notification observers in iOS
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing Transactions Instead of Save in SwiftData and Core Data
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFrom Noida to the USA: An iOS Developer«s Journey
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDetecting faces in images with the Vision framework
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOptimizing compilation and test runs with Xcode projects
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGetting consistent temperature preferences on iOS
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAsserting state with #expect in Swift Testing
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDisintegration Effect (Thanos Snap Effect) | SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngRecreating Mail App«s Tab bar | SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFix iOS 18 Gesture Problems With ScrollViews | SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to save data to local storage — iOS File System and Sandboxing
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngApple«s Official Method to Learn Swift and iOS
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Tutorial: Build a Real App! Payment Calculator
• 96716bcb926741e79bb1c284a88083ca.pngRichEditorSwiftUI — WYSIWYG редактор для SwiftUI
• 96716bcb926741e79bb1c284a88083ca.pngRevertible — версионирования состояний для замены UndoManager
• 96716bcb926741e79bb1c284a88083ca.pngSwift PNG — декодирование, проверка, редактирование и кодирование PNG

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Поиск нашего Золотого пути к устойчивой Android-разработке
• Работа с CoordinatorLayout: шапочный разбор
• Вышла Developer Preview версия Android 16
• Избавляемся от Android в api-модулях
• Пишем Android приложение для фильтрации спам-звонков
• Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
• Такие разные Android AppLinks, WebLinks, DeepLinks. Разбираемся и пытаемся сломать
• Code Review: вы не поверите, насколько распространены эти ошибки в коде Android-проектов
• Google отменил выпуск Pixel Tablet 2
• Микрооптимизация, которая вам никогда не понадобится
• Google замещает ChromeOS на Android, чтобы конкурировать с iPad
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Interview Series 2024 — Part 1 (Android basics)
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA Curious Case of Mistake\n Identity: How Lambdas Break Data Class Hashing
• 377ae0333d0f4b7b97307c9eea5ee21a.gifNot a Phase — Text with Compose and Canvas
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA Micro-optimization You Will Never Need
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow I Passed the Google Android Engineer Hiring Assessment: My Journey
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDon«t use Kotlin«s removeFirst () and removeLast () when using compileSdk 35
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA Comprehensive Guide to ADB (Android Debug Bridge)
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSystem Design of Netflix Android App: A Detailed Breakdown
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Studio Ladybug Feature Drop
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFinding Our Golden Path to Sustainable Android Development
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBenchmark Insights: Direct State Propagation vs. Lambda-based State in Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin Platform Types will break your apps
• 377ae0333d0f4b7b97307c9eea5ee21a.gifIntroducing Restore Credentials: Effortless account restoration for Android apps
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTest smarter, not harder: new testing strategies documentation
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGraphics layers | Jetpack Compose Tips
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngOpen Health Stack
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Deserialize Inconsistent JSON Data With a Custom Kotlinx Serializer
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAnonymous Functions Aren«t Lambdas
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAnimating Your World with Doris Liu — Dive into Jetpack Compose Animations
• 96716bcb926741e79bb1c284a88083ca.pngFocus Launcher — минималистичный лаунчер для Android
• 96716bcb926741e79bb1c284a88083ca.pngComposable Screens — примеры экранов на Compose

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

• Кроссплатформа, зови меня победителем
• Стили, темы и адаптивная верстка в React Native
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA Developer«s Roadmap to Mastering Kotlin Multiplatform
• 377ae0333d0f4b7b97307c9eea5ee21a.gifIntroducing Native Integrations for Gravatar Mobile SDK
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter Openworld Gaming Engine
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWriting iOS code in Kotlin Multiplatform
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAdd React Native to the Signal open source app
• 377ae0333d0f4b7b97307c9eea5ee21a.gifState Management in Flutter with Provider
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter Möbius Strip
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter web loading screen
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding a Clean, Multi-Module Application with Compose Multiplatform
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngThe Compose Multiplatform Crash Course for 2025 — Build a Clean Code Book App
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPlatform Integrations With Russel Wolf
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFrom Sprite Sheets to Stunning Animations in Jetpack Compose! KMP Library
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding a Clean, Multi-Module Application with Compose Multiplatform

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

• Huawei уходит от Android. Придётся ли бизнесу делать приложения для HarmonyOS Next
• Selenium с Robot Framework — тест пользовательского интерфейса
• Подборка книг для мобильных разработчиков: от начинающего до продвинутого уровня
• Сложный интерфейс: Рисуем состояния экрана без помощи системного аналитика
• iOS vs Android: большая битва платформ — что лучше для разработчика, бизнеса и простого пользователя
• Всё о лицензиях библиотек, что необходимо знать разработчику
• Niantic использует данные игроков для создания «большой геопространственной модели»
• Минюст заставит Google продать Chrome, чтобы разрушить монополию на поиск
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy Years of Experience Don«t Matter — How to Keep Your Skills Relevant in Tech
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSimple Time Management Hacks for Software Developers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSocratic Questioning — «Meetings are a waste of time»
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPlayground Wisdom: Threads Beat Async/Await

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

• Рынок приложений в 3 квартале 2024 — новый рекорд потребительских расходов
• Статистика: доходы AFK Journey
• Apple начала продавать рекламу в Apple News
• Лучшие приложения и игры в Google Play 2024
• Что произойдет, если удвоить цену на приложение?

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

• Самодельная платформа для робототехники из бюджетного смартфона
• Пишем свою Diffusion модель с нуля
• Реализация подобия Apple Vision Pro
• Первое «умное» кольцо Casio повторяет классические часы

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

© Habrahabr.ru