Темы



Мобильная разработка за неделю #545 (1 — 7 июля)

В новом дайджесте макросы и типизированные ошибки, форматирование кода и Unit-тесты, «железо» для Android Studio, переход на docs as code, возвращение Myspace для Поколения Z, AirPods с камерами и многое другое. Подключайтесь!

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

cjwfocdp-borw9lqq641s0wol8c.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Макросы — напишут код за вас, но есть нюанс…
• Типизированные ошибки (typed throws) в Swift с примерами
• Мне кажется, или SwiftUI еще не готов к проду? — обсуждение на Reddit
• Адаптируем VoiceOver для людей
• Принципы SOLID на примере iOS-разработки
• Как побеждать в конкурсах от Telegram
• Уязвимости в CocoaPods позволяли манипулировать библиотеками
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMixing colors in SwiftUI and Xcode 16
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDisplaying tips based on parameters and events with TipKit
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuild a Jenga game in Vision OS
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAdAttributionKit: What subscription apps need to know
• 377ae0333d0f4b7b97307c9eea5ee21a.gifConsolidated ViewState
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftUI and Accessibility: Creating Inclusive iOS Applications (eBook)
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExploring the Navigation Split View
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering the Swift Testing Framework
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering ScrollView in SwiftUI. Scroll Phases
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAdvanced Async Sequences in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwift 6: Incrementally migrate your Xcode projects and packages
• 377ae0333d0f4b7b97307c9eea5ee21a.gifEvolution of SDUI in iOS App development
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAsyncStream and AsyncSequence for Swift Concurrency
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Draggable Tab Bar
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Re-Orderable Tab bar
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Swipe to Hide Header
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMastering Swift Testing: Run Serialized Tests with One Line of Code
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngExplicit ViewBuilder
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMy Favorite SwiftUI Updates in iOS 18
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngExploring Predictive Code Completion in Xcode 16
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPomodoro Timer App — SwiftUI
• 96716bcb926741e79bb1c284a88083ca.pngZLPhotoBrowser — фотопикер в стиле Wechat
• 96716bcb926741e79bb1c284a88083ca.pngXCStrings Tool — константы для строк локализации

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Интеграция форматирования кода в Android-проекты
• Unit-тесты в Android для начинающего разработчика
• Маппинг данных в Kotlin
• Как преодолеть сложности прохождения ревью Google Play в условиях санкций
• Android-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма
• Как я перестал волноваться и полюбил ошибки в корутинах: поймай меня если сможешь
• «Железо» для Android Studio (gradle-сборка) в 2024 году
• Переходишь на Compose? Не спеши!
• Как работает ТВ в Android TV?
• Нужны ли Android-разработчики на заводе?
• Gradle DSL изнутри
• Kotlin DSL как единый источник правды для решения многих задач
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering SDUI: A Deep Dive into Server-Driven UI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMigrating from Play Core Library
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Studio — Show Color and Icon Previews in Autocompletion
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPinterest-Inspired Android UI Development With Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow LiveData Updates 100 Observers in Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhen should you use StateFlow over LiveData in Android development?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding ViewModel Persistence During Configuration and Screen Rotation
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Adventure: Flow of Views to Composable Flow
• 377ae0333d0f4b7b97307c9eea5ee21a.gifStop Using the Wrong Loop! From for to onEach: Ultimate Guide to Kotlin Loops
• 377ae0333d0f4b7b97307c9eea5ee21a.gifRemote Config with Google Sheets is Crazy!
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCancellation in Kotlin Coroutines
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Studio: debugging is a kind of hell for years and years
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOn-Device Machine Learning with TensorFlow Lite
• 377ae0333d0f4b7b97307c9eea5ee21a.gifComplete Guide to Ace an Android Developer Interview
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngВсе видео droidcon Italy 2023
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngLifecycles, Coroutines and Scopes
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDeveloper first Gradle builds
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDataFrame: Kotlin«s Innovative Approach to Data Structures
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTexts, dates, numbers, currencies, plurals, etc. App internationalization guide
• 96716bcb926741e79bb1c284a88083ca.pngAndroid Crypto Samples — примеры криптографии
• 96716bcb926741e79bb1c284a88083ca.pngEntity It — генератор Entity классов

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

• Road to Flutter — анализ опыта миграции с React Native
• Widget тесты с помощью ApprovalTests
• Multiplatform UI с Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifEnhancing Flutter apps: Implementing unique charts
• 377ae0333d0f4b7b97307c9eea5ee21a.gifXamarin alternatives for cross-platform mobile development
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExploring the Viability of Cross-Platform UI Development with Compose Multiplatform
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow we built it: Creating the I/O Crossword puzzle, powered by AI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreate PDF file in your app
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExploring Hidden Treasures in Flutter: Lesser-Known Widgets Unveiled
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSimplify Network Management with CMPConnectivityMonitor in Compose Multiplatform
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding Concurrency in Flutter
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngUnit & UI Testing With Compose Multiplatform
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFull Guide to Dependency Injection With Koin for Compose Multiplatform
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngKotlin Multiplatform Libraries Evolution
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngReact Native & Expo Router Course — Build a Meditation App
• 96716bcb926741e79bb1c284a88083ca.pngDropdown — выпадающее меню на Compose Multiplatform

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

• Как мы в RuStore на docs as code переходили
• Получение D-U-N-S номера для мобильных разработчиков
• Работа над ошибками: как мы сделали приложение World Class удобнее
• Защита персональных данных в мобильных приложениях: как не нарушить закон
• Генеративный ИИ появился в сервисе VK для сбора и анализа ошибок в приложениях
• Самые высокооплачиваемые вакансии июня в сфере разработки приложений
• Чистый код — не значит правильный: clean code, паттерны, лучшие практики
• Менеджмент — ловушка или лучший карьерный путь для разработчика?
• Разработка библиотек с использованием подхода Request for Comments
• Пишем приложение на Ktor
• Kotlin Script: для кого, зачем и как
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow Google migrated billions of lines of code from Perforce to Piper
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDeveloper workflow tips no one tells you about
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe gifts of 40
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMy programming beliefs as of July 2024
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSolving a math problem with planner programming
• 377ae0333d0f4b7b97307c9eea5ee21a.gifShould you learn C to «learn how the computer works»?
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGo for Absolute Beginners — Tutorial

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

• Социальная сеть noplace, смесь Twitter и Myspace для Поколения Z, заняла первое место в App Store
• Fortnite и Epic Games Store запускаются на iOS в Европе
• AAA-игры не пользуются спросом на iOS
• Деньги из космоса. Как приложения зарабатывают $1 МЛН в месяц на гороскопах

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

• OrangePi AiPro — гайд и обзор
• У вас новый ремонт? Лучше! Рисунок нового ремонта. Как мы из Stable Diffusion сделали дизайнера интерьеров
• Интернет вещей с микрокомпьютером Repka Pi
• Figma отключит ИИ-функцию, которая копирует дизайн других приложений
• Apple выпустит AirPods с камерами
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAI and Kotlin: A Perfect Mix

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

© Habrahabr.ru