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

В новом выпуске новые правила Google Play для новых разработчиков и первый App Shortcut, корутины против потоков, навигация во Flutter и вредные тесты, перформящие креативы, собственные GPT и многое другое!

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

kgdbh4ivi_gxkx-dirv1f4o3hvy.jpeg

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Паттерн Координатор для навигация в iOS-приложении
• Делаем первый App Shortcut
• Apple отложила работу над новыми ОС для исправления ошибок
• Вопросы с собеседований: что такое reference типы в Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding Text Case And Capitalization In SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifiOS App Modularization: Strategies for Large-Scale Applications and Dependency Management
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCustom Traits and SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCalculating a Smooth Clock Hands Animation
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDistributing Work Between Actors
• 377ae0333d0f4b7b97307c9eea5ee21a.gifProgrammatic Navigation with SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifStructure Oriented Programming VS Protocol Oriented Programming in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifXcodegen — First Steps
• 377ae0333d0f4b7b97307c9eea5ee21a.gif10 tips to increase your iOS code quality
• 377ae0333d0f4b7b97307c9eea5ee21a.gifLevel up your Swift enum by… replacing it with an OptionSet?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwift Student Challenge 2024 is announced
• 377ae0333d0f4b7b97307c9eea5ee21a.gifVisual effects in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGeometryReader: Blessing or Curse?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGenerating Random Numbers Elegantly in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhat is Reflection and how is it used?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering iOS Navigation: A Deep Dive Into Pragmatic Design
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAdapter Design Pattern in iOS
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwift Macros 101: Your Step-by-Step Guide To Crafting Your First Macro!
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftData Containers and Preview Data
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngUsing SwiftUI and ReplayKit: Build an iOS Screen-Sharing App
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding Scrollable Tab View With New iOS 17 APIs
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding Complex Scroll Animations With New iOS 17 APIs
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngNSSpain XI Videos
• 96716bcb926741e79bb1c284a88083ca.pngChat: UI-фреймворк для чата
• 96716bcb926741e79bb1c284a88083ca.pngTabman: мощный Page View Controller

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Google вводит новые правила проверки приложений в Play
• Корутины против потоков: тест потребления памяти
• Ошибки при проектировании публичного API наших библиотек, и как мы их решали
• Amazon планирует отказаться от Android в пользу собственной ОС
• Вышла альфа-версия Telecom Jetpack
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPicture-Perfect Code: Uploading Images to the Server with Kotlin and Jetpack Compose using a RESTful API
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Diffing Dilemma! All about diffing with LazyLists!
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFlowOn | Kotlin. The Importance of Thread Safety
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe problem with Coroutines stateIn operator and how to solve it
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to show a PDF with Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreating an iPhone-Like Glassy Blur Effect with Jetpack Compose on Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifScreenshot Testing with Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin Type Aliases: Enhancing Code Clarity
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMVI architecture implementation with Kotlin Flow, Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFrom Stetho to Flipper: Logging Network Calls with Facebook«s Flipper SDK in Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifJetpack Compose Animation for Beginners: A Step-by-Step Guide
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAmper — Improving the Build Tooling User Experience
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA Little About Dagger
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBest Practises In ViewModel
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid CI/CD pipelines at MEGA
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering Event Validation in Android Apps: A QA Engineer«s Guide
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngPractical magic with animations in Jetpack Compose
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCompression Streams support on all browsers, Android«s New Credential Manager, and more dev news!
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAre One-Time Events an Anti-Pattern? — Why Almost Every Android Dev Does It Wrong!
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngThe Ultimate Guide to Android Splash Screen Animations — Splash API
• 96716bcb926741e79bb1c284a88083ca.pngBabaBASIC: QuickBASIC для Android
• 96716bcb926741e79bb1c284a88083ca.pngBeepBeep: платформа доставки еды и заказа такси на Kotlin

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

• Как подключиться к Flutter приложению в режиме нативного debug на ОС Аврора
• «Разгоняем» HashSet, HashMap и циклы на примере Dart
• Управляем навигацией во Flutter с помощью библиотеки auto_route. Часть 1
• Subject объекты в RxDart и чем они полезны Flutter-разработчику
• Структура Flutter-приложения: feature-first или layer-first
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAdvanced Dart in Flutter: Elevating Your Development Skills
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Test Native Features in Flutter Apps with Patrol and Codemagic
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy Kotlin Multiplatform Won«t Succeed
• 377ae0333d0f4b7b97307c9eea5ee21a.gif5 Best Under-The-Radar React Native Libraries in 2023: Dev Tested and Reviewed
• 377ae0333d0f4b7b97307c9eea5ee21a.gif10 Tips for Optimizing Your Flutter App
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSimplifying React Native App Updates with Expo EAS and In-App Updates
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSetuping a well structured React Native project with Ignite
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngKMPizza with Lena Stepanova

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

• 10 трудных истин, которые вам не расскажут о работе программистов
• Тесты вредны для разработчиков
• Как мы переложили на ChatGPT рутину в тестировании
• Как разработать функциональное мобильное приложение за 2 месяца: кейс Kassir.ru
• Самые высокооплачиваемые вакансии октября в сфере разработки приложений
• Podlodka #342: пишем язык внутри языка
• Компания Sutro представила ИИ-конструктор приложений
• $25 млн в Серии B: Tabnine — ИИ-помощник для программирования
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReal-Time Analytics for Mobile App Crashes using Apache Pinot
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Architecture Behind A One-Person Tech Startup
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow We Reduced our Google Cloud Bills by 50 Percent
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDon«t disable buttons
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSecure your API keys in iOS/Android apps using Firebase
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMicroservices aren«t the problem. Incompetent people are
• 377ae0333d0f4b7b97307c9eea5ee21a.gifEnsure Visual Accessibility: Glyphs, Icons and Shapes

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

• От теории к практике. Как использовать геймплей в создании перформящих креативов: часть вторая
• Как продвигать приложения: советы от RuStore
• Как определить топ USP при запуске нового продукта
• Google настаивает на открытии iMessage в ЕС
• AppsFlyer покупает аналитику devtodev
• Доходы X за год выросли на 829%
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Boost Any Mobile Screen Usage with this simple analytics trick
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSummer, which helps customers buy — and rent out — vacation homes, raises $18M
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow Uber app is Dominating the market and how you can do the same with the hybrid app development

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

• Главное событие в мире AI: создатель ChatGPT рассказал, в какое будущее он нас всех ведет
• Что в голове у змейки? Обучение нейросети играть в «Snake» генетическим алгоритмом
• Умный мясокомбинат: что можно сделать с инженерными системами?
• Моя б̶е̶з̶умная колонка или бюджетный DIY голосового ассистента для умного дома
• Lens Studio 5.0 использует ИИ и повышает скорость разработки
• OpenAI запускает создание собственных GPT и магазин для них
• Assistants API от OpenAI помогает создавать собственных агентов
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngArduino Course for Everybody

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

© Habrahabr.ru