В новом выпуске борьба с зависимостями и антипаттернами, соль непредсказуемости, юзабилити тестирование, несколько взглядов на SOLID и многое другое. Подключайтесь!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
iOS
• Приключение на 5 минут: как мы переводили все зависимости на SPM
• ARKit 6. Что нового?
• Как добавить список лицензий и благодарностей CocoaPods и при чём тут Settings.Bundle?
• Диспетчеризация в Swift: погружение в теорию и практику
• Универсальный интерфейс
• Apple разрешает сторонние покупки в Южной Корее
• Понимаем архитектуру VIPER
• Apple выпустит VR/AR-гарнитуру в январе
• SwiftUI 4 is killing my open-source projects
• Extending Apple’s WWDC 2017 Demo App With SceneKit and SwiftUI
• Create a beautiful Network Layer With Swift
• How to filter screenshots, cinematic videos, and depth-effect photos in PHPickerViewController
• Lightweight MVI architecture on iOS with UIKit
• New in SwiftUI 4: Multi-Series Bar Chart
• New in SwiftUI 4: Expanding TextField
• A First Look at SwiftUI NavigationStack, NavigationPath, and “navigationDestination”
• Module code generation in iOS development
• Extracting Lazily Loaded Elements for UI Testing in a SwiftUI iOS App
• Developing Twitter splash screen for iOS application
• How to make absolutely any app look like a macOS app
• Removing Dependencies: One Weird Trick for Increasing Happiness
• Swift 5.7 Regex and RegexBuilder
• The power of task view modifier in SwiftUI
• Deep Dive into iOS Memory
• Difference between frame and bound, the easiest explanation you can find nowhere
• AsyncSequence & AsyncStream Tutorial for iOS
• Behind the Design: Gibbon: Beyond the Trees
• Understanding VIPER Architecture
• Simple Introduction to Pencilkit
• Rain+Lightning Animation using SpriteKit in SwiftUI
• VIP design pattern (or Clean Swift)
• SwiftUI Backports: SwiftUI для старых версий iOS
• KeyboardToolbar: вспомогательная клавиатура для iOS
Android
• 8 антипаттернов в кодовой базе Android
• We need to go deeper: диплинки и кодогенерация
• Как сделать Android Studio потрясающей
• 14 задач по Kotlin lists, которые заставят вас подумать
• Почему вам нужно адаптировать свое приложение для Huawei AppGallery и как это сделать
• Полное руководство по тестовым дублерам в Android — Часть 2: Практика
• Compose sample app: UI state with Flow, offline first
• Using Live Templates to Improve Android Development Productivity
• 8 anti-patterns in Android codebase and why I hate them
• Building your own custom layout with Jetpack Compose
• Load Fragments in Jetpack Compose: Beyond What Google Taught
• Android navigation with multiple back stacks
• How to make Android Studio look Awesome!
• Gradle Configuration Caching — Replacing a Build Listener with Build Services
• Modularising Trendyol Android App for Build Efficiency
• A Solution for Combining Kotlin Suspend Function + Retrofit
• How we reduced our Android app size by 55% using Dynamic Delivery
• Start Competitive Programming with Kotlin
• Super Easy Navigation between Composable’s in Jetpack Compose
• Screen response time. A critical metric for user experience
• Surviving Configuration Changes in Android
• TestDispatcher: Become the Clock Master
• A Love Letter to Android
• 5 Useful Kotlin Extensions for Android Developers
• What’s New in Android Studio Electric Eel
• Pinball on Android: классический пинбол Windows
• Compose Destinations: безопасная навигация для Jetpack Compose
• Zeplin Asset: ресурсы из Zeplin в Gradle
Кроссплатформа
• Вся соль непредсказуемости: ценность рандомизации при разработке игр
• Разговор с разработчиками о производительности на Flutter
• Создание dungeon crawler'а с LeoECS Lite. Часть 2
• Использование Kotlin Multiplatform — исследование JetBrains
• Начинаем работу с .NET MAUI
• A List of state management approaches in Flutter
• 7 Flutter Open Source Projects to Become a Better Flutter Developer
• Flutter’s Stack and IndexedStack Widgets
• Microfrontends with React Native
• Improving shared architecture for a Kotlin Multiplatform, Jetpack Compose and SwiftUI app
• Skia on React Native: First look
• Drawing Animation in Flutter with svg
• The Right Path To Being A Senior Flutter Developer
Разработка
• Как теория Бартла о психотипах геймеров помогает в комьюнити-менеджменте
• Как провести юзабилити-тестирование с респондентом и не провалить его
• 5 альтернатив TODO для побочных проектов и изучения нового языка
• Как мы перешли на регулярные релизы мобильного приложения. Часть I
• Открытый лекторий от Летних школ Яндекса
• Разработка: прототип игры Wordle в ProtoPie
• Один в поле не воин. Полезные интеграции для инструментов анализа мобильных приложений
• От кнопки «Создать приложение» до публикации в каталоге — глазами разработчика
• Обзор российской системы управления тестированием Test IT
• Взгляд тестировщика на SOLID
• Apache Doris получила статус проекта верхнего уровня
• VK открывает набор на бесплатную летнюю образовательную программу по мобильной разработке
• Niantic отменяет проекты и сокращает персонал
• Unity увольняет сотни работников
• IT-специалисты стали перерабатывать меньше
• GitHub запустил интерактивные курсы Github Skills
• How to Create Your Own Operating System
• How Big Should Touch Areas in Car Interfaces Be?
• 7 Habits of Highly Successful Coders
• Dear developers, thank you for Github Copilot. Also, you’re fired.
• Should Functions Be Small?
• Modern Cloud for Multiplayer Games
• 5 Common Mistakes Every Junior Developer Makes!
• How Tinder Solves Complex Lottie Localizations with Server Driven UI
Аналитика, маркетинг и монетизация
• Как мы работаем над продуктовыми гипотезами
• Adjust и AppLovin сокращают 12% персонала
• Newzoo: более 500 компаний работают над метавселеннными
• VK запускает программу поддержки разработчиков приложений в RuStore
• Самые зарабатывающие приложения США в мае
• Miniclip покупает SYBO Games, создателя Subway Surfers
AI, Устройства, IoT
• Что мы действительно (не)знаем о наличии сознания у сверхбольших нейросетей?
• Был excel — стал ML: как мы расход ингредиентов учились прогнозировать
• Автоматическая расстановка мебели: миф или реальность?
• Контекстные многорукие бандиты для рекомендации контента, или Не Бернулли единым
• Raspberry Pi представила новые Pico
• Все больше людей используют дипфейки для прохождения собеседований
• Arm представил процессоры Armv9 второго поколения
• Learning to Play Minecraft with Video PreTraining
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
iOS
• Приключение на 5 минут: как мы переводили все зависимости на SPM
• ARKit 6. Что нового?
• Как добавить список лицензий и благодарностей CocoaPods и при чём тут Settings.Bundle?
• Диспетчеризация в Swift: погружение в теорию и практику
• Универсальный интерфейс
• Apple разрешает сторонние покупки в Южной Корее
• Понимаем архитектуру VIPER
• Apple выпустит VR/AR-гарнитуру в январе
• SwiftUI 4 is killing my open-source projects
• Extending Apple’s WWDC 2017 Demo App With SceneKit and SwiftUI
• Create a beautiful Network Layer With Swift
• How to filter screenshots, cinematic videos, and depth-effect photos in PHPickerViewController
• Lightweight MVI architecture on iOS with UIKit
• New in SwiftUI 4: Multi-Series Bar Chart
• New in SwiftUI 4: Expanding TextField
• A First Look at SwiftUI NavigationStack, NavigationPath, and “navigationDestination”
• Module code generation in iOS development
• Extracting Lazily Loaded Elements for UI Testing in a SwiftUI iOS App
• Developing Twitter splash screen for iOS application
• How to make absolutely any app look like a macOS app
• Removing Dependencies: One Weird Trick for Increasing Happiness
• Swift 5.7 Regex and RegexBuilder
• The power of task view modifier in SwiftUI
• Deep Dive into iOS Memory
• Difference between frame and bound, the easiest explanation you can find nowhere
• AsyncSequence & AsyncStream Tutorial for iOS
• Behind the Design: Gibbon: Beyond the Trees
• Understanding VIPER Architecture
• Simple Introduction to Pencilkit
• Rain+Lightning Animation using SpriteKit in SwiftUI
• VIP design pattern (or Clean Swift)
• SwiftUI Backports: SwiftUI для старых версий iOS
• KeyboardToolbar: вспомогательная клавиатура для iOS
Android
• 8 антипаттернов в кодовой базе Android
• We need to go deeper: диплинки и кодогенерация
• Как сделать Android Studio потрясающей
• 14 задач по Kotlin lists, которые заставят вас подумать
• Почему вам нужно адаптировать свое приложение для Huawei AppGallery и как это сделать
• Полное руководство по тестовым дублерам в Android — Часть 2: Практика
• Compose sample app: UI state with Flow, offline first
• Using Live Templates to Improve Android Development Productivity
• 8 anti-patterns in Android codebase and why I hate them
• Building your own custom layout with Jetpack Compose
• Load Fragments in Jetpack Compose: Beyond What Google Taught
• Android navigation with multiple back stacks
• How to make Android Studio look Awesome!
• Gradle Configuration Caching — Replacing a Build Listener with Build Services
• Modularising Trendyol Android App for Build Efficiency
• A Solution for Combining Kotlin Suspend Function + Retrofit
• How we reduced our Android app size by 55% using Dynamic Delivery
• Start Competitive Programming with Kotlin
• Super Easy Navigation between Composable’s in Jetpack Compose
• Screen response time. A critical metric for user experience
• Surviving Configuration Changes in Android
• TestDispatcher: Become the Clock Master
• A Love Letter to Android
• 5 Useful Kotlin Extensions for Android Developers
• What’s New in Android Studio Electric Eel
• Pinball on Android: классический пинбол Windows
• Compose Destinations: безопасная навигация для Jetpack Compose
• Zeplin Asset: ресурсы из Zeplin в Gradle
Кроссплатформа
• Вся соль непредсказуемости: ценность рандомизации при разработке игр
• Разговор с разработчиками о производительности на Flutter
• Создание dungeon crawler'а с LeoECS Lite. Часть 2
• Использование Kotlin Multiplatform — исследование JetBrains
• Начинаем работу с .NET MAUI
• A List of state management approaches in Flutter
• 7 Flutter Open Source Projects to Become a Better Flutter Developer
• Flutter’s Stack and IndexedStack Widgets
• Microfrontends with React Native
• Improving shared architecture for a Kotlin Multiplatform, Jetpack Compose and SwiftUI app
• Skia on React Native: First look
• Drawing Animation in Flutter with svg
• The Right Path To Being A Senior Flutter Developer
Разработка
• Как теория Бартла о психотипах геймеров помогает в комьюнити-менеджменте
• Как провести юзабилити-тестирование с респондентом и не провалить его
• 5 альтернатив TODO для побочных проектов и изучения нового языка
• Как мы перешли на регулярные релизы мобильного приложения. Часть I
• Открытый лекторий от Летних школ Яндекса
• Разработка: прототип игры Wordle в ProtoPie
• Один в поле не воин. Полезные интеграции для инструментов анализа мобильных приложений
• От кнопки «Создать приложение» до публикации в каталоге — глазами разработчика
• Обзор российской системы управления тестированием Test IT
• Взгляд тестировщика на SOLID
• Apache Doris получила статус проекта верхнего уровня
• VK открывает набор на бесплатную летнюю образовательную программу по мобильной разработке
• Niantic отменяет проекты и сокращает персонал
• Unity увольняет сотни работников
• IT-специалисты стали перерабатывать меньше
• GitHub запустил интерактивные курсы Github Skills
• How to Create Your Own Operating System
• How Big Should Touch Areas in Car Interfaces Be?
• 7 Habits of Highly Successful Coders
• Dear developers, thank you for Github Copilot. Also, you’re fired.
• Should Functions Be Small?
• Modern Cloud for Multiplayer Games
• 5 Common Mistakes Every Junior Developer Makes!
• How Tinder Solves Complex Lottie Localizations with Server Driven UI
Аналитика, маркетинг и монетизация
• Как мы работаем над продуктовыми гипотезами
• Adjust и AppLovin сокращают 12% персонала
• Newzoo: более 500 компаний работают над метавселеннными
• VK запускает программу поддержки разработчиков приложений в RuStore
• Самые зарабатывающие приложения США в мае
• Miniclip покупает SYBO Games, создателя Subway Surfers
AI, Устройства, IoT
• Что мы действительно (не)знаем о наличии сознания у сверхбольших нейросетей?
• Был excel — стал ML: как мы расход ингредиентов учились прогнозировать
• Автоматическая расстановка мебели: миф или реальность?
• Контекстные многорукие бандиты для рекомендации контента, или Не Бернулли единым
• Raspberry Pi представила новые Pico
• Все больше людей используют дипфейки для прохождения собеседований
• Arm представил процессоры Armv9 второго поколения
• Learning to Play Minecraft with Video PreTraining
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.