Темы



Мобильная разработка за неделю #547 (15 — 21 июля)

В новом выпуске создаем макросы без лида, ИТ-курсов и кредитов, прощаемся с XCAssets и пишем приложения для Android 1.0, программируем кастомные макеты в Compose и переосмысливаем Agile, определяем главный тренд экономики приложений, продвигаем аудиокниги в инновационной глобальной AR-кампании и многое другое. Подключайтесь!

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

er3q-g-65b66gb4c5t8ey3vk4co.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Пишем свой Swift макрос без лида, ИТ-курсов и кредитов
• Скрытая (на виду) сила KeyPath’ов
• Марко Армент переписал Overcast
• Как запустить нативный код из WKWebView
• Вышла первая открытая бета iOS 18
• Проверяем, есть ли новая версия приложения в App Store
• 10 вопросов с собеседования iOS-разработчика (+ все собеседования)
• Прощаемся с XCAssets. Экспорт картинок из Figma на CDN, а оттуда — в приложение
• SwiftPM — фреймворки вместо кофе
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to delay server requests for user«s search query with SwiftUI and Combine
• 377ae0333d0f4b7b97307c9eea5ee21a.gifNew visionOS sample code
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSome tips & tricks with the new iOS 18 ScrollView API
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBlend Modes in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreating custom particle emitters with RealityKit
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUse FFmpeg to speed up iOS Simulator recordings
• 377ae0333d0f4b7b97307c9eea5ee21a.gifScrollView phase changes on iOS 18
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftUI: Use SwiftData outside a View (In a Manager Class/ViewModel)
• 377ae0333d0f4b7b97307c9eea5ee21a.gif1000«s applications, 2 interviews. Whats wrong with my resume?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDeveloping an Infinite Four-Direction Scrollable Pager with SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwift 6: Future of iOS Development
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCustom Button Styles like a PRO! (SwiftUI)
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFacebook* Messenger Gradient Effect — SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCustom SwiftUI Countdown Timer
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI: Drop Down Picker
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngExploring the Swift Algorithms Package
• 96716bcb926741e79bb1c284a88083ca.pngBookPlayer — iOS-плеер для аудиокниг
• 96716bcb926741e79bb1c284a88083ca.pngAnimatable — анимации для представлений SwiftUI
• 96716bcb926741e79bb1c284a88083ca.pngSwipeActions — свайпы для любого View

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024
• Jetpack Compose: отличная идея, но плохая реализация? — обсуждение на Reddit
• Топ-5 плагинов для Android Studio
• Кастомные макеты в Compose — стопка карточек с кошками
• Samsung выпустит Android XR гарнитуру осенью
• Android-разработка в 2024 году
• Вынос сборки Android-проектов с машины разработчика на сервер
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOverscroll animations in Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifType Safe Bottom Navigation in Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifStack vs. Heap in Kotlin: Understanding Memory
• 377ae0333d0f4b7b97307c9eea5ee21a.gifRestartable functions from first principles
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreating Custom Text Views in Android: A Fun Exploration with SampleView
• 377ae0333d0f4b7b97307c9eea5ee21a.gifModeling Android Screen State
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Studio Ladybug 2024.1.3 Canary 1 now available
• 377ae0333d0f4b7b97307c9eea5ee21a.gifServer-Driven UI Android Implementation
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReal-Time Pose Detection in Camera with ML Kit in Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin Serialization — Json mistakes I made with Polymorphism and More
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMicro optimizations — Android Developers Backstage
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngEdge-to-edge and insets | Compose Tips
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngExploring Exposed: A Kotlin Solution to Database Access
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDebugging the Future: Exploring Coroutine Debugger Tools
• 96716bcb926741e79bb1c284a88083ca.pngFinch — меню для отладки Android-приложений
• 96716bcb926741e79bb1c284a88083ca.pngFilm Time — фильмы в современной Android-разработке

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

• Реализация доступности веб-приложений с помощью Flutter
• Компонентная архитектура приложений на Flutter: почему выбрать BLoC недостаточно
• Макросы на Dart: первые ощущения от использования и лайфхаки на будущее
• Полный гайд по тестированию на Flutter. Часть 1: Знакомство с методами тестирования
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter Design Systems: Exploring Modern Alternatives to Material Design
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Achieve Effortless List Item Animation and Reordering in Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCompute in Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifIntroducing KoVibes a Kotlin Multiplatform library
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReact Native + Expo: Simplifying Cross-Platform Mobile App Development
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Generate Executables in KMP (apk, iab, msi, dmg, deb)
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngLocal Preferences in Kotlin Multiplatform With DataStore
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngEnabling Kotlin Multiplatform Success: The Android Jetpack Journey
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMaking the Big Kotlin Multiplatform Decision

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

• Соавтор Манифеста Agile говорит о «переосмыслении» проекта
• Вакансии-призраки и как защититься от них
• Видео Yandex BDUI Conf 2024
• Mobile Performance: расшифровка метрик
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy, after 6 years, I«m over GraphQL
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWe need visual programming. No, not like that.
• 377ae0333d0f4b7b97307c9eea5ee21a.gifLessons learned in 35 years of making software
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding Pinterest Canvas, a text-to-image foundation model
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow I build simple Mac apps using Go
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMultithreading for Beginners

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

• Загрузки падают, а доходы растут — главный тренд экономики приложений
• Audible оживляет аудиокниги с помощью инновационной глобальной AR-кампании
• Presti использует генеративный ИИ для улучшения фотосъемки мебели
• Какие категории приложений получают больше всего загрузок и зарабатывают больше всего денег
• Самые скачиваемые и зарабатывающие приложения в мире в июне 2024
• Стресс-тест оплаты по QR на кассе в супермаркете. Сравниваем мобильные интерфейсы банков
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow we use friction logs to improve products at Stripe

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

• В 48 собесах от оффера в Гугл
• Бюджетный умный климат: как я заставил дешевый кондиционер поумнеть и слушаться Алису
• Mistral представил две новые ИИ-модели — Codestral Mamba для кода и Mathstral для научных изысканий
• Умная квартира с террасой на крыше: осталось уговорить мужа
• ProPainter, Удаление объектов на видео с помощью нейросети, Русская Портативная версия
• Особенности работы с беспроводными счетчиками импульсов Lora от Вега-Абсолют

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

© Habrahabr.ru