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

В этом выпуске Swift и SwiftUI в iOS 18 и собственная система мониторинга фильтра воды, очередные похороны Flutter и суровые истины о программировании с помощью ИИ, дейтинг в России 2024, открытые русскоязычные опенсорс-модели и многое другое. Подключайтесь!

gjt_j4kgm47xvcxyyh6eco0ye5w.png

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

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Использование Apple Swift и SwiftUI в iOS 18
• Улучшаем предварительные просмотры Xcode с помощью покрытия модульными тестами
• Как собрать и внедрить высоконагруженный модуль. Опыт Звука
• Business Process Notation как подход к организации кода в проекте по разработке iOS-приложения
• Вышла iOS 18.2 со всеми функциями Apple Intelligence
• Лучшие приложения и игры для iPhone, iPad и Mac — Победители App Store Awards 2024
• Первая в мире альтернатива Apple Pay для iPhone запущена в Норвегии
377ae0333d0f4b7b97307c9eea5ee21a.gifConcurrency Step-by-Step: Reading from Storage
377ae0333d0f4b7b97307c9eea5ee21a.gifDiscovering iOS memory leaks III: Automating with Github Action
377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftUI: Caching in Layout Protocol
377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding opaque types in Swif
377ae0333d0f4b7b97307c9eea5ee21a.gifMigrating XCTest to Swift Testing
377ae0333d0f4b7b97307c9eea5ee21a.gifCompletion Handlers vs. Tasks in Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifMastering Forms in SwiftUI: Selecting Information
377ae0333d0f4b7b97307c9eea5ee21a.gifiOS: Native JSON Parser
377ae0333d0f4b7b97307c9eea5ee21a.gifBlooming fireworks with Metal and SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifBringing Image Playground to your app
377ae0333d0f4b7b97307c9eea5ee21a.gifMocking a network connection in your Swift Tests
377ae0333d0f4b7b97307c9eea5ee21a.gifIs it me or is there a hiring freeze?
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngВсе видео Swift Connection 2024
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngСамые популярные видео WWDC24
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPredictive code completion on Xcode 16.1: Does it live up to the hype?
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCredit Card Input Form — SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTeach App Interactions to Users — SwiftUI
96716bcb926741e79bb1c284a88083ca.pngFlipNumberView — перекидной дисплей или представление
96716bcb926741e79bb1c284a88083ca.pngXcbeautify — украшатель xcodebuild

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Зачем покупать, когда можно… или как я собирал систему мониторинга фильтра воды и что из этого вышло
• Распознавание текста в реальном времени с Jetpack Compose
• Shared Element Transition в Jetpack Compose
• AndroidAPS в часах. Продолжение
• Полный разбор Kotlin Delegated Property
• Google анонсировал Android XR, новую ОС для гарнитур и умных очков
• Google Play прекращает все финансовые отношения с российскими разработчиками
377ae0333d0f4b7b97307c9eea5ee21a.gifFeature Flags and Modular Development: Ensuring Flexibility in Large Android Projects
377ae0333d0f4b7b97307c9eea5ee21a.gifSpeeding Up UI Tests 4x While Reducing Costs
377ae0333d0f4b7b97307c9eea5ee21a.gifTesting Different Navigation Options with Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifUsing BlockHound to track blocking calls in non-blocking dispatchers
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to observe Internet in Android? A new way using Flow
377ae0333d0f4b7b97307c9eea5ee21a.gif9 Tips to improve your Jetpack Compose Previews
377ae0333d0f4b7b97307c9eea5ee21a.gifCustomisation of Shared Element Transition of Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifImplementing Live Camera OCR with Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifUI State, Callbacks and Equality Pitfalls
377ae0333d0f4b7b97307c9eea5ee21a.gif5 steps to implement MVI architecture with Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifScreenshot testing in Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifHow easy is drag-and-drop in Compose?
377ae0333d0f4b7b97307c9eea5ee21a.gifHow we enhanced our Android App«s startup time by over 50%
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid System Design Interview- Google/Uber
377ae0333d0f4b7b97307c9eea5ee21a.gifLet«s build an Android camera app! CameraX + Compose
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngA vision for Android XR
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFull Blueprint For Compose State Management — Free Live Workshop
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTop 3 Custom Loading Animations In Jetpack Compose
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngExpanding Jewel: Markdown-to-Compose Magic
96716bcb926741e79bb1c284a88083ca.pngVisual Code Space — редактор кода для Android
96716bcb926741e79bb1c284a88083ca.pngPassage — аутентификация для Kotlin/Compose Multiplatform
96716bcb926741e79bb1c284a88083ca.pngJetpack Compose Animations — примеры анимация на Compose

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

