В нашем новом дайджесте внедрение SwiftUI в Airbnb, диск на шейдерах и победа фрагментации, невидимые проблемы, советы к собеседованию, $20 млрд на конфетки, приложение с фотопленкой и многое другое!
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Как Airbnb внедрила SwiftUI в приложение для iOS
• Дебаггинг приложения без Xcode. Зачем?
• CD-диск на шейдерах и NameDrop в iOS 17
• Универсальные датасорсы в iOS-разработке
• Учимся генерировать код из OpenAPI, делать автоверсионирование, разрабатывать мобильные SDK и растить команду без ошибок
• Два по цене одного: snapshot-тесты на основе SwiftUI Preview
• Топ-10 типичных ошибок iOS-разработчика
• Простой пример Внедрения зависимостей в iOS
• Прожарка Tuist
• ЕС требует от Apple открыть всё
• Пакеты параметров типа и значения в Swift с объяснением
• Поваренная книга SwiftUI: добавление текстового представления в SwiftUI
• Разработчик Pixel Pals реализовал игры в виджетах iOS 17
• Inline Snapshot Testing
• Considering Mac Catalyst? A word of caution…
• iOS Navigation Series: The Basics (with SwiftUI examples)
• Understanding Publishers in SwiftUI and Combine
• OperationQueue + asynchronous code
• Demystifying SwiftUI List Responsiveness: Best Practices for Large Datasets
• Migrating a simple structure from UserDefault to SwiftData
• A quick guide on networking logs in Swift
• Expert iOS Interview Questions: A Deep Dive into Advanced Concepts
• Value and Type parameter packs in Swift explained with examples
• Adding a Help Menu to a SwiftUI App
• Mastering charts in SwiftUI. Pie and Donut charts.
• Verify collections in Swift with sized index sets
• Decodable CoreData: A Proof-of-Concept for Building Offline-First iOS Apps
• The Future of Accessing User Location in SwiftUI
• Create SPM module for MEGA SDK C++ code
• Utilise Enum to ‘document’ your code
• Development with CI/CD and GitHub Actions on iOS project
• SwiftUI Swipe Actions from Scratch
• Super Power Scroll Views — SwiftUI
• SwiftUI: Telegram Dark Mode Animation Challenge
• WatchOS 10 Heart App Animation Using SwiftUI
• Phase Animations in iOS 17
• Say Goodbye to Manual Mock Data: Discover the Power of @SampleBuilder!
• FittedSheets: Bottom Sheet для iOS
• Swift Testing: библиотека тестирования для Swift
Android
• Как Google победила фрагментацию и возвращает контроль над Android
• На 65% меньше APK и на 70% меньше потребление памяти: как мы оптимизировали приложение для Android
• Возможна ли жизнь после плеймаркета?
• NoArchitecture Kotlin Compose
• Gradle Kotlin DSL: о чем умолчали в документации
• Здоровье вашей Gradle-сборки
• Вопросы с собеседований: что такое this в Kotlin
• Уменьшаем рекомпозиции для изображений в Jetpack Compose
• Migrating to Jetpack Compose — an interop love story
• Exploring the Game-changing Updates in Koin 3.5
• Reduce Recomposition for Images/Icons In Jetpack Compose
• Painless building of an Android package installer app
• Mapping Experiences with Google Maps and Jetpack Compose
• Kotlin Mutex: 5 Use Cases
• Jetpack Compose: Countdown Timer
• Leveraging Kotlin Delegation to Simplify ViewModel Collaboration and State Management
• Protect Kotlin Project Architecture Using Konsist
• Composing AnnotatedString — Poetry, Music, Code, Blogs, Expandables and Beyond
• A comprehensive guide to perform effective code reviews for Android developers
• Line Chart UI with Jetpack Compose: A Simple Guide
• 65% Smaller APKs and 70% Less Memory: How I Optimized My Android App-Part
• Make a simple “Slide to unlock” in Jetpack Compose
• Migrate from Kapt to KSP, Kapt will be deprecated soon
• Best Practices for Compose Navigation in Multi-Module Project
• A Pragmatic Introduction To Dagger on Android
• Best Practices in Jetpack Compose for beginners
• Drawer Navigation using Material 3 in Jetpack Compose
• Debugging Jetpack Compose (Based on true story! ??)
• Android Adventure: Constraint Views with Flow
• Dependency Management in a Multi-Module Project – THIS Is How You Need to Do It
• New UI for Android Studio
• Dependency Management in a Multi-Module Project — THIS Is How You Need to Do It
• Create a Wear OS watchface
• How to Use CameraX With Android Jetpack Compose To Implement In-App Photo Capturing
• Gallery: медиа-галерея на Jetpack Compose
• ComposeLevitation: эффект левитации для элементов UI
Кроссплатформа
• Restyle как новый стандарт для создания UI в React Native
• jenv — удобный инструмент для управления версиями Java
• Все больше разработчиков приложений выбирают Flutter вместо React Native
• Using annotations to improve iOS APIs on Kotlin Multiplatform
• Enhancing Static Analysis in Flutter: Interview with DCM Founder Dmitry Zhifarsky
• Using annotations to improve iOS APIs on Kotlin Multiplatform
• Memory Management in Flutter: Best Practices and Pitfalls
• From Native to React Native to Flutter
• Thoughts On Flutter 3.13
• Developing Flutter apps for Large screens
• Unleashing the Power of CodePush: Publish updates for Flutter Mobile App using Shorebird without new releases on App Store and Play Store
• Efficient Dart: optimizing CPU-bound load in Flutter without missing a frame
• Release an iOS app with Flutter in 7 steps
• A Complete Guide for using Dynamic Island in your next Flutter App
• Cashew: управление финансами на Flutter
Разработка
• Невидимая проблема текстовых редакторов на смартфонах
• Кто-нибудь, остановите feature creep
• Барометр из детства — прекрасный артефакт. Чего мне не хватает в программах и приложениях
• Как мы создаём Squadus. Реализуем «прыжок к сообщению» в мобильной версии
• Метрика Pure Score
• Советы к собеседованию
• PartyKit реализует многопользовательское взаимодействие в реальном времени для любого приложения
• JetBrains прекратила действие персональных лицензий в России
• Как сделать осознанный UX в эпоху убедительных технологий
• My solopreneur story: zero to $45K/mo in 2 years
• How to build intentional UX in an era of persuasive technology
• 7 Habits of Highly Effective Software Engineers
• Failure Mitigation for Microservices: An Intro to Aperture
• My thoughts on the WebP exploit
• Redesigning Swiggy’s new user onboarding — A product design case study
• Why is it always deploys to prod that go wrong?
• Battery Consumption in Smartphones
Аналитика, маркетинг и монетизация
• Candy Crush заработала $20 млрд
• Tinder представил подписку за $500
• Индийский PhonePe запустил магазин приложений с нулевым налогом
• В RuStore появились инструменты для сбора и анализа ошибок
• Публичное собеседование на роль продакт-менеджера по монетизации
• Приложение Being составляет карту психологических проблем и помогает с их решением
• Apple подала в Верховный суд просьбу пересмотреть решение в деле против Epic
• Epic Games проводит увольнения
• Spotify запускает Jam — совместный плейлист, управляемый в реальном времени 32 людьми
• $2 млн: TeachMe.To — спортивные тренировки для всех
• Приложение Lapse с «одноразовой фотопленкой» стало №1 в App Store
• Mastering Customer Segmentation with LLM
AI, Устройства, IoT
• Топ 10 deepnude нейросетей 2023 года
• От желания управлять газовым котлом удалённо до полной автоматизации отопления дома
• Mistral AI открыла свою первую большую языковую модель
• Представлен микрокомпьютер Raspberry Pi 5
• Представлена гарнитура Quest 3
• A Hackers’ Guide to Language Models
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Как Airbnb внедрила SwiftUI в приложение для iOS
• Дебаггинг приложения без Xcode. Зачем?
• CD-диск на шейдерах и NameDrop в iOS 17
• Универсальные датасорсы в iOS-разработке
• Учимся генерировать код из OpenAPI, делать автоверсионирование, разрабатывать мобильные SDK и растить команду без ошибок
• Два по цене одного: snapshot-тесты на основе SwiftUI Preview
• Топ-10 типичных ошибок iOS-разработчика
• Простой пример Внедрения зависимостей в iOS
• Прожарка Tuist
• ЕС требует от Apple открыть всё
• Пакеты параметров типа и значения в Swift с объяснением
• Поваренная книга SwiftUI: добавление текстового представления в SwiftUI
• Разработчик Pixel Pals реализовал игры в виджетах iOS 17
• Inline Snapshot Testing
• Considering Mac Catalyst? A word of caution…
• iOS Navigation Series: The Basics (with SwiftUI examples)
• Understanding Publishers in SwiftUI and Combine
• OperationQueue + asynchronous code
• Demystifying SwiftUI List Responsiveness: Best Practices for Large Datasets
• Migrating a simple structure from UserDefault to SwiftData
• A quick guide on networking logs in Swift
• Expert iOS Interview Questions: A Deep Dive into Advanced Concepts
• Value and Type parameter packs in Swift explained with examples
• Adding a Help Menu to a SwiftUI App
• Mastering charts in SwiftUI. Pie and Donut charts.
• Verify collections in Swift with sized index sets
• Decodable CoreData: A Proof-of-Concept for Building Offline-First iOS Apps
• The Future of Accessing User Location in SwiftUI
• Create SPM module for MEGA SDK C++ code
• Utilise Enum to ‘document’ your code
• Development with CI/CD and GitHub Actions on iOS project
• SwiftUI Swipe Actions from Scratch
• Super Power Scroll Views — SwiftUI
• SwiftUI: Telegram Dark Mode Animation Challenge
• WatchOS 10 Heart App Animation Using SwiftUI
• Phase Animations in iOS 17
• Say Goodbye to Manual Mock Data: Discover the Power of @SampleBuilder!
• FittedSheets: Bottom Sheet для iOS
• Swift Testing: библиотека тестирования для Swift
Android
• Как Google победила фрагментацию и возвращает контроль над Android
• На 65% меньше APK и на 70% меньше потребление памяти: как мы оптимизировали приложение для Android
• Возможна ли жизнь после плеймаркета?
• NoArchitecture Kotlin Compose
• Gradle Kotlin DSL: о чем умолчали в документации
• Здоровье вашей Gradle-сборки
• Вопросы с собеседований: что такое this в Kotlin
• Уменьшаем рекомпозиции для изображений в Jetpack Compose
• Migrating to Jetpack Compose — an interop love story
• Exploring the Game-changing Updates in Koin 3.5
• Reduce Recomposition for Images/Icons In Jetpack Compose
• Painless building of an Android package installer app
• Mapping Experiences with Google Maps and Jetpack Compose
• Kotlin Mutex: 5 Use Cases
• Jetpack Compose: Countdown Timer
• Leveraging Kotlin Delegation to Simplify ViewModel Collaboration and State Management
• Protect Kotlin Project Architecture Using Konsist
• Composing AnnotatedString — Poetry, Music, Code, Blogs, Expandables and Beyond
• A comprehensive guide to perform effective code reviews for Android developers
• Line Chart UI with Jetpack Compose: A Simple Guide
• 65% Smaller APKs and 70% Less Memory: How I Optimized My Android App-Part
• Make a simple “Slide to unlock” in Jetpack Compose
• Migrate from Kapt to KSP, Kapt will be deprecated soon
• Best Practices for Compose Navigation in Multi-Module Project
• A Pragmatic Introduction To Dagger on Android
• Best Practices in Jetpack Compose for beginners
• Drawer Navigation using Material 3 in Jetpack Compose
• Debugging Jetpack Compose (Based on true story! ??)
• Android Adventure: Constraint Views with Flow
• Dependency Management in a Multi-Module Project – THIS Is How You Need to Do It
• New UI for Android Studio
• Dependency Management in a Multi-Module Project — THIS Is How You Need to Do It
• Create a Wear OS watchface
• How to Use CameraX With Android Jetpack Compose To Implement In-App Photo Capturing
• Gallery: медиа-галерея на Jetpack Compose
• ComposeLevitation: эффект левитации для элементов UI
Кроссплатформа
• Restyle как новый стандарт для создания UI в React Native
• jenv — удобный инструмент для управления версиями Java
• Все больше разработчиков приложений выбирают Flutter вместо React Native
• Using annotations to improve iOS APIs on Kotlin Multiplatform
• Enhancing Static Analysis in Flutter: Interview with DCM Founder Dmitry Zhifarsky
• Using annotations to improve iOS APIs on Kotlin Multiplatform
• Memory Management in Flutter: Best Practices and Pitfalls
• From Native to React Native to Flutter
• Thoughts On Flutter 3.13
• Developing Flutter apps for Large screens
• Unleashing the Power of CodePush: Publish updates for Flutter Mobile App using Shorebird without new releases on App Store and Play Store
• Efficient Dart: optimizing CPU-bound load in Flutter without missing a frame
• Release an iOS app with Flutter in 7 steps
• A Complete Guide for using Dynamic Island in your next Flutter App
• Cashew: управление финансами на Flutter
Разработка
• Невидимая проблема текстовых редакторов на смартфонах
• Кто-нибудь, остановите feature creep
• Барометр из детства — прекрасный артефакт. Чего мне не хватает в программах и приложениях
• Как мы создаём Squadus. Реализуем «прыжок к сообщению» в мобильной версии
• Метрика Pure Score
• Советы к собеседованию
• PartyKit реализует многопользовательское взаимодействие в реальном времени для любого приложения
• JetBrains прекратила действие персональных лицензий в России
• Как сделать осознанный UX в эпоху убедительных технологий
• My solopreneur story: zero to $45K/mo in 2 years
• How to build intentional UX in an era of persuasive technology
• 7 Habits of Highly Effective Software Engineers
• Failure Mitigation for Microservices: An Intro to Aperture
• My thoughts on the WebP exploit
• Redesigning Swiggy’s new user onboarding — A product design case study
• Why is it always deploys to prod that go wrong?
• Battery Consumption in Smartphones
Аналитика, маркетинг и монетизация
• Candy Crush заработала $20 млрд
• Tinder представил подписку за $500
• Индийский PhonePe запустил магазин приложений с нулевым налогом
• В RuStore появились инструменты для сбора и анализа ошибок
• Публичное собеседование на роль продакт-менеджера по монетизации
• Приложение Being составляет карту психологических проблем и помогает с их решением
• Apple подала в Верховный суд просьбу пересмотреть решение в деле против Epic
• Epic Games проводит увольнения
• Spotify запускает Jam — совместный плейлист, управляемый в реальном времени 32 людьми
• $2 млн: TeachMe.To — спортивные тренировки для всех
• Приложение Lapse с «одноразовой фотопленкой» стало №1 в App Store
• Mastering Customer Segmentation with LLM
AI, Устройства, IoT
• Топ 10 deepnude нейросетей 2023 года
• От желания управлять газовым котлом удалённо до полной автоматизации отопления дома
• Mistral AI открыла свою первую большую языковую модель
• Представлен микрокомпьютер Raspberry Pi 5
• Представлена гарнитура Quest 3
• A Hackers’ Guide to Language Models
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.