В новом выпуске динамические фреймворки и роботы Apple, Telegram на Android-смартфоне 14-летней давности, игра в безопасность, скрытые сокровища интерфейсного дизайна, самые скачиваемые и зарабатывающие приложения в России в марте, фальшивая социальная сеть, которая сама ставит вам лайки, и многое другое! Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/r/w780q1/webt/g8/pq/d2/g8pqd2pgw_cr2-0zvol_9r0iaxs.jpeg)
iOS
• Сделайте ваше iOS-приложение меньше с помощью динамических фреймворков
• SwiftUI: архитектура State-Model-View
• Протокол Identifiable в SwiftUI с примерами
• Apple Vision Pro: обзор платформы и создание первого мобильного приложения
• Сборка приложения для AppStore. Используем Jenkins, Fastlane, TestFlight
• Что такое Retain Cycle: вопросы с собеседований
• Apple занялась домашней робототехникой
• AltStore выходит на iOS и добавляет оплату через Patreon
• Осваиваем ViewThatFits. Часть 2
• TipKit чтобы подсветить функции в приложении
•
Recreating Apple’s beautiful visionOS search bar
•
Swift Isolation Intuition
•
Using closures for dependencies instead of protocols
•
How to avoid using AnyView in SwiftUI
•
Building async button in SwiftUI
•
How Tuist migrated from GitHub Actions to Codemagic for faster and more reliable CI
•
Why Switching From Xcode to Neovim Can Become The Best Decision You Ever Made
•
Open Letter to Tim Cook: Please fix Xcode (Daily basis pain of the Apple developers)
•
Trigger value pattern in SwiftUI
•
Decoding JSON with Dynamic Types in Swift
•
How to create a custom label style that only tints the label icon
•
Unlocking the Magic of visionOS
•
Let’s Build Interactive Floating Action Button — SwiftUI
•
How to easily test Push Notifications in the iOS simulator
•
Rebuild Bumble in SwiftUI
•
SwiftUI Limited TextField With Indicator
•
isowords: игра в слова на Composable Architecture
•
Gifu: высокопроизводительная поддержка анимированных GIF в Swift
Android
• Сам себе экосистема. Часть 4: как я реализовал клиент Telegram на Android-смартфоне 14-летней давности?
• Конструкторы-самозванцы в Kotlin
• Игра в безопасность Android-приложений
• Введение в Trio
• Как протестировать Android-приложение, которому требуются разрешения
• Глобальные события в мобильном приложении
• Жизненный цикл Activity приложения: базовые принципы и понятия
• Accessibility Scanner в Android
• Как работает Android Work Profile
• Разбор кода магазина приложений
• Опыт, Java vs Kotlin и работа со списками
• Android 15 готовит улучшенный десктопный режим
•
Kotlin: An Illustrated Guide — Generics
•
Styling Internationalized Text in Jetpack Compose
•
How to safely update state in your Kotlin apps
•
Fun with the circle shape in Compose
•
Introduction to using Kotlin Serialization
•
Understanding Window Insets in Jetpack Compose
•
Jetpack Compose Navigation with MVVM+Dependency Injection Koin
•
How Kotlin Annotations Work
•
Jetpack Compose: BringIntoViewRequester
•
Now in Android: 102 — Google I/O 2024, Women’s History Month, Vulkan on Android, and more
•
DON’T Make This Clean Architecture Packaging Mistake
•
Improving Video Playback with ExoPlayer
•
Every Kind of Class in Kotlin
•
GreenStash: экономия денег в Modern Android Development
•
Compose Rich Editor: редактор текста для Jetpack Compose и Compose Multiplatform
•
Keyguard: красивый клиент Bitwarden
Кроссплатформа
• Распознавание виджетов на экране приложения Flutter
• Как Compose Multiplatform for iOS может убить Flutter?
•
String resources API for Compose Multiplatform
•
Moving build_runner to the Context Menu in VS Code
•
Mastering Redux: Seamless UI Updates in React Native Apps
•
How to Create Integration Tests in Flutter
•
Build your .NET MAUI Android application with Azure DevOps
Разработка
• KMP, догфудинг и велосипеды в стартапе американской версии «Кухни на районе»
• Как UX/UI дизайнеру улучшить UI Kit: 10 конкретных советов
• Скрытые сокровища интерфейсного дизайна: 10 не популяризованных UI элементов, способных улучшить взаимодействие
• Открытое алгоритмическое собеседование
• Как разрабатывать Яндекс Маркет, обеспечивать качество и работать с BDUI
• Собеседование продуктового аналитика в Авито
• Дата/время
• Релокация в UK
• Среды разработки JetBrains получили дополнение кода с помощью ИИ
•
Case Study: Challenge to Design Investment UX for 90 Million Users
•
3 tips for less flaky Maestro tests
•
The 14 pains of building your own billing system
•
How Disney+ Scaled to 11 Million Users on Launch Day
•
How we built Text-to-SQL at Pinterest
•
Disney’s 12 principles of animation, exemplified in UX design
•
Asking for help is a core developer skill
Аналитика, маркетинг и монетизация
• Самые скачиваемые и зарабатывающие приложения в России в марте 2024
• Palmsy — фальшивая социальная сеть, которая сама ставит вам лайки
• Самые зарабатывающие приложения в феврале 2024
• Propensity score matching: как оценивать маркетинговые кампании, если невозможно провести A/B тесты
• Rooms, приложение для 3D-дизайна и «уютная игра», получила крупное обновление
• Яндекс представил Yandex Mobile Ads SDK 7
• Маркетологи в мобайле: Даниил Коляда (Head of Mobile Marketing, Fonbet)
• Storiaverse запускает приложение для коротких рассказов, объединяющее анимацию и текст
AI, Устройства, IoT
• Управляем умным домом Home Assitant через Алису и без интернета. Часть 1
• Как сделать автоматический полив: грунт и гидропоника
• Анализ новостей с помощью сегментации и кластеризации временных рядов
• Система мониторинга температуры в теплицах (Telegram, 1С, Yandex Алиса, Excel и голосовое оповещение)
• ИИ-агенты Replit Teams помогут писать и исправлять код
• Apple представила ReALM — новую ИИ-модель, которая может сделать Siri намного быстрее и умнее
? Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/g8/pq/d2/g8pqd2pgw_cr2-0zvol_9r0iaxs.jpeg)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Сделайте ваше iOS-приложение меньше с помощью динамических фреймворков
• SwiftUI: архитектура State-Model-View
• Протокол Identifiable в SwiftUI с примерами
• Apple Vision Pro: обзор платформы и создание первого мобильного приложения
• Сборка приложения для AppStore. Используем Jenkins, Fastlane, TestFlight
• Что такое Retain Cycle: вопросы с собеседований
• Apple занялась домашней робототехникой
• AltStore выходит на iOS и добавляет оплату через Patreon
• Осваиваем ViewThatFits. Часть 2
• TipKit чтобы подсветить функции в приложении
•
![](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/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Сам себе экосистема. Часть 4: как я реализовал клиент Telegram на Android-смартфоне 14-летней давности?
• Конструкторы-самозванцы в Kotlin
• Игра в безопасность Android-приложений
• Введение в Trio
• Как протестировать Android-приложение, которому требуются разрешения
• Глобальные события в мобильном приложении
• Жизненный цикл Activity приложения: базовые принципы и понятия
• Accessibility Scanner в Android
• Как работает Android Work Profile
• Разбор кода магазина приложений
• Опыт, Java vs Kotlin и работа со списками
• Android 15 готовит улучшенный десктопный режим
•
![](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/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Распознавание виджетов на экране приложения Flutter
• Как Compose Multiplatform for iOS может убить 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/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• KMP, догфудинг и велосипеды в стартапе американской версии «Кухни на районе»
• Как UX/UI дизайнеру улучшить UI Kit: 10 конкретных советов
• Скрытые сокровища интерфейсного дизайна: 10 не популяризованных UI элементов, способных улучшить взаимодействие
• Открытое алгоритмическое собеседование
• Как разрабатывать Яндекс Маркет, обеспечивать качество и работать с BDUI
• Собеседование продуктового аналитика в Авито
• Дата/время
• Релокация в UK
• Среды разработки JetBrains получили дополнение кода с помощью ИИ
•
![](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/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Самые скачиваемые и зарабатывающие приложения в России в марте 2024
• Palmsy — фальшивая социальная сеть, которая сама ставит вам лайки
• Самые зарабатывающие приложения в феврале 2024
• Propensity score matching: как оценивать маркетинговые кампании, если невозможно провести A/B тесты
• Rooms, приложение для 3D-дизайна и «уютная игра», получила крупное обновление
• Яндекс представил Yandex Mobile Ads SDK 7
• Маркетологи в мобайле: Даниил Коляда (Head of Mobile Marketing, Fonbet)
• Storiaverse запускает приложение для коротких рассказов, объединяющее анимацию и текст
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Управляем умным домом Home Assitant через Алису и без интернета. Часть 1
• Как сделать автоматический полив: грунт и гидропоника
• Анализ новостей с помощью сегментации и кластеризации временных рядов
• Система мониторинга температуры в теплицах (Telegram, 1С, Yandex Алиса, Excel и голосовое оповещение)
• ИИ-агенты Replit Teams помогут писать и исправлять код
• Apple представила ReALM — новую ИИ-модель, которая может сделать Siri намного быстрее и умнее
? Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.