Темы



Мобильная разработка за неделю #549 (29 июля — 4 августа)

В новом дайджесте конвейеры мобильного развертывания за $0 и нестрашный Metal, Selenoid без симуляции и странные описания в Play Store, адаптивная верстка на React Native, упадок мобильной разработки, оптимизация пейвола и многое другое. Подключайтесь!

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

dg-sq88_thadzeiijjeb-lqx76u.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Конвейеры мобильного развертывания за $0
• Водитель приедет через 3 минуты: реализация Uber Live Activity на iOS
• Apple выпустила библиотеку гомоморфного шифрования для Swift
• Вышла бета-версии iOS 18.1 с зачатками Apple Intelligence
• Почему Metal перестал быть страшным
• Локализация iOS-приложения за 1$ в 2024 году
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAccessibility Setting Nuggets from iOS 18
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAsync and Await in Swift: Advanced Guide for Senior iOS Developers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Meme that gave me Imposter Syndrome
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftUI app lifecycle: issues with ScenePhase and using AppDelegate adaptors
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing @DebugDescription in Xcode 16
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding Swift Executables
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreating a Sunburst Chart
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Tile Images in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifXcode is actually a great IDE
• 377ae0333d0f4b7b97307c9eea5ee21a.gifNavigation Patterns in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to programmatically parse the contents of an XCResult bundle
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTranslating text in your SwiftUI app with the Translation framework
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow the Medium iOS team works effectively with legacy code
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding an iOS Networking SDK
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Floating Bottom Sheets
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Refactor SwiftUI into Reusable Views
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI App Intro Animation«s — Shape Morphing Effect
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngXcode File Headers and Macros
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Use TextField Keyboard Focus in SwiftUI with FocusState
• 96716bcb926741e79bb1c284a88083ca.pngSafeDI — безопасная Compile-time инъекция зависимостей в Swift
• 96716bcb926741e79bb1c284a88083ca.pngDominantColors — главные цвета на изображении

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Selenoid без симуляции: настройка, отладка и автоматизация на физическом Android-устройстве
• Вопросы доступности при использовании кастомного макета стопки карт
• Gradle + GitLab: эффективный и бесплатный билд-кэш
• Нужно ли учить Java для Android-разработки в 2024
• ИИ генерирует странные описания в Play Store
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid MVVM Architecture Interview Questions
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCommand Your User Inputs with Jetpack Compose— Text Field Features Hidden in Plain Sight
• 377ae0333d0f4b7b97307c9eea5ee21a.gifLint Revisit: Providing Alternatives
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreating Scalable Composables in Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing kotlin-inject in a Kotlin/Compose Multiplatform project
• 377ae0333d0f4b7b97307c9eea5ee21a.gifArchitecture related decisions in Android — Response classes
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAdvanced Kotlin Coroutine Cheat sheet
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAssisted Injection a New Update in Hilt
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Interview Questions with Kotlin Coroutines
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering Regex Groups
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAdvanced layout animations in Compose (Shared elements)
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCompose Tips for Delightful UI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCompose Migration Side Effects — What Can Go Wrong?
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding Libraries for the Next 25 Years
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTurbocharge Your Data: Harnessing Kotlin and gRPC to Handle Real-Time Data From Connected Cars
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGrow with the Flow: How Kotlin Flow Became a Game Changer for our Business
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCoroutines: Concurrency in Kotlin
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngKotlin Design Patterns & Best Practices — Part 1: Build a Chess Game
• 96716bcb926741e79bb1c284a88083ca.pngImageCropView — обрезка изображений в Jetpack Compose
• 96716bcb926741e79bb1c284a88083ca.pngGiphy Trending — популярное с Giphy

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

• Адаптивная верстка на React Native
• Полный гайд по тестированию на Flutter. Часть 5: Mocktail + Часть 4: продвинутое модульное тестирование
• Cтейт-менеджмент на Flutter. Введение в Bloc
• Упрощение Работы с Расширениями темам в Flutter: Инструменты и Пакеты для Генерации Стилей
• KMP на ОС Аврора: проблемы и пути их решения
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReducing App Size and Memory Usage in Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy Kotlin Multiplatform Teams Should Share Source, not Binaries
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDesktop app development with Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifApp clip wi7th React Native and New Arch (and Swift)
• 377ae0333d0f4b7b97307c9eea5ee21a.gifShake It Up with CMPShakeDetection: Integrating Fun in Compose Multiplatform
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngThe Kotlinx DateTime API for Compose Multiplatform
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Implement Drag & Drop in Jetpack Compose
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Combine animations with AnimatedBuilder
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHitchhiker«s Guide to Kotlin Multiplatform Libraries
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuild an Uber clone with Flutter and Supabase
• 96716bcb926741e79bb1c284a88083ca.pngFantasy Premier League — фэнтези-футбол на Kotlin Multiplatform

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

• Упадок мобильной разработки
• Самые высокооплачиваемые вакансии июля в сфере разработки приложений
• Bumble и Hinge позволяли определять местоположение пользователей с точностью до 2 метров
• Алгоритмическая сессия на собеседовании
• Автоматическая генерация верстки под Server-driven UI из макетов Figma
• Учимся договариваться о деньгах — Офферы, Зарплаты, Повышение
• Дизайн системы — это слишком модно, возможно они вам не нужны
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGoing Indie: From Side Project to Going Independent
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGoogle«s secret to painless code reviews
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow Passwordless Authentication Works — A Deep Dive
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPerfectionism — one of the biggest productivity killers in the engineering industry
• 377ae0333d0f4b7b97307c9eea5ee21a.gifI Built a 2D Game in 40 Minutes with Ebiten
• 377ae0333d0f4b7b97307c9eea5ee21a.gif80% of developers are unhappy. The problem is not AI, nor is coding
• 377ae0333d0f4b7b97307c9eea5ee21a.gifI recreated Shazam«s algorithm with Go
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to get a FAANG Dev Job in your 40s

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

• Оптимизация пейвола — история успеха
• MONOPOLY GO! быстрее всех заработала $3 млрд
• Рынок приложений в первом полугодии 2024 года — отчет Apptica
• Топ-3 приложения Short Drama стриминга зарабатывают $3 млн в день
• Сеть Chick-fil-A запустила в приложении игру и достигла наибольшего количества ежедневных загрузок в истории
• Метрики продуктового дизайна в Домклик

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

• Мастер-аккаунт Zeekr. Как Arduino поможет Вашему китайскому авто?
• Инженер по машинному обучению — новый путь обучения от Google

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

© Habrahabr.ru