В этом дайджесте разбираем Swift Runtime на детали и экономим гигабайты с SPM, боремся с фризами и ANR, проектируем функционал сторис, исследуем отказы на собеседовании, определяем маркетинг подписных приложений и многое другое!
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Хотим в очередной раз пригласить вас в опрос Developer Nation. Расскажите, что вам нравится или не нравится в популярных инструментах и платформах. Опрос охватывает 13 направлений: мобильные, десктопные, облачные и веб-приложения, промышленный Интернет вещей, игры, машинное обучение, искусственный интеллект и т.п. Опрос доступен на 10 языках, в том числе и на русском. Можно начать и сохранить для продолжения. Можно выиграть призы. Главное — внести свой вклад в развитие сообщества разработчиков.
iOS
• Разбираю Swift Runtime на детали
• Как в Swift Package Manager сэкономить гигабайты трафика и места на диске
• Библиотека криптования ChaCha20
• OptionSet в деталях
• Distributed actors и где они обитают
• Apple определила API, использование которых надо будет объяснять
• Эксперты App Store: онлайн-сессии в августе
• Apple принимает заявки на Vision Pro Developer Kit
• Любовное письмо к Objective-C
•
Creating and modifying UIKit components like in SwiftUI
•
Mobile Automation Stories — XCUITest
•
Mastering ObjectIdentifier in Swift
•
State Management using Protocol-Oriented Programming + Generics
•
The Ultimate Guide to Building SwiftData Applications
•
Creating an Animated Background using SwiftUI
•
[Swift] Property wrappers to the rescue!
•
Adopting Efficient Networking Practices in iOS Apps
•
Refactoring our Swift SDK
•
Chloe’s Opinionated and Biased Law of SwiftUI
•
Integrating the Swift EstimoteUWB SDK into your SwiftUI project
•
Embracing the Future with Swift Concurrency: A Comprehensive Overview
•
Why you should use OSLog in 2023
•
iOS Development with Factory: The Power of Dependency Injection
•
How to Create and Publish Your Own Swift Package Manager (SPM) Library
•
How to deal with custom fonts in Swift and SwiftUI
•
Access Control in Swift
•
TipKit — iOS 17 — SwiftUI
•
OSLog and Logger
•
Radial Layout With Gestures — SwiftUI
•
Inout Parameters and Mutating Functions
•
How to master Combine like a Pro – The Basics
•
SwiftUI NavigationStack Hero Animation Effect — Custom Matched Geometry Effect
•
Design Patterns In Swift: паттерны проектирования на Swift
•
NearDrop: Nearby Share для macOS
Android
• Фризы и ANR? Проверьте утечки памяти!
• Настраиваем интерфейс Android-приложения с помощью тем
• 7 книг по Android-разработке, на которые стоит обратить внимание в 2023 году
• Переиспользование модулей в многомодульных Android приложениях
• Секретная фича в Android Studio: логируем, пока дебажим, не меняя сам код
• Google Play начнет пессимизировать приложения, не поддерживающие планшеты
• Вышла стабильная версия Android Studio Giraffe
• 5 советов Kotlin-разработчикам для повышения чистоты кодовой базы
•
Using Version Catalogs from Gradle Precompiled Scripts with Kotlin DSL
•
How to Inject Navigation Argument Directly into View Model with Jetpack Compose and Hilt
•
Android Adaptive Icons
•
Screen Transition Animations with Jetpack Navigation
•
Migrate your Multi-Module App to AGP and Gradle 8.0 with Android Studio Flamingo
•
Threads Invitation Card with Jetpack Compose
•
Jetpack Compose: Unveiling the Hottest Projects and Libraries on GitHub in 2023
•
Rich UI Models in Android using MVVM and Jetpack Compose
•
Android Security: Securing your Gradle builds from baddies
•
A Step-by-Step Guide to Building a Timeline Component with Jetpack Compose
•
Jetpack Compose — The order of modifiers does matter
•
Nibel: A Navigation Library for Adopting Jetpack Compose in Fragment-Based Apps
•
Coroutines Masterclass: Chapter-1: Foundation of Coroutines
•
Exploring Differences Between lateinit and lazy in Kotlin
•
Error Handling in Clean Architecture using Flow and Jetpack Compose
•
Kotlin Enum Class
•
Simplify Dependency Management for Android Projects with Gradle Version Catalog and Dependabot
•
Navigating the Complexities: Building a Scalable Multi-Module Navigation Architecture in Android
•
Now in Android: 87 — Android 14 Beta 4, Google Play policy update, and Compose Performance
•
What’s new in Android Studio — Giraffe
•
Text Fields — UX With Material3
•
Buttons — UX With Material3
•
SQLDelight: типобезопасные Kotlin API из SQL
•
Molecule: создание потоков StateFlow в помощью Jetpack Compose
Кроссплатформа
• Cocos Creator: Это самый мощный игровой движок, о котором вы не знали
• Под капотом анимаций в React Native. Часть 1/2: Animated and Bridge
• Зачем нужны PWA-приложения: примеры успешного использования
• Кодогенерация для Flutter: что, как и зачем
•
Beginner’s guide on Flutter for iOS developers
•
Server-Driven UI Implementation from Scratch in Flutter
•
Unifying Video Players: Compose Multiplatform for iOS, Android & Desktop
•
The Top 5 Flutter State Management Solutions: A Deep Dive
•
FlutterCon 23 Resources
•
Integrate Apple Sign-In on Android using Flutter
•
KMM in a simple language learning app: was it worth it?
•
Improve your Flutter app performance with this small trick
•
Build an iOS & Android app in 100% Kotlin with Compose Multiplatform
•
Full Guide on Building your first Kotlin Multiplatform Project with Kobweb
•
NativePHP: десктопные приложения на PHP
Разработка
• Работа в Европе для мобильных разработчиков
• Неизменная ценность ручных тестировщиков: важность и преимущества в эпоху автоматизации
• Проектируем функционал сторис
• Алгоритмическое собеседование в Яндекс в прямом эфире
• Постоянные отказы на собеседованиях: что мне делать
• На шаг ближе к метавселенной, или Как мы оживили аватары пользователей в VK Звонках
• Как сделать аналог Firebase App Distribution
• Ozon Tech Intro Meetup: как работают системы поиска, рекомендаций и рекламы
• Значение совещаний и некоторые альтернативы
• 43% программистов снится работа
•
Game On: UI Design Meets Gamification
•
On Becoming a VP of Engineering, Part 1: The Path to VP + Part 2: Doing the Job
•
Platform engineering is just DevOps with a product mindset
•
Building Startups as a Developer: Learning from My Mistakes
•
Iosevka: шрифт для кода
Аналитика, маркетинг и монетизация
• $18.2 млн в Серии B: Airvet — телемедицина для домашних животных
• Маркетинг подписных приложений 2023 — отчет AppsFlyer и Liftoff
• Новая AR-платформа Mirrorscape улучшает Dungeons & Dragons
• Reddit после закрытия API: загрузки выросли, но доходы упали
•
The ultimate guide to A/B testing
AI, Устройства, IoT
• Как создавать качественные ML-системы. Часть 2: приручаем хаос + Часть 1
• Подключаем Zigbee-устройства к контроллеру Wiren Board и пишем сценарии на wb-rules
• Высокоточное измерение ЭКГ
• Stability AI выпускает Stable Diffusion XL 1.0
• Умные колонки Assistant не перейдут на Fuchsia
• У Flipper Zero появился магазин приложений
•
Chat with your databases using LangChain
•
The Ultimate Tech Stack for Building AI Products
•
A comprehensive guide to running Llama 2 locally
•
Automating Web Scraping with ChatGPT Code Interpreter
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Хотим в очередной раз пригласить вас в опрос Developer Nation. Расскажите, что вам нравится или не нравится в популярных инструментах и платформах. Опрос охватывает 13 направлений: мобильные, десктопные, облачные и веб-приложения, промышленный Интернет вещей, игры, машинное обучение, искусственный интеллект и т.п. Опрос доступен на 10 языках, в том числе и на русском. Можно начать и сохранить для продолжения. Можно выиграть призы. Главное — внести свой вклад в развитие сообщества разработчиков.
iOS• Разбираю Swift Runtime на детали
• Как в Swift Package Manager сэкономить гигабайты трафика и места на диске
• Библиотека криптования ChaCha20
• OptionSet в деталях
• Distributed actors и где они обитают
• Apple определила API, использование которых надо будет объяснять
• Эксперты App Store: онлайн-сессии в августе
• Apple принимает заявки на Vision Pro Developer Kit
• Любовное письмо к Objective-C
•
Creating and modifying UIKit components like in SwiftUI•
Mobile Automation Stories — XCUITest•
Mastering ObjectIdentifier in Swift•
State Management using Protocol-Oriented Programming + Generics•
The Ultimate Guide to Building SwiftData Applications•
Creating an Animated Background using SwiftUI•
[Swift] Property wrappers to the rescue!•
Adopting Efficient Networking Practices in iOS Apps•
Refactoring our Swift SDK•
Chloe’s Opinionated and Biased Law of SwiftUI•
Integrating the Swift EstimoteUWB SDK into your SwiftUI project•
Embracing the Future with Swift Concurrency: A Comprehensive Overview•
Why you should use OSLog in 2023•
iOS Development with Factory: The Power of Dependency Injection•
How to Create and Publish Your Own Swift Package Manager (SPM) Library•
How to deal with custom fonts in Swift and SwiftUI•
Access Control in Swift•
TipKit — iOS 17 — SwiftUI•
OSLog and Logger•
Radial Layout With Gestures — SwiftUI•
Inout Parameters and Mutating Functions•
How to master Combine like a Pro – The Basics•
SwiftUI NavigationStack Hero Animation Effect — Custom Matched Geometry Effect•
Design Patterns In Swift: паттерны проектирования на Swift•
NearDrop: Nearby Share для macOS
Android• Фризы и ANR? Проверьте утечки памяти!
• Настраиваем интерфейс Android-приложения с помощью тем
• 7 книг по Android-разработке, на которые стоит обратить внимание в 2023 году
• Переиспользование модулей в многомодульных Android приложениях
• Секретная фича в Android Studio: логируем, пока дебажим, не меняя сам код
• Google Play начнет пессимизировать приложения, не поддерживающие планшеты
• Вышла стабильная версия Android Studio Giraffe
• 5 советов Kotlin-разработчикам для повышения чистоты кодовой базы
•
Using Version Catalogs from Gradle Precompiled Scripts with Kotlin DSL•
How to Inject Navigation Argument Directly into View Model with Jetpack Compose and Hilt•
Android Adaptive Icons•
Screen Transition Animations with Jetpack Navigation•
Migrate your Multi-Module App to AGP and Gradle 8.0 with Android Studio Flamingo•
Threads Invitation Card with Jetpack Compose•
Jetpack Compose: Unveiling the Hottest Projects and Libraries on GitHub in 2023•
Rich UI Models in Android using MVVM and Jetpack Compose•
Android Security: Securing your Gradle builds from baddies•
A Step-by-Step Guide to Building a Timeline Component with Jetpack Compose•
Jetpack Compose — The order of modifiers does matter•
Nibel: A Navigation Library for Adopting Jetpack Compose in Fragment-Based Apps•
Coroutines Masterclass: Chapter-1: Foundation of Coroutines•
Exploring Differences Between lateinit and lazy in Kotlin•
Error Handling in Clean Architecture using Flow and Jetpack Compose•
Kotlin Enum Class•
Simplify Dependency Management for Android Projects with Gradle Version Catalog and Dependabot•
Navigating the Complexities: Building a Scalable Multi-Module Navigation Architecture in Android•
Now in Android: 87 — Android 14 Beta 4, Google Play policy update, and Compose Performance•
What’s new in Android Studio — Giraffe•
Text Fields — UX With Material3•
Buttons — UX With Material3•
SQLDelight: типобезопасные Kotlin API из SQL•
Molecule: создание потоков StateFlow в помощью Jetpack Compose
Кроссплатформа• Cocos Creator: Это самый мощный игровой движок, о котором вы не знали
• Под капотом анимаций в React Native. Часть 1/2: Animated and Bridge
• Зачем нужны PWA-приложения: примеры успешного использования
• Кодогенерация для Flutter: что, как и зачем
•
Beginner’s guide on Flutter for iOS developers•
Server-Driven UI Implementation from Scratch in Flutter•
Unifying Video Players: Compose Multiplatform for iOS, Android & Desktop•
The Top 5 Flutter State Management Solutions: A Deep Dive•
FlutterCon 23 Resources•
Integrate Apple Sign-In on Android using Flutter•
KMM in a simple language learning app: was it worth it?•
Improve your Flutter app performance with this small trick•
Build an iOS & Android app in 100% Kotlin with Compose Multiplatform•
Full Guide on Building your first Kotlin Multiplatform Project with Kobweb•
NativePHP: десктопные приложения на PHP
Разработка• Работа в Европе для мобильных разработчиков
• Неизменная ценность ручных тестировщиков: важность и преимущества в эпоху автоматизации
• Проектируем функционал сторис
• Алгоритмическое собеседование в Яндекс в прямом эфире
• Постоянные отказы на собеседованиях: что мне делать
• На шаг ближе к метавселенной, или Как мы оживили аватары пользователей в VK Звонках
• Как сделать аналог Firebase App Distribution
• Ozon Tech Intro Meetup: как работают системы поиска, рекомендаций и рекламы
• Значение совещаний и некоторые альтернативы
• 43% программистов снится работа
•
Game On: UI Design Meets Gamification•
On Becoming a VP of Engineering, Part 1: The Path to VP + Part 2: Doing the Job•
Platform engineering is just DevOps with a product mindset•
Building Startups as a Developer: Learning from My Mistakes•
Iosevka: шрифт для кода
Аналитика, маркетинг и монетизация• $18.2 млн в Серии B: Airvet — телемедицина для домашних животных
• Маркетинг подписных приложений 2023 — отчет AppsFlyer и Liftoff
• Новая AR-платформа Mirrorscape улучшает Dungeons & Dragons
• Reddit после закрытия API: загрузки выросли, но доходы упали
•
The ultimate guide to A/B testing
AI, Устройства, IoT• Как создавать качественные ML-системы. Часть 2: приручаем хаос + Часть 1
• Подключаем Zigbee-устройства к контроллеру Wiren Board и пишем сценарии на wb-rules
• Высокоточное измерение ЭКГ
• Stability AI выпускает Stable Diffusion XL 1.0
• Умные колонки Assistant не перейдут на Fuchsia
• У Flipper Zero появился магазин приложений
•
Chat with your databases using LangChain•
The Ultimate Tech Stack for Building AI Products•
A comprehensive guide to running Llama 2 locally•
Automating Web Scraping with ChatGPT Code Interpreter← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.