В новом дайджесте бажная корзина в Додо Пицце и сложности Combine, улучшение производительности навигации на Android и кодревью “как не войти в айти в 2024”, самые важные пакеты в экосистеме Flutter, 12 маленьких уроков большого приложения для баскетбола, топ быстрорастущих приложений в России в октябре и многое другое. Подключайтесь!
Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Корзина в Додо Пицце на iOS 14: баг длиной в полгода
• Tuist: добавляем генерацию проекта в текущее приложение
• Вычисление семантического расстояния между словами с помощью Natural Language Framework
• Осторожно, Combine! Откуда берутся утечки памяти, потеря эвентов, нестабильность операторов и что с этим всем делать
• История одного модального окна или переходим с UIKit на SwiftUI. Часть 2.1. Неожиданный баг Combine
• Создаем анимацию печати текста на печатной машинке в SwiftUI
• Introducing Recap: What’s Old Is What’s New Again
• Maintaining Syntactic Sugar for Optional in Swift
• Replacing Fastlane with Shell scripts
• Security-scoped bookmarks for URL access
• How we reduced the build time by 2 with(out) Xcode at Shopmium
• Swift Testing: How to Test Your iOS App’s Network Layer
• What was early iOS development like
• Networking Async/Await in SwiftUI
• Building a Custom Progress Bar in SwiftUI
• Reinventing Core Data Development with SwiftData Principles
• Creating a Theme manager for UIKit using Combine in Swift
• Exploring SwiftUI: Understanding TextRenderer to Animate Words
• Tokenizing text with the Natural Language framework
• Interactive Toasts SwiftUI
• How to get started with Swift Testing
• WWDC22: Visualize and optimize Swift concurrency
• Principal Engineer shares tips to Master System Design and Architecture
• SwiftUI Toasts
• How to get started with Swift Testing
• Create a Bold SwiftUI Flight Boarding Widget
• Add Micro Interactions to your Tab Bar | SwiftUI
• iOS/SwiftUI Chat App With Cursor
• iOS Swift for VS Code — iOS-разработка в VS Code
• iOS Performance Optimization — рекомендации по оптимизации iOS-приложений
• TinyStorage — простая и легкая замена UserDefaults для постоянного хранения данных
Android
• Компьютерное зрение на C++: пишем приложение для поиска объектов под Android
• Как мы улучшили производительность навигации на Android на 30%
• Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery
• Как настроить правильное расположение элементов в Android-приложении для арабского языка
• Понимание прогноза глюкозы в AndroidAPS часть 2
• Тесты для функций Compose в Android
• Google начал развертывание Android 15 на Pixel
• Зачем нужен crossinline — вопросы с собеседований
• Google готовится запустить Linux-приложения на Android
• Как следить за качеством работы вашего кода. Tracer. Кирилл Попов
• 1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью
• Замена иконок — что может быть проще?
• Ktor 3.0 Is Now Available With New Features and Improved Performance
• Kotlin Design Patterns: Builder Explained
• Seamless Real-Time Location Tracking with gRPC, Kotlin & Jetpack Compose
• One click dependencies fix
• Understanding the Impact of Multiple NavHosts on Back Navigation and ViewModel Management in Jetpack Compose
• SWIGGY SDE-2 Inteview Experience (Android)
• Android Studio Ladybug Feature Drop
• 7 Kotlin Flow Operators that you must know
• Testing Coroutines — Simplified
• Using Kotlin Reflection to Automate Compose Navigation
• runTest vs runBlocking — Simplified
• Bypassing Location Restrictions on a Android App Using Frida
• The updated Kotlin roadmap is here!
• Compose Multiplatform 1.7.0 Released
• Creating a responsive dashboard layout for JetLagged with Jetpack Compose
• Custom Adaptive layouts in Compose
• Region specific resources and broken localization
• Applying the Builder Pattern in Kotlin
• Loaders — лоадеры для Jetpack Compose
Кроссплатформа
• Самые важные пакеты в экосистеме Dart и Flutter на Pub 2024
• Как подружить Flutter и Huawei — настраиваем App Gallery. Часть 1
• Building a Cross-Platform Camera App with CameraK and Compose Multiplatform
• Making Compose Multiplatform apps feel at home: removing ripple animation on iOS
• Automated Code Analysis for Flutter: Integrating SonarCloud with GitHub Actions
• Trying to Start a Multiplatform Company Store with Kotlin RPC, Koin, Ktor, and WASM
• Mastering Null Safety in Dart: A Practical Guide for Flutter Developers
• Compilers, Virtual Machines and Code Analysis — What makes Dart and Flutter run
• Mobile App Development Course with React Native, Supabase, Next.js
• Kotlin Multiplatform Developer Roadmap — план изучения Kotlin Multiplatform
Разработка
• Один год Elite Hoops: 12 маленьких уроков
• Ускоряем работу приложения с помощью сжатия с общим словарем
• Антипаттерны Code Review
• День, когда мы (почти) потеряли тысячу клиентов
• Детство с синей изолентой, профессиональные трудности и путь к успеху девушки в IT: опыт Ани Жарковой
• Тысячи иконок и адаптация под RTL: проектирование интерфейса шаблона мобильного приложения для партнёров Travelpayouts
• Shape Up, scrum out. Как решать проблемы юзеров за дни, а не за сторипоинты
• Google выпустил корпоративную версию Gemini Code Assist
• Early создает Unit-тесты с помощью ИИ
• 3 Career Principles that got me to Director at Google
• Integrating Appium and Cypress for Unified Test Automation
• The Senior Shortcut
• How we Outsmarted CSGO Cheaters with IdentityLogger
• Be Suspicious of Success
• Programming a first person shooter from scratch like it’s 1995
Аналитика, маркетинг и монетизация
• Топ быстрорастущих приложений в России в октябре
• Дизайн на основе данных: Как метрики делают ваш продукт успешным
• Собеседование продуктового аналитика в Авито: кейс-интервью
• 17 Издание Индекса эффективности от AppsFlyer
• Как определить целевую аудиторию и повысить охваты вашего мобильного приложения: полное руководство
• Самые скачиваемые и зарабатывающие приложения в мире в сентябре 2024
• How Uber Eats makes you think you want to order food
• How to brew the perfect Halloween campaign for app growth
AI, Устройства, IoT
• Почему AI не заменит программистов
• На пути к миллиарду: строим настоящую IT-компанию вокруг подвижных детских игр “Пол – это лава” и “Море волнуется”
• Искусство аугментации: как улучшить модели компьютерного зрения без сбора новых данных
• Секреты умного дома от профессионала: что скрывает Андрей в своем особняке
• Ставлю на Zero! Мой выбор одноплатника. Raspberry Pi vs Orange Pi
• AI в медицине
• Mistral выпускает новые ИИ-модели, оптимизированные для телефонов
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Корзина в Додо Пицце на iOS 14: баг длиной в полгода
• Tuist: добавляем генерацию проекта в текущее приложение
• Вычисление семантического расстояния между словами с помощью Natural Language Framework
• Осторожно, Combine! Откуда берутся утечки памяти, потеря эвентов, нестабильность операторов и что с этим всем делать
• История одного модального окна или переходим с UIKit на SwiftUI. Часть 2.1. Неожиданный баг Combine
• Создаем анимацию печати текста на печатной машинке в SwiftUI
• Introducing Recap: What’s Old Is What’s New Again
• Maintaining Syntactic Sugar for Optional in Swift
• Replacing Fastlane with Shell scripts
• Security-scoped bookmarks for URL access
• How we reduced the build time by 2 with(out) Xcode at Shopmium
• Swift Testing: How to Test Your iOS App’s Network Layer
• What was early iOS development like
• Networking Async/Await in SwiftUI
• Building a Custom Progress Bar in SwiftUI
• Reinventing Core Data Development with SwiftData Principles
• Creating a Theme manager for UIKit using Combine in Swift
• Exploring SwiftUI: Understanding TextRenderer to Animate Words
• Tokenizing text with the Natural Language framework
• Interactive Toasts SwiftUI
• How to get started with Swift Testing
• WWDC22: Visualize and optimize Swift concurrency
• Principal Engineer shares tips to Master System Design and Architecture
• SwiftUI Toasts
• How to get started with Swift Testing
• Create a Bold SwiftUI Flight Boarding Widget
• Add Micro Interactions to your Tab Bar | SwiftUI
• iOS/SwiftUI Chat App With Cursor
• iOS Swift for VS Code — iOS-разработка в VS Code
• iOS Performance Optimization — рекомендации по оптимизации iOS-приложений
• TinyStorage — простая и легкая замена UserDefaults для постоянного хранения данных
Android
• Компьютерное зрение на C++: пишем приложение для поиска объектов под Android
• Как мы улучшили производительность навигации на Android на 30%
• Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery
• Как настроить правильное расположение элементов в Android-приложении для арабского языка
• Понимание прогноза глюкозы в AndroidAPS часть 2
• Тесты для функций Compose в Android
• Google начал развертывание Android 15 на Pixel
• Зачем нужен crossinline — вопросы с собеседований
• Google готовится запустить Linux-приложения на Android
• Как следить за качеством работы вашего кода. Tracer. Кирилл Попов
• 1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью
• Замена иконок — что может быть проще?
• Ktor 3.0 Is Now Available With New Features and Improved Performance
• Kotlin Design Patterns: Builder Explained
• Seamless Real-Time Location Tracking with gRPC, Kotlin & Jetpack Compose
• One click dependencies fix
• Understanding the Impact of Multiple NavHosts on Back Navigation and ViewModel Management in Jetpack Compose
• SWIGGY SDE-2 Inteview Experience (Android)
• Android Studio Ladybug Feature Drop
• 7 Kotlin Flow Operators that you must know
• Testing Coroutines — Simplified
• Using Kotlin Reflection to Automate Compose Navigation
• runTest vs runBlocking — Simplified
• Bypassing Location Restrictions on a Android App Using Frida
• The updated Kotlin roadmap is here!
• Compose Multiplatform 1.7.0 Released
• Creating a responsive dashboard layout for JetLagged with Jetpack Compose
• Custom Adaptive layouts in Compose
• Region specific resources and broken localization
• Applying the Builder Pattern in Kotlin
• Loaders — лоадеры для Jetpack Compose
Кроссплатформа
• Самые важные пакеты в экосистеме Dart и Flutter на Pub 2024
• Как подружить Flutter и Huawei — настраиваем App Gallery. Часть 1
• Building a Cross-Platform Camera App with CameraK and Compose Multiplatform
• Making Compose Multiplatform apps feel at home: removing ripple animation on iOS
• Automated Code Analysis for Flutter: Integrating SonarCloud with GitHub Actions
• Trying to Start a Multiplatform Company Store with Kotlin RPC, Koin, Ktor, and WASM
• Mastering Null Safety in Dart: A Practical Guide for Flutter Developers
• Compilers, Virtual Machines and Code Analysis — What makes Dart and Flutter run
• Mobile App Development Course with React Native, Supabase, Next.js
• Kotlin Multiplatform Developer Roadmap — план изучения Kotlin Multiplatform
Разработка
• Один год Elite Hoops: 12 маленьких уроков
• Ускоряем работу приложения с помощью сжатия с общим словарем
• Антипаттерны Code Review
• День, когда мы (почти) потеряли тысячу клиентов
• Детство с синей изолентой, профессиональные трудности и путь к успеху девушки в IT: опыт Ани Жарковой
• Тысячи иконок и адаптация под RTL: проектирование интерфейса шаблона мобильного приложения для партнёров Travelpayouts
• Shape Up, scrum out. Как решать проблемы юзеров за дни, а не за сторипоинты
• Google выпустил корпоративную версию Gemini Code Assist
• Early создает Unit-тесты с помощью ИИ
• 3 Career Principles that got me to Director at Google
• Integrating Appium and Cypress for Unified Test Automation
• The Senior Shortcut
• How we Outsmarted CSGO Cheaters with IdentityLogger
• Be Suspicious of Success
• Programming a first person shooter from scratch like it’s 1995
Аналитика, маркетинг и монетизация
• Топ быстрорастущих приложений в России в октябре
• Дизайн на основе данных: Как метрики делают ваш продукт успешным
• Собеседование продуктового аналитика в Авито: кейс-интервью
• 17 Издание Индекса эффективности от AppsFlyer
• Как определить целевую аудиторию и повысить охваты вашего мобильного приложения: полное руководство
• Самые скачиваемые и зарабатывающие приложения в мире в сентябре 2024
• How Uber Eats makes you think you want to order food
• How to brew the perfect Halloween campaign for app growth
AI, Устройства, IoT
• Почему AI не заменит программистов
• На пути к миллиарду: строим настоящую IT-компанию вокруг подвижных детских игр “Пол – это лава” и “Море волнуется”
• Искусство аугментации: как улучшить модели компьютерного зрения без сбора новых данных
• Секреты умного дома от профессионала: что скрывает Андрей в своем особняке
• Ставлю на Zero! Мой выбор одноплатника. Raspberry Pi vs Orange Pi
• AI в медицине
• Mistral выпускает новые ИИ-модели, оптимизированные для телефонов
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.