В нашей новой еженедельной подборке чистая архитектура и MVVM в iOS, закан RxJava и критических оповещений на Android, опыт внедрения компонентной разработки, смартфон для джаваскриптера-олдфага, практическое руководство по запросу отзывов и многое другое. Подключайтесь!

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



iOS

• О, вы из Англии? Локализация Ozon Seller на iOS
• Как быстро сделать файл PrivacyInfo.xcprivacy для вашего iOS-приложения
Reflection в iOS: как посмотреть содержимое любой сущности
• Clean architecture и MVVM в iOS разработке
• SwiftUI уроки (часть 9)
• Импортирование картинок и звуков в Swift Package
• А так ли нужна Swift Modern Concurrency?
• Мгновенный фидбэк: как оперативно получать отзывы о приложении в App Store
• AltStore PAL заработал на iOS в Европе
• Apple в ЕС запускает загрузку приложений через веб-сайты
• Apple объяснила удаление первого эмулятора Game Boy из App Store
• Поваренная книга SwiftUI: изображения и иконки — Часть 1
•  Creating Shapes from SVG in a SwiftUI app
•  Custom Toggle Styling in SwiftUI
•  Splitting Up a Monolith: From 1 to 25 Swift Packages
•  Swift 6 upgrade Preparation
•  Fetching OSLog Messages in Swift
•  Bar Chart creation using Swift Charts
•  Getting started with Benchmark package
•  Defining Custom Errors With Advanced Descriptions In Swift
•  How to do pagination in SwiftUI
•  Common Mistakes to Avoid When Using Enums in Swift
•  Is Dynamic Isolation Bad?
•  How to use experimental Swift versions and features in Xcode?
•  CountryKit: the framework Apple forgot to build
•  Your guide to Metal ray tracing
•  Integrate Screen-Sharing Into a SwiftUI App
•  SwiftUI Custom Transitions
•  Building Netflix UI Animations
•  Gradiente — простые градиенты
•  FontBlaster — программная загрузка шрифтов

Android

• RxJava — всё?
• Реализация Критических оповещений на Android
• Kodein DI для Android. Целостность графа и тесты на DI
Генерируем отчеты PDF на Android с использованием HTML и WebView в фоне
• Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение
• Интеграция MediaPipe в Android-приложение видеоконференцсвязи
• Google объединяет команды Android и аппаратного обеспечения ради скорости и искусственного интеллекта
• Android 15 может получить возможность помещать приложения в карантин
• В Android 15 может появиться NFC-зарядка
• Вопросы с собеседований: жизненный цикл View в Android
• Введение в Trio: часть 3
•  Enhancing Jetpack Compose with Koin
•  Focus as a state — new effective Android TV focus management system with Jetpack Compose
•  Jetpack Compose Navigation, Ktor, and Koin DI Unlocking MAD Skills
•  Speed Up Your Gradle Builds with the New Gradle Critical Path Analyzer
•  Ktor for Android Networking: Moving Beyond Retrofit
•  Learning about Android runtime
•  Extending Coil
•  Plotting Financial Data in Kotlin with Kandy
•  Nested LazyColumn in Jetpack Compose
•  Introduction to Foundational Tools in Android
•  Some Best-Practices for State Management in Jetpack Compose
•  Demystifying JNI: Boost Performance and Access Native Features
•  Custom Navigation Drawer component with Jetpack Compose
•  Now in Android: 103 — Android 15 Beta, Gemini in Android Studio, Google Drive improvements, & more
•  MVVM vs. MVI — Understand the Difference Once and for All
•  The ONLY Thing to MASTER as an Android Developer (And Why 99% FAIL!)
•  Boosting Bazel adoption on Android with automation
•  Inline Functions: inline, crossinline, and noinline
•  Droid-ify — клиент F-Droid с материальным дизайном
•  Kotlin Faker — генератор фейковых данных
•  Pokedex Compose — современная Android-разработка

Кроссплатформа

Где заканчивается Flutter и начинается платформа?
• 5 уроков после 5 лет разработки на Flutter
• Один репозиторий, чтобы править всеми
• Опыт внедрения компонентной разработки
Рекуррентные платежи, или как мы доработали функционал платных подписок во Flutter приложении
• Разбираем генеративный SDK от Google — google_generative_ai. Часть 1
•  Proactively Securing React Native Applications: Best Practices and Strategies
•  Flutter Consent Messages with Google Admob
•  Efficiency Unleashed: The Power of Automation in Our Flutter Adventure
•  How to Find Memory Leaks in Flutter Apps?
•  Stop using Flutter, it will die, sooner than you think
•  Advanced Theming Techniques in Flutter: Leveraging Extensions for Dynamic UIs
•  Accessibility in Flutter on the Web

Разработка

• Смартфон для джаваскриптера-олдфага: стоит ли гику брать дешманские девайсы на KaiOS? Смотрим на Nobby 240 LTE
• Инженерная культура BigTech: работа мечты или испытание на прочность?
• Как устроена мобильная разработка в Кинопоиске
• Пробить стеклянный потолок и стать сеньором
• ВКонтакте запустил бесплатный курс по разработке мини-приложений
• VK открывает набор на оплачиваемую летнюю стажировку
•  How to write a code formatter
•  Power of Blameless Culture in Software Engineering
•  There is always something: Fighting distractions as a software developer
•  Healthy Documentation
•  Building Something Real in your spare time
•  Using server-side Swift for machine learning processing
•  Basic Things

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

• Как повысить рейтинг приложения: практическое руководство по запросу отзывов
• Новое приложение Indaband позволяет создавать музыку вместе с людьми по всему миру
• Топ быстрорастущих приложений в России в апреле
• Airchat — социальная сеть, построенная вокруг голоса

AI, Устройства, IoT

• Как сделать умный офис на 300+ сотрудников? Свет, санузлы и душевые, переговорки и не только

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

Комментарии (0)