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

iOS
• SOLID в Swift. Простое объяснение с примерами для начинающих
• .xcstrings в Xcode 15
• Создание интерактивного виджета с помощью App Intents
• Использование XCFramework в крупном iOS-проекте, или Как ускорить сборку в 2 раза
• SwiftUI для большого B2C-продукта
• По слухам, Apple сократила заказ Vision Pro
• Следующие AirPods смогут проверять слух и температуру
•
iOS 17 VisualEffect & ScrollTransition APIs — Circular Carousel Slider
•
iOS Dev Job Interview — Must Know Topics
•
Swift Variadic Parameters
•
Swift Observation from Scratch
•
SwiftUI: Trailing label TextField
•
Embracing CloudKit
•
SwiftUI Data Flow 2023
•
Create an Interactive Widget Using App Intents
•
Async Animations in SwiftUI
•
DI in SwiftUI
•
Animate SF Symbols with symbolEffect
•
Cleaner Views: Clean Code in SwiftUI
•
10 More Deadly SwiftUI Mistakes and How to Avoid Them
•
Slow architecture in Swift
•
iOS 17 @Observable and the Observation Framework
•
App Intents Spotlight integration using Shortcuts
•
CollectionOfOne in Swift
•
Demystifying Opaque Types in Swift
•
A Deep Dive Into Observation: A New Way to Boost SwiftUI Performance
•
Data-Oriented-Design — A Swift Introduction
•
Mastering Swift Foundation Formatter API. Custom Format Styles
•
SwiftUI apps at scale
•
Swift Observation from Scratch
•
Difference Between Implicit and Explicit Animations in SwiftUI
•
The Ultimate Guide to Building SwiftData Applications
•
Billboard: красивая и безопасная реклама
•
iOS Learning Materials: обучающие материалы по iOS-разработке
Android
• Как создавать архитектуру Android-приложений: глубокое погружение в принципы
• Настраиваем CI/CD для тестовой инфраструктуры Android
• Разбор небольшого приложения с анекдотами
• Разбор тестового задания на позицию Android Developer
• Я.Субботник по Java-разработке
• А это можно запустить в фоне?
• Мой офис. Как открываются документы на смартфоне
• Modern MVI и MVVM+ со всех сторон в 2023
• Lobzik: полуавтоматическая модуляризация Android-проекта
•
Foreground Services — Android Basics 2023
•
Broadcasts & Broadcast Receivers — Android Basics 2023
•
What’s new in Kotlin 1.9.0
•
Migrate RecyclerView to Lazy list
•
Two-Way Communication Between Fragments in a Multi-Module Android Project while maintaining loose coupling
•
Animated action menu
•
Build Interactive Live Streaming Android App with Video SDK using Java
•
Exploring SharedFlow in Kotlin: Understanding tryEmit() and the Importance of Buffers
•
Paging in Android Jetpack compose: from caching data with Room to displaying in Lazycolumn
•
Reduce Boilerplate When Running Kotlin Tests
•
Build a Simple Sort and Filter Screen in Your Android App
•
Efficient Ways of Using Location Services in Kotlin Android Apps
•
Creating and publishing your own Android library in Kotlin
•
The beauty of Kotlin type system
•
TextInputLayout Censoring with Password-like Method
•
Experimenting with Android Studio Bot
•
Unlocking the power of Jetpack Compose, Fragments, Stateflow, and ViewModels: A Comprehensive Guide
•
A flexible, modern Android app architecture: complete step-by-step
•
Native UI and multiplatform Compose with Redwood
•
How to build a Clean SSEClient Flow
•
Implementing Single Source of Truth in Android
•
Migrating from Android API level 30 to 31/32 or App Crashing After Updating Target SDK
•
Okio: I/O библиотека для Android, Java и Kotlin Multiplatform
•
Amethyst: клиент Nostr для Android
•
Paraphrase: типобезопасные форматеры для строк
Кроссплатформа
• Метод setState() во Flutter может работать не так, как вы это представляете
• Строим мосты: подключение зависимостей с Cocoapods в Kotlin Multiplatform Mobile
• Колесо сансары в поиске решения бага «белый экран» в SPA приложении на React
•
How to build a collision-based game using Flutter and Flame
•
Shorebird: CodePush & Over-the-Air Updates for Flutter Apps
•
Explore Animated Loader In Flutter
•
Profiling React Native Apps With iOS and Android Tools
•
Introducing LangChain.dart
•
Implementing CI/CD for Jetbrains Compose Multiplatform Android and iOS Apps using GitHub Actions
•
Optimising Page Load Times in Flipkart Mobile App
•
The Complete Guide to Deploy Flutter Builds Using App Center
•
4 Flutter Open Source Projects From Which You Can Learn A Lot! (2023)
•
Error Handling In My Flutter App
•
How to Cluster Markers with FlutterMap
•
How to build a collision-based game using Flutter and Flame
•
From Hacking to Shipping: Kotlin Multiplatform Mobile at Hootsuite
Разработка
• Скажи что-нибудь на разрабском, Figma
• Чтобы стать великим разработчиком, нужна система
• Какие баги мы заложили в мобильный банк на PHDays 12: разбор конкурса $NATCH
• Определить и найти. Разработка алгоритма поиска изменений с Мap-ами и хешами
• Делаем волшебство в России: история о создании APM для «ВкусВилл»
• Podlodka #324: 3D-графика. Почему игры тормозят?
• Какую работу, компанию или продукт выбирают продакты
• Зарплаты мобильных разработчиков по данным Хабр Карьера
• Самые высокооплачиваемые вакансии июня в области разработки приложений
• Бесплатный курс по основам Continuous Delivery
• Вероятно Twitter заDDOSил сам себя
•
Moneyball for Software Teams – An Imperfect Heuristic for Quantifying Dev Performance
•
The Story of Samsung’s OneUI
•
Fight Unplanned Work, the Silent Killer of Projects
•
We Just Hired a “Messy Coder”. Here Are My Fears
•
Stay Technical While Leading Your Team
•
The hardest part of building software is not coding, it’s requirements
•
A Case: How To Design A Medical App
•
5 Mac accessories for developers
•
Accelerating Success: Decoding the Weekly Sprint Velocity of the International Mobile Team
Аналитика, маркетинг и монетизация
• Как Duolingo подталкивает пользователей к premium — 5 уроков крупнейшего образовательного приложения
• Threads запустился в App Store и Google Play
• Spotify окончательно отказался от покупок через App Store
• Клуб миллионеров в App Store — 503 приложения зарабатывает $1 млн или больше
• Как отличить хорошего аналитика от плохого?
AI, Устройства, IoT
• Kaggle — практическое изучение Big Data. Что это за платформа, и как она работает
• Generative AI. Как программистам держать нос по ветру
• Device Twins и подвеска автомобиля: найдите 10 совпадений + Digital Twins и Device Twins: в чем разница и что общего?
• ChatGPT использовали для рассказов эротических историй
• OpenAI объявляет о всеобщей доступности API GPT-4
• Бесплатный курс по Natural Language Processing (NLP) от The Hugging Face
• $2 млн: RoboDeck — робот для обслуживания веранд и палуб
•
Building Real-time Machine Learning Foundations at Lyft
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

