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