В нашем новом дайджесте не страшный Accelerate и MVVM без M, жизнь после отвала eMMC и инъекции зависимостей в Compose, история успеха Flutter, проблемы маленьких приложений, 900 самых популярных инструментов ИИ на базе open source и многое другое. Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

iOS
• Убираем M из MVVM в SwiftUI
• Почему Accelerate — это не страшно
• Продление подписки Apple Developer from Russia в апреле 2024 без иностранной карты и сэкономить пару тройку тысяч рублей
• Зачем мне Kotlin в iOS-разработке? Я только Swift выучил!
• Как дизайнить доступность для скринридера
• Анимация чисел в SwiftUI с помощью contentTransition
• Поваренная книга SwiftUI: создание текстовых полей в SwiftUI
• Apple Vision Pro не пользуется популярностью у разработчиков
• Правила App Store разрешили эмуляторы и внешние ссылки для стриминга
•
Get Started with Embedded Swift on ARM and RISC-V Microcontrollers
•
Quick and Painless Persistency on iOS
•
In Search of a Smooth Scroll
•
App Store Subscriptions and Family Sharing
•
Trigger value pattern in SwiftUI
•
Apply pinch to zoom to any view in SwiftUI
•
Passing One SwiftUI View as a Parameter to Another SwiftUI View
•
Display empty states with ContentUnavailableView in SwiftUI
•
Level Up Your Career by Adding UI Tests to Your SwiftUI App
•
Why StateObject’s need to be marked as private in SwiftUI?
•
I made an old-style keyboard in Swift
•
The Best Example of Leveraging iOS Widget Potential: Duolingo
•
Deep linking for local notifications in SwiftUI
•
CocoaHeadsNL Meetup
•
Creating The DVD Screensaver In SwiftUI
•
Flip Book Effect — SwiftUI
•
Animating Swift Charts
•
OpenSwiftUI — открытая реализация SwiftUI
•
SwiftUI Environment Overrides — QA-ассистент для SwiftUI
Android
• Как я написал клиент электронного дневника своей области
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 2
• Жизнь после отвала eMMC. Часть 2: даём новую жизнь устройствам с полностью мёртвой памятью. Загружаем Android с MicroSD
• Инъекция зависимостей в Compose
• Введение в Trio: часть 2
• Разворачиваем ML модель с использованием ONNX на Android в километре над землей
• Как я курсовую писал на gRPC+REST в связке с клиентом на Android+Jetpack Compose
• Создание собственного ключа Android приложения
• HomeAssistant на Android
• Разработка новостного приложения. Часть 5. Подготовка к публикации в Google Play
• Экзоскелет для ExoPlayer
• Вышла первая бета-версия Android 15
• Studio Bot превращается Gemini in Android Studio
• Google запускает новую сеть Find My Device в США и Канаде
•
Technical Debt Undermines Android Application Development
•
Navigating the Waters of Kotlin Multiplatform: Exploring Navigation Solutions
•
Improving dependency sync speeds for your Gradle project
•
OCR with Gemini LLM on Android
•
How to Implement Biometric Authentication with Jetpack Compose and AES Encryption
•
Android Architecture & Design Interview Questions & Answers
•
Enable users to share your app’s deep links using navigation-recents-url-sharing
•
Publishing Android, Java or Kotlin Libraries with AWS CodeArtifact
•
Spotify-Inspired Audio Buffering Slider Animation with Jetpack Compose
•
How Kotlin Annotations Work — Part 2: Moshi Case Study
•
What’s new in Kotlin 2.0.0-RC1
•
Kotlin — Sealed classes vs Sealed interface
•
Modern Android App Template with Jetpack Compose
•
Foundational Tools in Android
•
Implementing Critical Alerts on Android
•
Mastering SOLID Principles in Android App Development for Maintainable Code
•
Implement Pinch-to-Zoom for your Image Grids by Jetpack Compose
•
Does Native Android Development Have a Future?
•
Sealed Classes for UI State are an ANTI-PATTERN
•
Building a Speedometer widget using Jetpack Compose Canvas API
•
Building Quality Android Apps for the Future with Continuous Integration
•
EinkBro — маленький быстрый браузер для Eink
•
Tap Target Compose — показ новых фич в Compose
Кроссплатформа
• И полгода не прошло: релиз Qt 6.7 и Qt Creator 13. Что нового и что изменилось?
• Flutter: история успеха
• Реализация pin code во Flutter приложении
• Как мы сделали ставку на KMP
•
How to implement your design system in a Flutter app
•
The Dart Speed
•
Shorebird 1.0 – Update your Flutter apps instantly
•
The journey of writing a new package
•
React Native App performance is a myth?
•
Clean Architecture and state management in Flutter: a simple and effective approach
Разработка
• Может ли мобильный-разработчик стать CTO?
• Разработка на основе заголовков
• Huawei продвигает собственную ОС и планирует дистанцироваться от Android, Windows и других операционных систем
• Как дизайнеру и любителю технологий жить после Apple Vision Pro
• Мобильный UX/UI дизайн: 10 лайфхаков для создания безупречных мобильных приложений
• Проблемы маленьких приложений при увеличении нагрузки по данным
• Как выжать все соки из Jenkins
• Убиваем Lottie? Тащим Rive?
• Вся правда про удаленку
• Зачем нужен Zig, и чем он отличается от других языков
•
Hello World: A deep dive into the world of abstraction behind a modern Hello World program
•
Fear makes you a worse programmer
•
Improving Code Reviews with Storytelling
•
Are You Doing Product Management or Bullshit Management?
•
Chronon, Airbnb’s ML Feature Platform, Is Now Open Source
•
Bottom Tab Bar Navigation Design Best Practices
•
PumpkinOS — открытая реализация PalmOS
Аналитика, маркетинг и монетизация
• Приложение для наблюдения за затмением вышло в чарты App Store и Google Play
• Психология в UX/UI дизайне: 10 принципов, повышающих вовлеченность и удержание
• Vids — новый инструмент для продуктивной работы от Google
• Вышел 2024 App Marketing Trends Report
• Много лиц и одна проблема: каким бывает мошенничество в рекламе и чем отличаются боты от реальных людей в 2024 году
•
Navigating SKAdNetwork: Build Your Game’s Conversion Schema in 4 Easy Steps
AI, Устройства, IoT
• Я изучила 900 самых популярных инструментов ИИ на базе open source — и вот что обнаружила
• Открываем YandexART API и рассказываем, как мы учили нейросеть создавать картинки, которые понравятся людям
• Умная квартира начальника: хотел всё на Z-Wave и Алисе, но решил сэкономить
• Распознавание лиц на микрокомпьютерах
• Исследователи Apple разработали LLM, которая понимает интерфейс приложений
• Google представил собственный процессор Axion для ИИ
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.