iOS• SOLID в Swift. Простое объяснение с примерами для начинающих
• .xcstrings в Xcode 15
• Создание интерактивного виджета с помощью App Intents
• Использование XCFramework в крупном iOS-проекте, или Как ускорить сборку в 2 раза
• SwiftUI для большого B2C-продукта
• По слухам, Apple сократила заказ Vision Pro
• Следующие AirPods смогут проверять слух и температуру
•
iOS 17 VisualEffect & ScrollTransition APIs — Circular Carousel Slider•
iOS Dev Job Interview — Must Know Topics•
Swift Variadic Parameters•
Swift Observation from Scratch•
SwiftUI: Trailing label TextField•
Embracing CloudKit•
SwiftUI Data Flow 2023•
Create an Interactive Widget Using App Intents•
Async Animations in SwiftUI•
DI in SwiftUI•
Animate SF Symbols with symbolEffect•
Cleaner Views: Clean Code in SwiftUI•
10 More Deadly SwiftUI Mistakes and How to Avoid Them•
Slow architecture in Swift•
iOS 17 @Observable and the Observation Framework•
App Intents Spotlight integration using Shortcuts•
CollectionOfOne in Swift•
Demystifying Opaque Types in Swift•
A Deep Dive Into Observation: A New Way to Boost SwiftUI Performance•
Data-Oriented-Design — A Swift Introduction•
Mastering Swift Foundation Formatter API. Custom Format Styles•
SwiftUI apps at scale•
Swift Observation from Scratch•
Difference Between Implicit and Explicit Animations in SwiftUI•
The Ultimate Guide to Building SwiftData Applications•
Billboard: красивая и безопасная реклама•
iOS Learning Materials: обучающие материалы по iOS-разработке
Android• Как создавать архитектуру Android-приложений: глубокое погружение в принципы
• Настраиваем CI/CD для тестовой инфраструктуры Android
• Разбор небольшого приложения с анекдотами
• Разбор тестового задания на позицию Android Developer
• Я.Субботник по Java-разработке
• А это можно запустить в фоне?
• Мой офис. Как открываются документы на смартфоне
• Modern MVI и MVVM+ со всех сторон в 2023
• Lobzik: полуавтоматическая модуляризация Android-проекта
•
Foreground Services — Android Basics 2023•
Broadcasts & Broadcast Receivers — Android Basics 2023•
What’s new in Kotlin 1.9.0•
Migrate RecyclerView to Lazy list•
Two-Way Communication Between Fragments in a Multi-Module Android Project while maintaining loose coupling•
Animated action menu•
Build Interactive Live Streaming Android App with Video SDK using Java•
Exploring SharedFlow in Kotlin: Understanding tryEmit() and the Importance of Buffers•
Paging in Android Jetpack compose: from caching data with Room to displaying in Lazycolumn•
Reduce Boilerplate When Running Kotlin Tests•
Build a Simple Sort and Filter Screen in Your Android App•
Efficient Ways of Using Location Services in Kotlin Android Apps•
Creating and publishing your own Android library in Kotlin•
The beauty of Kotlin type system•
TextInputLayout Censoring with Password-like Method•
Experimenting with Android Studio Bot•
Unlocking the power of Jetpack Compose, Fragments, Stateflow, and ViewModels: A Comprehensive Guide•
A flexible, modern Android app architecture: complete step-by-step•
Native UI and multiplatform Compose with Redwood•
How to build a Clean SSEClient Flow•
Implementing Single Source of Truth in Android•
Migrating from Android API level 30 to 31/32 or App Crashing After Updating Target SDK•
Okio: I/O библиотека для Android, Java и Kotlin Multiplatform•
Amethyst: клиент Nostr для Android•
Paraphrase: типобезопасные форматеры для строк
Кроссплатформа• Метод setState() во Flutter может работать не так, как вы это представляете
• Строим мосты: подключение зависимостей с Cocoapods в Kotlin Multiplatform Mobile
• Колесо сансары в поиске решения бага «белый экран» в SPA приложении на React
•
How to build a collision-based game using Flutter and Flame•
Shorebird: CodePush & Over-the-Air Updates for Flutter Apps•
Explore Animated Loader In Flutter•
Profiling React Native Apps With iOS and Android Tools•
Introducing LangChain.dart•
Implementing CI/CD for Jetbrains Compose Multiplatform Android and iOS Apps using GitHub Actions•
Optimising Page Load Times in Flipkart Mobile App•
The Complete Guide to Deploy Flutter Builds Using App Center•
4 Flutter Open Source Projects From Which You Can Learn A Lot! (2023)•
Error Handling In My Flutter App•
How to Cluster Markers with FlutterMap•
How to build a collision-based game using Flutter and Flame•
From Hacking to Shipping: Kotlin Multiplatform Mobile at Hootsuite
Разработка• Скажи что-нибудь на разрабском, Figma
• Чтобы стать великим разработчиком, нужна система
• Какие баги мы заложили в мобильный банк на PHDays 12: разбор конкурса $NATCH
• Определить и найти. Разработка алгоритма поиска изменений с Мap-ами и хешами
• Делаем волшебство в России: история о создании APM для «ВкусВилл»
• Podlodka #324: 3D-графика. Почему игры тормозят?
• Какую работу, компанию или продукт выбирают продакты
• Зарплаты мобильных разработчиков по данным Хабр Карьера
• Самые высокооплачиваемые вакансии июня в области разработки приложений
• Бесплатный курс по основам Continuous Delivery
• Вероятно Twitter заDDOSил сам себя
•
Moneyball for Software Teams – An Imperfect Heuristic for Quantifying Dev Performance•
The Story of Samsung’s OneUI•
Fight Unplanned Work, the Silent Killer of Projects•
We Just Hired a “Messy Coder”. Here Are My Fears•
Stay Technical While Leading Your Team•
The hardest part of building software is not coding, it’s requirements•
A Case: How To Design A Medical App•
5 Mac accessories for developers•
Accelerating Success: Decoding the Weekly Sprint Velocity of the International Mobile Team
Аналитика, маркетинг и монетизация• Как Duolingo подталкивает пользователей к premium — 5 уроков крупнейшего образовательного приложения
• Threads запустился в App Store и Google Play
• Spotify окончательно отказался от покупок через App Store
• Клуб миллионеров в App Store — 503 приложения зарабатывает $1 млн или больше
• Как отличить хорошего аналитика от плохого?
AI, Устройства, IoT• Kaggle — практическое изучение Big Data. Что это за платформа, и как она работает
• Generative AI. Как программистам держать нос по ветру
• Device Twins и подвеска автомобиля: найдите 10 совпадений + Digital Twins и Device Twins: в чем разница и что общего?
• ChatGPT использовали для рассказов эротических историй
• OpenAI объявляет о всеобщей доступности API GPT-4
• Бесплатный курс по Natural Language Processing (NLP) от The Hugging Face
• $2 млн: RoboDeck — робот для обслуживания веранд и палуб
•
Building Real-time Machine Learning Foundations at Lyft← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.