В этом выпуске перечисления 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
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!


• Императивный UIKit vs Декларативный SwiftUI
• Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями
• Немного о перечислениях в Swift
• Внедряем MapKit Яндекс Карт в iOS приложение
• На смену CoreData пришёл новый фреймворк SwiftData. Разбираемся, как он упрощает хранение данных
• Многопоточность в iOS-разработке
• visionOS(xrOS) сессии WWDC2023: введение в пространственные вычисления Apple
• SwiftUI vs UIKit. Что выбрать новичку?
• Apple выпустила visionOS SDK
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Осознанная оптимизация Compose
• Библиотека MockWebServer-DSL в open-source: делаем конфетку из сетевых запросов в UI-тестах
• Сервисы Google и Huawei в единой кодовой базе Android-приложения
• Какого цвета Ripple?
• Фантастический Compose и его побочные эффекты
• Как эволюционировали уязвимости в приложениях для Android
• Android TextView freezesText — замораживаем текст в Android-приложении
• Что внутри Android SDK
•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•


• Алгоритм создания бесшовного списка данных
• Делаем многопользовательскую кроссплатформенную RPG с нуля
• Kotlin Multiplatform и Compose Multiplatform — стратегический провал Apple
• Дружим Flutter с С# и С++
•

•

•

•

•

•

•

•


• Воображаемые проблемы — корень плохого программного обеспечения
• Раскрытие возможностей шаблона Декоратор
• Встречайте Dev Mode в Figma
• Про тестирование мобильных приложений. Часть 4. Интеграционное тестирование
• Фича Флаги и управление ими “по-взрослому”: кейс команды СберЗдоровье
• Podlodka #323: выбираем язык конфигураций — YAML, TOML или Dhall
• Яндекс в 2.5 раза увеличил годовой фонд программы «Охота за ошибками» — до 100 млн рублей
• $50 млн в Серии В: Warp — терминал с ИИ
• $4.4 млн: Hyperline — платформа биллинга для SaaS
• Что влияет на опыт разработчиков — исследование GitHub
• Microsoft анонсировала Fluent 2
•

•

•

•

•

•

•

•


• Пэйволлы: прокачиваем насмотренность
• Bumble тестирует приложение для поиска друзей
• Реклама в App Store на вкладке «Сегодня» станет компактной
• Вышел 2023 Mobile Growth and Monetization Report от Unity
• 3 тренда, которые помогут возродить мобильные приложения в 2023 году
• Приложение ChatGPT отстает от сторонних приложений
•

•


• Как использовать Midjourney: подробный гайд, лайфхаки, промты
• Как поговорить с компьютером, если у вас не поехала крыша
• Трассировка распределенных IoT приложений на EMQX
• Интеграция с инфраструктурой NB-IoT МТС. Теория и практика. Часть 4
• OpenAI планирует открыть свой магазин приложений
•

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