Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков.
iOS
- Архитектурный линтинг для Swift: часть 4
- Используем Core Motion в SwiftUI-приложении
- XCUITest для начинающих: как сделать тестирование iOS красивым с Allure
- GPT, DeepSeek и Qwen: идеальные unit-тесты в эхо-камере
- Новые функции доступности Apple для iPhone, iPad, Mac и Apple Vision Pro
- Учим Metal и image processing лишь бы не верстать на iOS
- Race Condition: проблема гонки потоков — что это и как избежать?
- Под капотом iOS-крешей
- TextField с автодополнением
- SwiftUI-навигация: просто, нативно и декларативно
- Удивительный мир внутри .ipa
- Core Motion framework в финансовых приложениях
Scheduling notifications with time, calendar, and location triggers in iOS Adding dependencies to binary Swift packages Concurrency-Safe Testing in Swift 6.1 with @TaskLocal and Test Scoping Knowing when the battle is lost with XCUITests Demystifying Picture in Picture on iOS SwiftUI View Model Ownership Regular Expressions in Swift Formatting data inside SwiftUI Text views Vibe Xcoding your apps Optimized mathematical computations in Swift Customizing an App Intent SwiftUI Picker With Optional Selection Debug crashes in iOS using MetricKit Synthesizing text into speech Demystifying SwiftUI’s .ignoredByLayout() Default isolation with Swift 6.2 The Power of KeyPath in SwiftUI Matrix3D: Large Photogrammetry Model Using ScrollViewReader for Programmatic Scrolling in SwiftUI: A Tutorial Change a map viewpoint with MapKit Ultimate Guide to Dependency Injection for Modular iOS app Create a Simple Theming Architecture with SwiftUI Resizable ScrollView Header | Scroll To Hide Header — SwiftUI SwiftUI Theme Switcher in 3 Minutes – Light & Dark Mode Made Easy Building emoji reactions in 5 minutes with SwiftUI Customized Paywall using Native SwiftUI StoreKit APIs Apple Engineer Shows How To Build a SwiftUI Sleep Tracker 3 Ways to Initialize @State in SwiftUI Apple’s Widget Backdoor SwiftOpenAI — пакет Swift для взаимодействия с публичным API OpenAI ProgressUI — кастомизируемые и анимированные индикаторы прогресса для SwiftUI Prefire — библиотека тестирования на основе Xcode Preview
Android
- Типобезопасная передача результатов между экранами в Compose с Jetpack Navigation
- Google анонсирует дизайн Material 3 Expressive
- Мастерство фокусов на Compose (часть 2): как работает запрос фокуса
- Прячем код по-настоящему: тёмные уголки обфускации R8 и ProGuard
- ML KIT — Современное решение для сканирования в Android приложениях
- Jetpack Compose 1.8 уже здесь — и он меняет правила игры
- Подготовьте свои Android-приложения для страницы памяти в 16 КБ
- Тестирование Compose по-новому: простота, надежность, гибкость
- Путешествие к центру Композиции
- Scout: новый фреймворк для ускоренного и безболезненного управления зависимостями
- Компиляторные плагины: модификация и анализ Сompose
- Как я code coverage внедрял да Gradle plugin для baseline писал
Stale Data & Leaks were killing my Kotlin apps for 5 years. Here’s the fix. Does Junie Create Accessible Android Apps? Simpler Gradle plugin loading Blazing fast app uninstalls for lazy Android Devs Kotlin’s Builder Functions: A Better Way to Create Lists, Maps, Strings & Sets Building delightful Android camera and media experiences Fast Feedback: Winning Back 60% of Our CI Time Effective Strategies for Testing Asynchronous Kotlin Code Compose UI Performance Secrets (Part 1): 5 Core Optimizations Every Developer Should Know Compose UI Performance Secrets (Part 2): 5 Advanced Techniques for Ultra-Smooth Apps Using movableContentOf for shared transitions in Jetpack Compose How to Use Firebase Remote Config in Server: Dynamic Control and AI Parameter Management Securing Android: Behind a few seconds of payment transaction … Why is Modern Android Development So Hard? How to Run Local LLM (AI) in Android Studio Avoid using Array in the data class constructor in Kotlin Modern Android App Architecture with Clean Code Principles (2025 Edition) Start building with Material 3 Expressive Imperative vs Declarative in Android — The Real Difference Tooltips in Compose Material 3 Builder & Factory patterns in Kotlin — A Walk-Through Object The navigation drawer is being deprecated in the Material 3 expressive update The Android Show: I/O Edition Now in Android: 116 – Google I/O, Gemini, and Jetpack Compose 1.8 What’s new in Android Studio Meerkat Feature Drop Android Testing Strategies Tools and patterns for scalable Android app testing 5 Anti-Patterns With Coroutines & Flows You MUST Avoid! How Kotlin is Powering TV Broadcasts Worldwide Android & Kotlin Development Masterclass – Full Course Build your App from Scratch without Material 3 Color System Compose Unstyled — набор дизайн-компонентов Compose Haze — размытие глассморфизма для Compose Night Clock — минималистичные часы для Android
Кроссплатформа
- Compose Multiplatform для iOS стабилен и ждет ваших приложений
- Когда JavaScript недостаточно: Практика разработки нативных модулей для React Native
- Kotlin Multiplatform vs Compose Multiplatform: отличия, способы создания и как запустить на iOS
- Готов ли Compose iOS к продакшену?
Implementing DataStore in Kotlin Multiplatform Projects I use this clean architecture setup for all my Flutter projects — finally made it public Flutter Tips Flutter Isolates: Multithreading Made Easy in Dart 5 React Native Truths I Wish I Knew Before Building 10+ Apps The Ultimate Guide to Flutter’s Most Useful Packages Kotlin Multiplatform: Have your code and eat it too MCP Explained for Flutter Developers: Everything You Should Know
Разработка
- Как сломанные OTP и открытые конечные точки могут превратить приложение для знакомств в кошмар
- UI-дизайн с ChatGPT 4o
- Left Shift Testing: как выстроить процесс, чтобы тесты реально помогали
- Как мы в YouGile сделали голосовые круче, чем Telegram. Их полюбят даже хейтеры
- Идеальный процесс взаимодействия аналитика и мобильного разработчика
- Первый проект на HarmonyOS — мой плейлист для старта с нуля
- История одного редизайна. Экран карты в мобильном приложении ОТП Банка
- Погружаемся в пуши. Создаём свою альтернативу сервисам рассылки Push
- Разработчик HarmonyOS Next про ArkTS и HarmonyOS
- Язык программирования Groovy: JVM языки, Java, Kotlin, Gradle, DSL
- Как работают нейроинтерфейсы: киборги, Neuralink, brain-computer interface
- Figma выпускает новые инструменты с искусственным интеллектом для создания сайтов, прототипов приложений и маркетинговых ресурсов
Learning to Think in an AI World: 5 Lessons for Novice Programmers Dumb Leadership Mistakes I’ve Made Write the most clever code you possibly can When SOLID breaks: Choose CLARITY Good vs Great Animations Duolingo Just Ended The Term “UX Design” Design Messenger — Mobile System Design Mock Interview C++ Course: Build an Audio Plugin
Аналитика, маркетинг и монетизация
- Сравнение конверсий IAP и веб платежей в iOS-приложении
- Приложения для знакомств сделали лучший месяц по доходам за всю историю
- В новом приложении Airbnb все, что нужно для отдыха, в одном месте
- Duolingo заменяет сердечки энергией
- Эмулятор Delta сделал Patreon главной системой монетизации в App Store
- Самые скачиваемые и зарабатывающие приложения в России в апреле 2025
- Самые скачиваемые и зарабатывающие приложения в мире в апреле 2025
- Epic Games одержала крупную победу и Apple было предписано выполнить судебное решение по App Store
- Стоит ли разработчикам iOS-приложений переходить на веб-платежи?
Ask HN: How are you acquiring your first hundred users?
AI, Устройства, IoT
- Как найти и потерять бэкдор в ESP32
- Что убивает ваши IoT-проекты — и как Edge это исправит
- Как декомпозиция повышает точность распознавания текста: опыт с фотографиями СТС
- Галлюцинации моделей текстовых ИИ, и как с ними бороться
- Windsurf выпустил свои ИИ-модели для программной инженерии
- Stability AI выпустила модель генерации звука, которая может работать на смартфонах
- OpenAI хочет создать ОС всей жизни на основе ИИ
- Apple выпустила новый визуальный энкодер FastVLM
- LegoGPT — ИИ-модель для сборки моделей Lego