• Flutter форкнули и похоронили. Эксперты о Flock, поводах для беспокойства и будущем фреймворка
• Переходите на Flutter 3.27, тут быстрее и плавнее (и Dart тоже обновите)
• Как подружить Flutter и Huawei — настраиваем Flutter. Часть 2
• Редко, но метко! Пять малоизвестных виджетов
• Отбираем хлеб у нативных разработчиков: миграция с Kotlin/Swift на RN
• BA x Flutter: взаимодействие отделов, запуск кроссплатформы и почему хорошее ТЗ — бич креативности
377ae0333d0f4b7b97307c9eea5ee21a.gifAwesome Open Source Flutter Apps
377ae0333d0f4b7b97307c9eea5ee21a.gifMulti window support with Flutter desktop
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to add platform-specific icons to a Compose Multiplatform project
377ae0333d0f4b7b97307c9eea5ee21a.gifDependency Injection with Injectable: Boosting Your App«s Performance & Scalability
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to implement Secure Storage in Flutter?
377ae0333d0f4b7b97307c9eea5ee21a.gifWhy people say Flutter app do not feel native
377ae0333d0f4b7b97307c9eea5ee21a.gifCrossplatform architecture for an app«s core. Simple. Linear. Scalable
377ae0333d0f4b7b97307c9eea5ee21a.gifThe Best Flutter App Architecture Exists
377ae0333d0f4b7b97307c9eea5ee21a.gifFar From Random: Three Mistakes From Dart/Flutter«s Weak PRNG
377ae0333d0f4b7b97307c9eea5ee21a.gifWhat«s new in Flutter 3.27
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGoing from Swift to Kotlin with Skip

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

• Проблема 70%: суровые истины о программировании с помощью ИИ
• Особенности построения графиков Qt в «Авроре»
• Отчет Mac Developer Survey 2024
• Зачем приложению с многомиллионной аудиторией запускать бета-тестирование?
• Карьера и лидерство в IT
• Вся правда о грейдах, ревью и промоушенах
• Искусство создания антихрупкого API
• Путь к профессии BА: для кого подходит и как на него выйти
377ae0333d0f4b7b97307c9eea5ee21a.gifGrifters, believers, grinders, and coasters
377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding a User Signals Platform at Airbnb
377ae0333d0f4b7b97307c9eea5ee21a.gifHow we reduced our cloud spending by 20%
377ae0333d0f4b7b97307c9eea5ee21a.gifCode Quality in the Age of AI

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

• Telefónica начнет предустановки Epic Games Store
• Дейтинг в России 2024
• Пользователи расстаются с приложениями для знакомств
• EzDubs стремится стать центром переводом для пользователей
• Маркетологи в мобайле: Татьяна Панюшева (Яндекс Карты)
• Duolingo помогает поклонникам «Игры в кальмара» выучить корейский язык
• В YouTube Playables появился мультиплеер
• Как Skyeng продвигает мобильное приложение
• Самые скачиваемые и зарабатывающие приложения в России в ноябре 2024

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

• T-Lite и T-Pro — открытые русскоязычные опенсорс-модели на 7 и на 32 млрд параметров
• Смарт-функции в Алисе: как LLM помогает понять, чего хочет пользователь
• Перепрограммируем заводской термостат Zigbee для теплого пола от компании Tuya
• Магия простоты: как мы улучшили отображение общественного транспорта на карте
• Туториал «RAG с нуля»
• Llama стала еще более эффективной
377ae0333d0f4b7b97307c9eea5ee21a.gifI can now run a GPT-4 class model on my laptop
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngGemini 2.0 for developers

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

© Habrahabr.ru