В этом выпуске перечисления Swift и осознанная оптимизация Compose, конфетные сетевые запросы и воображаемые проблемы, приложение для поиска друзей, пустые состояния, цвета Ripple, декораторы и многое другое. Заходите!

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



iOS

• Императивный UIKit‍ vs Декларативный SwiftUI
• Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями
• Немного о перечислениях в Swift
• Внедряем MapKit Яндекс Карт в iOS приложение
• На смену CoreData пришёл новый фреймворк SwiftData. Разбираемся, как он упрощает хранение данных
• Многопоточность в iOS-разработке
• visionOS(xrOS) сессии WWDC2023: введение в пространственные вычисления Apple
• SwiftUI vs UIKit. Что выбрать новичку?
• Apple выпустила visionOS SDK
• visionOS Fundamentals
• SwiftUI Menu and Context Menu: How to Show Buttons with Dropdown Lists
• SwiftUI Presentations with Modals, Bottom Sheets, and FullScreen cover in iOS
• MatchedGeometryEffect in SwiftUI
• Little big improvements in Xcode 15
• Inspectors in SwiftUI
• How to Handle Empty States Using UIContentUnavailableConfiguration
• The @Environment && @EnvironmentProperty SwiftUI Property Wrappers
• Mastering SwiftUI’s onChange
• Deep Dive into the New Features of ScrollView in SwiftUI 5
• Xcode Previews with UIKit and AppKit in Xcode 15
• Facade Design Pattern in Swift for Beginners (with async/await)
• A Deep Dive Into Observation: A New Way to Boost SwiftUI Performance
• Embracing MVVM: Empowering iOS Development with a Robust Architecture
• Storing WKWebView content for offline access in your iOS app
• Xcode Bookmarks: Save code landmarks & organize tasks
• Agile Architecture in Swift
• A Deep Dive Into Observation: A New Way to Boost SwiftUI Performance
• Run iOS tests with Marathon Cloud
• Building Your Own Swift Code Generator Using Swift Script
• Meet StoreKit SubscriptionStoreView in iOS 17
• 2000+ iOS Interview Questions And Answers: Your Path to Success
• Slow architecture in Swift
• Animate SF Symbols with symbolEffect
• Quick: behavior-driven тестирование
• Swift Macros: лучшие макросы Swift

Android

• Осознанная оптимизация Compose
• Библиотека MockWebServer-DSL в open-source: делаем конфетку из сетевых запросов в UI-тестах
• Сервисы Google и Huawei в единой кодовой базе Android-приложения
• Какого цвета Ripple?
• Фантастический Compose и его побочные эффекты
• Как эволюционировали уязвимости в приложениях для Android
• Android TextView freezesText — замораживаем текст в Android-приложении
• Что внутри Android SDK
• Top 3 things to know from Google Play at Google I/O ‘2
• Technical quality on Google Play
• What is the Context? — Android Basics 2023
• ViewModels & Configuration Changes — Android Basics 2023
• The Art of App Modularization
• App Size Metrics — Continuous monitoring of App Size
• Creating a Split Flap Display in Compose
• Builder Design Pattern in Kotlin
• Jetpack Compose — Making Composable lifecycle-aware
• Mastering Android App Performance: Analyzing Bottlenecks with Perfetto
• Increase the Performance in Jetpack Compose
• Accessibility & Testing in Jetpack Compose
• Difference between == and === in Kotlin
• Kotlin Delegates: The Secret Ingredient for Decorator Pattern!
• User stack animation in Jetpack Compose
• 5 Pro Kotlin Dev Hacks For More Assertive Code
• ADB — Say bye to “more than one device/emulator” error
• I want to run any number of Android UI tests on each PR. Your actions?
• Android Mastering the Integration: Coexisting Google and Huawei Mobile Services in a Single Codebase
• A few shorthands for Jetpack Compose
• Android Data Repository — Simple pattern that we misunderstand
• Jetpack Compose Custom Layout Made Easy
• Negative Padding For Jetpack Compose Made Possible
• AnkiDroid: карточки для запоминания
• Clock of Clocks: часы на Jetpack Compose
• Compose Sensors: работа с сенсорами устройства в Compose

Кроссплатформа

• Алгоритм создания бесшовного списка данных
• Делаем многопользовательскую кроссплатформенную RPG с нуля
• Kotlin Multiplatform и Compose Multiplatform — стратегический провал Apple
• Дружим Flutter с С# и С++
• MVVM with Clean Architecture in React Native: A Detailed Guide
• Flutter Custom Theme with ThemeExtension + Templates
• Native Apps Are Dead
• Image Push Notification(Advanced) in Flutter using Firebase(iOS & Android)
• Revolutionise Your Workflow: Cut React Native Build Time by 67%
• Some useful linter rules for React Native
• Revolutionizing Focus Management in TV Applications with React Native
• How to Add Themes to Your Flutter Apps with Adaptive Chameleon Theme

Разработка

• Воображаемые проблемы — корень плохого программного обеспечения
• Раскрытие возможностей шаблона Декоратор
• Встречайте Dev Mode в Figma
• Про тестирование мобильных приложений. Часть 4. Интеграционное тестирование
• Фича Флаги и управление ими “по-взрослому”: кейс команды СберЗдоровье
• Podlodka #323: выбираем язык конфигураций — YAML, TOML или Dhall
• Яндекс в 2.5 раза увеличил годовой фонд программы «Охота за ошибками» — до 100 млн рублей
• $50 млн в Серии В: Warp — терминал с ИИ
• $4.4 млн: Hyperline — платформа биллинга для SaaS
• Что влияет на опыт разработчиков — исследование GitHub
• Microsoft анонсировала Fluent 2
• Top 10 Best Open Source Projects on GitHub 2023
• Metis: Building Airbnb’s Next Generation Data Management Platform
• 15 Must-Have Figma Plugins for UX/UI Designers in 2023
• Programmers Are in Demand. Here Is Why You Can’t Get a Job.
• Linking Modular Architecture to Development Teams
• A 20-year-experienced CTO’s Advice “Don’t Be a Humble Developer”
• How to fail basic refactor using Clean Architecture
• 4 mistakes to avoid to build a better 1-person business

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

• Пэйволлы: прокачиваем насмотренность
• Bumble тестирует приложение для поиска друзей
• Реклама в App Store на вкладке «Сегодня» станет компактной
• Вышел 2023 Mobile Growth and Monetization Report от Unity
• 3 тренда, которые помогут возродить мобильные приложения в 2023 году
• Приложение ChatGPT отстает от сторонних приложений
• 5 reasons why apps fail in some African countries
• A practical guide to Google app campaigns

AI, Устройства, IoT

• Как использовать Midjourney: подробный гайд, лайфхаки, промты
• Как поговорить с компьютером, если у вас не поехала крыша
• Трассировка распределенных IoT приложений на EMQX
• Интеграция с инфраструктурой NB-IoT МТС. Теория и практика. Часть 4
• OpenAI планирует открыть свой магазин приложений
• Inside StarCoder: The New Open Source LLM that Can Generative Code in Over 80 Programming Languages

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

Комментарии (1)


  1. firemanfm
    27.06.2023 06:40

     >ADB — Say bye to “more than one device/emulator” error
    Решал такую же задачу https://github.com/fleytman/madb
    Отличия:
    1. Моя более сложна в установке
    2. Есть выбор из списка устройств когда вводишь madb connect
    3. Запуск команды на всех выделенных устройствах
    4. Можно выделить сразу все устройства хоткеем
    5. Также есть команда для работы со scrcpy