• Убираем M из MVVM в SwiftUI
• Почему Accelerate — это не страшно
• Продление подписки Apple Developer from Russia в апреле 2024 без иностранной карты и сэкономить пару тройку тысяч рублей
• Зачем мне Kotlin в iOS-разработке? Я только Swift выучил!
• Как дизайнить доступность для скринридера
• Анимация чисел в SwiftUI с помощью contentTransition
• Поваренная книга SwiftUI: создание текстовых полей в SwiftUI
• Apple Vision Pro не пользуется популярностью у разработчиков
• Правила App Store разрешили эмуляторы и внешние ссылки для стриминга
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Как я написал клиент электронного дневника своей области
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 2
• Жизнь после отвала eMMC. Часть 2: даём новую жизнь устройствам с полностью мёртвой памятью. Загружаем Android с MicroSD
• Инъекция зависимостей в Compose
• Введение в Trio: часть 2
• Разворачиваем ML модель с использованием ONNX на Android в километре над землей
• Как я курсовую писал на gRPC+REST в связке с клиентом на Android+Jetpack Compose
• Создание собственного ключа Android приложения
• HomeAssistant на Android
• Разработка новостного приложения. Часть 5. Подготовка к публикации в Google Play
• Экзоскелет для ExoPlayer
• Вышла первая бета-версия Android 15
• Studio Bot превращается Gemini in Android Studio
• Google запускает новую сеть Find My Device в США и Канаде
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• И полгода не прошло: релиз Qt 6.7 и Qt Creator 13. Что нового и что изменилось?
• Flutter: история успеха
• Реализация pin code во Flutter приложении
• Как мы сделали ставку на KMP
•

•

•

•

•

•


• Может ли мобильный-разработчик стать CTO?
• Разработка на основе заголовков
• Huawei продвигает собственную ОС и планирует дистанцироваться от Android, Windows и других операционных систем
• Как дизайнеру и любителю технологий жить после Apple Vision Pro
• Мобильный UX/UI дизайн: 10 лайфхаков для создания безупречных мобильных приложений
• Проблемы маленьких приложений при увеличении нагрузки по данным
• Как выжать все соки из Jenkins
• Убиваем Lottie? Тащим Rive?
• Вся правда про удаленку
• Зачем нужен Zig, и чем он отличается от других языков
•

•

•

•

•

•

•


• Приложение для наблюдения за затмением вышло в чарты App Store и Google Play
• Психология в UX/UI дизайне: 10 принципов, повышающих вовлеченность и удержание
• Vids — новый инструмент для продуктивной работы от Google
• Вышел 2024 App Marketing Trends Report
• Много лиц и одна проблема: каким бывает мошенничество в рекламе и чем отличаются боты от реальных людей в 2024 году
•


• Я изучила 900 самых популярных инструментов ИИ на базе open source — и вот что обнаружила
• Открываем YandexART API и рассказываем, как мы учили нейросеть создавать картинки, которые понравятся людям
• Умная квартира начальника: хотел всё на Z-Wave и Алисе, но решил сэкономить
• Распознавание лиц на микрокомпьютерах
• Исследователи Apple разработали LLM, которая понимает интерфейс приложений
• Google представил собственный процессор Axion для ИИ
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.