В новом дайджесте закрытие CocoaPods и излишества чистой архитектуры, деструктуризация в Kotlin с примерами и знакомство с Flutter GPU, архитектура мобильного приложения в разрезе высоких нагрузок и построения экосистем, кто может стать программистом, сокращение количества вакансий для разработчиков и многое другое. Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Создание XCFramework из SPM пакета
• CocoaPods прекращает развитие и переходит в режим поддержки
• Как я бросила двустороннюю архитектуру и ушла к Redux со SwiftUI и SwiftData
• Основы фреймворка Combine для ML в Swift
• Поиск работы iOS разработчиком в текущих условиях 2024
• Apple открывает доступ к NFC в iOS 18.1
• Apple разрабатывает настольного робота
• Встраиваемый Swift: начинаем работу
• Реверс-инжиниринг iOS-приложения
• Tracking geometry changes in SwiftUI
• Cancellable withObservationTracking in Swift•
• Swift Navigation: Powerful navigation tools for all Swift platforms
• Key Lessons When Moving Towards a Modular Codebase
• Exploring SwiftUI: Animating Mesh Gradient with Colors in iOS 18
• Considerations for Using Codable and Enums in SwiftData Models
• Extend Your App’s Controls Across the System
• Exploring Local Storage in iOS: iStorageEnumV2.0
• Recursive enums in Swift
• The Tale of Method Sizzling: A Coding Adventure
• Expandable Search Bar + Progressive Blur Effect
• iOS 18 SwiftUI ScrollView DeepDive
• SwiftUI: Test Push Notifications With iOS Simulators
• PhraseKit — случайные, но читаемые фразы
• Swift Fluent Icon — fluent иконки от Microsoft
• Swift Semantic Search — семантический поиск в реальном времени на устройстве
Android
• Использование Чистой Архитектуры в Android излишество? — Обсуждение на Reddit
• Вредные советы, как приходить с вопросами к техлиду
• Деструктуризация в Kotlin с примерами
• Когда ваше приложение умирает – жизненный цикл activity в Android для QA
• Передача данных между фрагментом и BottomSheetDialogFragment с использованием Dagger и Navigation Component
• Оптимизация Gradle: избавляемся от Android-модулей
• ByteWeaver. Инструментирование байт-кода во имя великого блага
• Используем библиотеку Android Security Lints для Android
• Advanced Kotlin Flow Cheat sheet (for Android Engineer)
• Made by Google 2024
• Android Release Automation — Our Journey to Fully Automated Weekly Releases
• Composing Suspend Functions
• Jetpack Compose Theme with Composition Local: Spacing, Shaping, and Status Colors
• Efficient Render Passes — On Tile-Based Rendering Hardware
• Prefer Composition over Inheritance
• Android Process Lifecycle + Coroutines == ❤
• Advanced Bottom Sheet With Flexible Configuration for Compose
• How to Get Access to ALL External Media Files (Works on Android 15!)
• How to Pass Custom NavTypes in Compose Type-Safe Navigation
• Kotlin’s Elegant Deceptions Simple APIs, Unusual Tactics
• Harmonizing Kotlin codebases with Konsist
• Android, Compose, Multiplatform & Server — Inject them all with Koin
• Elevating Android App Resilience: Incident Management Strategies
• Jetpack Compose Endless Horizontal Pager Animation — демо горизонтального пейджера
• Cat Activity — трансляция активности в IDE в Discord
Кроссплатформа
• Как мы создали приложение для ТСД на Flutter с интеграцией 1С и внедрили его на 200 фабриках в Китае
• Внедрять Kotlin Multiplatform легко. Масштабировать сложно.
• От Web к Native с React
• PWA vs Native: где приложения для iOS и Android больше никогда не пригодятся
• Знакомимся с Flutter GPU
• Оптимизация производительности Flutter приложений
• Что думают про Flutter техлиды: инсайты из опроса
• Полный гайд по тестированию на Flutter. Часть 9: Best practices написания Unit-тестов + Части 7-8: Ошибки, которые усложняют написание тестов
• Почему вам не нужен Kotlin Multiplatform
• Создание indoor-карты здания во Flutter
• Rust GUI library via Flutter, done simple
• Foreground Services in Flutter: Run tasks when your App is minimized
• Flutter Magic: Changing App Icons Dynamically (Even on Stubborn Android!)
• Ensuring Seamless User Experience: Implementing In-App Updates in Flutter
• Diving into Advanced Compose Multiplatform Modifiers and Their Impact on Multiplatform Development
Разработка
• Как мы соединили обучение с рабочими задачами и не остались в пустой аудитории. Опыт подготовки команды к SwiftUI
• Архитектура мобильного приложения в разрезе высоких нагрузок и построения экосистем
• Кто реально может стать программистом?
• 30 вопросов команде и себе — техника и практика формулировка хороших вопросов
• VK Звонки: поднимаем планку качества WebRTC-звонков
• Как пользоваться DivKit
• Количество вакансий для разработчиков сокращается
• CodeRabbit получил $16 млн на ИИ для Code Review
• Cursor, конкурент GitHub Copilot, привлек Cерию A на $60 млн при оценке в $400 млн
• How we deleted 4195 code files in 9 hours
• Enterprise Mobile Apps Development Principles
• Variability, Not Repetition, is the Key to Mastery
• Following Industry Trends Can Be a Career Trap
• How I Created 175 Fonts Using Rust
• Practices of Reliable Software Design
• Apple Design Award Winner Devin Davies Shares His Learning Strategies
• Kotlin for Data Analysis: Exploring Dataframes and Visualizations in Notebooks
• AWS Certified Developer Associate Certification Course
• Design a Car mobile app for iOS 18 in Figma
Аналитика, маркетинг и монетизация
• Epic Games Store с Fortnite запустился на iOS
• Epic Games предоставила грант AltStore PAL и тот стал бесплатным
• Spotify начал показывать цену на сайте в iOS
• Deep Live Cam заменяет лицо в трансляции в реальном времени
• Apple Search Ads заблокировали для российских аккаунтов
• Patreon будет платить 30% комиссию Apple
AI, Устройства, IoT
• Я больше не верю публичным датасетам
• Открытый проект Wi-Fi Bluetooth микророутера
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Создание XCFramework из SPM пакета
• CocoaPods прекращает развитие и переходит в режим поддержки
• Как я бросила двустороннюю архитектуру и ушла к Redux со SwiftUI и SwiftData
• Основы фреймворка Combine для ML в Swift
• Поиск работы iOS разработчиком в текущих условиях 2024
• Apple открывает доступ к NFC в iOS 18.1
• Apple разрабатывает настольного робота
• Встраиваемый Swift: начинаем работу
• Реверс-инжиниринг iOS-приложения
• Tracking geometry changes in SwiftUI
• Cancellable withObservationTracking in Swift•
• Swift Navigation: Powerful navigation tools for all Swift platforms
• Key Lessons When Moving Towards a Modular Codebase
• Exploring SwiftUI: Animating Mesh Gradient with Colors in iOS 18
• Considerations for Using Codable and Enums in SwiftData Models
• Extend Your App’s Controls Across the System
• Exploring Local Storage in iOS: iStorageEnumV2.0
• Recursive enums in Swift
• The Tale of Method Sizzling: A Coding Adventure
• Expandable Search Bar + Progressive Blur Effect
• iOS 18 SwiftUI ScrollView DeepDive
• SwiftUI: Test Push Notifications With iOS Simulators
• PhraseKit — случайные, но читаемые фразы
• Swift Fluent Icon — fluent иконки от Microsoft
• Swift Semantic Search — семантический поиск в реальном времени на устройстве
Android
• Использование Чистой Архитектуры в Android излишество? — Обсуждение на Reddit
• Вредные советы, как приходить с вопросами к техлиду
• Деструктуризация в Kotlin с примерами
• Когда ваше приложение умирает – жизненный цикл activity в Android для QA
• Передача данных между фрагментом и BottomSheetDialogFragment с использованием Dagger и Navigation Component
• Оптимизация Gradle: избавляемся от Android-модулей
• ByteWeaver. Инструментирование байт-кода во имя великого блага
• Используем библиотеку Android Security Lints для Android
• Advanced Kotlin Flow Cheat sheet (for Android Engineer)
• Made by Google 2024
• Android Release Automation — Our Journey to Fully Automated Weekly Releases
• Composing Suspend Functions
• Jetpack Compose Theme with Composition Local: Spacing, Shaping, and Status Colors
• Efficient Render Passes — On Tile-Based Rendering Hardware
• Prefer Composition over Inheritance
• Android Process Lifecycle + Coroutines == ❤
• Advanced Bottom Sheet With Flexible Configuration for Compose
• How to Get Access to ALL External Media Files (Works on Android 15!)
• How to Pass Custom NavTypes in Compose Type-Safe Navigation
• Kotlin’s Elegant Deceptions Simple APIs, Unusual Tactics
• Harmonizing Kotlin codebases with Konsist
• Android, Compose, Multiplatform & Server — Inject them all with Koin
• Elevating Android App Resilience: Incident Management Strategies
• Jetpack Compose Endless Horizontal Pager Animation — демо горизонтального пейджера
• Cat Activity — трансляция активности в IDE в Discord
Кроссплатформа
• Как мы создали приложение для ТСД на Flutter с интеграцией 1С и внедрили его на 200 фабриках в Китае
• Внедрять Kotlin Multiplatform легко. Масштабировать сложно.
• От Web к Native с React
• PWA vs Native: где приложения для iOS и Android больше никогда не пригодятся
• Знакомимся с Flutter GPU
• Оптимизация производительности Flutter приложений
• Что думают про Flutter техлиды: инсайты из опроса
• Полный гайд по тестированию на Flutter. Часть 9: Best practices написания Unit-тестов + Части 7-8: Ошибки, которые усложняют написание тестов
• Почему вам не нужен Kotlin Multiplatform
• Создание indoor-карты здания во Flutter
• Rust GUI library via Flutter, done simple
• Foreground Services in Flutter: Run tasks when your App is minimized
• Flutter Magic: Changing App Icons Dynamically (Even on Stubborn Android!)
• Ensuring Seamless User Experience: Implementing In-App Updates in Flutter
• Diving into Advanced Compose Multiplatform Modifiers and Their Impact on Multiplatform Development
Разработка
• Как мы соединили обучение с рабочими задачами и не остались в пустой аудитории. Опыт подготовки команды к SwiftUI
• Архитектура мобильного приложения в разрезе высоких нагрузок и построения экосистем
• Кто реально может стать программистом?
• 30 вопросов команде и себе — техника и практика формулировка хороших вопросов
• VK Звонки: поднимаем планку качества WebRTC-звонков
• Как пользоваться DivKit
• Количество вакансий для разработчиков сокращается
• CodeRabbit получил $16 млн на ИИ для Code Review
• Cursor, конкурент GitHub Copilot, привлек Cерию A на $60 млн при оценке в $400 млн
• How we deleted 4195 code files in 9 hours
• Enterprise Mobile Apps Development Principles
• Variability, Not Repetition, is the Key to Mastery
• Following Industry Trends Can Be a Career Trap
• How I Created 175 Fonts Using Rust
• Practices of Reliable Software Design
• Apple Design Award Winner Devin Davies Shares His Learning Strategies
• Kotlin for Data Analysis: Exploring Dataframes and Visualizations in Notebooks
• AWS Certified Developer Associate Certification Course
• Design a Car mobile app for iOS 18 in Figma
Аналитика, маркетинг и монетизация
• Epic Games Store с Fortnite запустился на iOS
• Epic Games предоставила грант AltStore PAL и тот стал бесплатным
• Spotify начал показывать цену на сайте в iOS
• Deep Live Cam заменяет лицо в трансляции в реальном времени
• Apple Search Ads заблокировали для российских аккаунтов
• Patreon будет платить 30% комиссию Apple
AI, Устройства, IoT
• Я больше не верю публичным датасетам
• Открытый проект Wi-Fi Bluetooth микророутера
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.