Наш новый дайджест для разработчиков мобильных приложений! В нем про человеческий фактор в Swift и доступность, функциональное мышление и новый Logcat, новинки Flutter, умные тесты, разработку магазинов и многое другое!
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

 iOS
iOS
• Минимизируем человеческий фактор в Swift
• Использование Makefiles для проектов Swift
• Combine: часть 1. Погружение в реактивное программирование
• Нельзя просто так взять и написать полезный iOS фреймворк… Или можно?
• Видео Do iOS 2022
• SwiftUI Layout Protocol — iOS 16.0+
SwiftUI Layout Protocol — iOS 16.0+
• How Senior iOS Engineers Style Code: Performance And Clarity
How Senior iOS Engineers Style Code: Performance And Clarity
• Create Your First Swift Package Command Plugin
Create Your First Swift Package Command Plugin
• Facade Design Pattern in Swift, and Its Important Use-Cases
Facade Design Pattern in Swift, and Its Important Use-Cases
• Swift Learning Roadmap 2023 — The Ultimate Guide
Swift Learning Roadmap 2023 — The Ultimate Guide
• Using Tuples to do Sorting Operations in Swift
Using Tuples to do Sorting Operations in Swift
• Create a UINavigationController With a Gradient as a Background
Create a UINavigationController With a Gradient as a Background
• Dynamically Change App Icons for a Unique User Experience with SwiftUI
Dynamically Change App Icons for a Unique User Experience with SwiftUI
• Three Ways to communicate via WatchConnectivity
Three Ways to communicate via WatchConnectivity
• Enhancing mobile app user experience through efficient caching in Swift
Enhancing mobile app user experience through efficient caching in Swift
• Refactoring an MVVM iOS app into VIPER
Refactoring an MVVM iOS app into VIPER
• Slice that Collection: A Swift guide
Slice that Collection: A Swift guide
• New Scanning and Text Capabilities with VisionKit
New Scanning and Text Capabilities with VisionKit
• How To Speed Up Swift By Ordering Conformances
How To Speed Up Swift By Ordering Conformances
• The Nested Observables Problem in SwiftUI
The Nested Observables Problem in SwiftUI
• ChatGPT in an iOS Shortcut — Worlds Smartest HomeKit Voice Assistant
ChatGPT in an iOS Shortcut — Worlds Smartest HomeKit Voice Assistant
• Multi-select Filter in Swift
Multi-select Filter in Swift
• Prevent copy & paste into other iOS apps
Prevent copy & paste into other iOS apps
• Increase App Performance (Method Dispatch iOS)
Increase App Performance (Method Dispatch iOS)
• Store an Array of Custom Data Types in Core Data With Transformable and NSSecureCoding
Store an Array of Custom Data Types in Core Data With Transformable and NSSecureCoding
• Big O notation in Swift
Big O notation in Swift
• SwiftUI Shimmer: мерцание SwiftUI
SwiftUI Shimmer: мерцание SwiftUI
• SwiftUI Navigation: упрощение навигации в SwiftUI
SwiftUI Navigation: упрощение навигации в SwiftUI
 Android
Android
• Делаем Android-приложение Airbnb более доступным
• Функциональное мышление
• Новый Logcat: 5 функций для эффективной отладки Android-приложений
• Обратный инжиниринг и анализ приложений для Android: пошаговое руководство
• adb: tap, swipe и два дымящихся event'а
• Креативный кодинг с Kotlin и Compose
• Android 14 будет блокировать устаревшие приложения
• Google меняет политики Android в Индии
• Jetpack Compose and Composable Preview
Jetpack Compose and Composable Preview
• Connecting Android Apps with Server using gRPC
Connecting Android Apps with Server using gRPC
• New Logcat: 5 Features for Effective Android App Debugging
New Logcat: 5 Features for Effective Android App Debugging
• Learning Android’s Room Database Made Easy
Learning Android’s Room Database Made Easy
• WebSockets in Android with OkHttp and ViewModel
WebSockets in Android with OkHttp and ViewModel
• Higher order functions in Kotlin — Under the hood
Higher order functions in Kotlin — Under the hood
• Slowing down your code with Coroutines
Slowing down your code with Coroutines
• Testable Database Repositories in Kotlin
Testable Database Repositories in Kotlin
• Mastering Exception Handling in Android Development: Tips and Tricks for Ensuring Stability and Security
Mastering Exception Handling in Android Development: Tips and Tricks for Ensuring Stability and Security
• Reverse Engineering and Analyzing Android Apps: A Step-by-Step Guide
Reverse Engineering and Analyzing Android Apps: A Step-by-Step Guide
• Jetpack Compose Migration: Best Practices and Strategies
Jetpack Compose Migration: Best Practices and Strategies
• Making Airbnb’s Android app more accessible
Making Airbnb’s Android app more accessible
• Optimize or Die. Profiling and Optimization in Jetpack Compose
Optimize or Die. Profiling and Optimization in Jetpack Compose
• Jetpack Compose for Wear OS
Jetpack Compose for Wear OS
• 5 Beginner Testing Mistakes
5 Beginner Testing Mistakes
• JWT Authentication and Refresh Token in Android with Retrofit Interceptor & Authenticator
JWT Authentication and Refresh Token in Android with Retrofit Interceptor & Authenticator
• Behavior Driven Mobile Testing
Behavior Driven Mobile Testing
• How to Make the Firebase Database SDK Work Better With Kotlin
How to Make the Firebase Database SDK Work Better With Kotlin
• Jetpack Compose Codelabs: практическое обучение Compose
Jetpack Compose Codelabs: практическое обучение Compose
• Myne: бесплатные книги для Android с Jetpack Compose
Myne: бесплатные книги для Android с Jetpack Compose
 Кроссплатформа
Кроссплатформа
• Обновление Flutter 3.7: перевод официального релиза и комментарии
• Создание WEBGL приложения Вконтакте на Unity
• Яндекс Карты и React Native. Часть 2. HUD и методы карты + Часть 1. Установка и примитивы
• Подключаем SignalR к Unity
• Будущее платформы на Flutter Forward: новая графика, WebAssembly и RISC-V
• Количество React Native приложений упало вдвое
• Build an Animated Soccer Rating Hexagon in Flutter
Build an Animated Soccer Rating Hexagon in Flutter
• Creating inclusive apps with Flutter: Best practices for accessibility
Creating inclusive apps with Flutter: Best practices for accessibility
• Practices to Simplify Flutter App Development in 2023
Practices to Simplify Flutter App Development in 2023
• Playful typography with Flutter
Playful typography with Flutter
• Flutter — Navigate with GoRouter
Flutter — Navigate with GoRouter
• What’s new in Flutter 3.7
What’s new in Flutter 3.7
• Dart — What I Learned From (Re)Learning It
Dart — What I Learned From (Re)Learning It
• Adapting Wonderous for Landscape
Adapting Wonderous for Landscape
• 1Coin: управление деньгами на Kotlin Multiplatform
1Coin: управление деньгами на Kotlin Multiplatform
 Разработка
Разработка
• Делайте тесты умнее, а не сложнее
• Tenebris: 7 кругов ада инди-разработки
• Гонка за детскими часами и при чём здесь кот?
• 20 советов для разработчиков игр от разработчиков игр
• RuStore: разработка магазина приложений
• Как стать разработчиком мобильных приложений: Профориентация
• Podlodka #304: .NET, часть 2
• У GitHub 100 миллионов активных пользователей
• Самые высокооплачиваемые вакансии января в области разработки приложений
• Current UI trends: how to impress users with your designs
Current UI trends: how to impress users with your designs
• I Removed 500 if Statements With Functional Programming
I Removed 500 if Statements With Functional Programming
• Free certifications for developers
Free certifications for developers
• What is the hardest thing in software development?
What is the hardest thing in software development?
• Coding is Not Enough: The Importance of Investing in Domain Knowledge
Coding is Not Enough: The Importance of Investing in Domain Knowledge
• Best 6 geometric font for your next clean interface design
Best 6 geometric font for your next clean interface design
• This is How Snapchat Breaks UI Principles
This is How Snapchat Breaks UI Principles
• How to reduce the bloated testing process
How to reduce the bloated testing process
• TARS: A product metric game changer
TARS: A product metric game changer
 Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация
• Шесть причин, почему ваши A/B-тесты не работают
• Иногда геймификация заводит не туда: долой стрики
• Разбор баланса My Mini Mart
• 55 млн установок за 3 года: бизнес на мобильных приложениях в нише фото/видео редакторов
• $4.6 млн: Oneleaf — приложение для гипноза
• Niantic запускает NBA All World
• В VK Рекламе заработал ретаргетинг
• Удаление приложений в App Uninstall Report 2023 от AppsFlyer
• Meta* vs TikTok – где эффективнее продвигать русскоязычное приложение на iOS?
 AI, Устройства, IoT
AI, Устройства, IoT
• Как Яндекс научился распознавать, что написано в рукописных архивах
• Starting Electronics: руководство по веб-серверам на Arduino. Часть3. Управление светодиодом с веб-страницы
• Умный дом на минималках
• IIoT-решения для ESG — 3 сценария, в которых беспроводные датчики помогают жить и работать
• UX/UI исследование метавселенных. Часть 1
• Табличная классификация и регрессия Apple ML
• Microsoft сокращает команды виртуальной реальности
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

 iOS
iOS• Минимизируем человеческий фактор в Swift
• Использование Makefiles для проектов Swift
• Combine: часть 1. Погружение в реактивное программирование
• Нельзя просто так взять и написать полезный iOS фреймворк… Или можно?
• Видео Do iOS 2022
•
 SwiftUI Layout Protocol — iOS 16.0+
SwiftUI Layout Protocol — iOS 16.0+•
 How Senior iOS Engineers Style Code: Performance And Clarity
How Senior iOS Engineers Style Code: Performance And Clarity•
 Create Your First Swift Package Command Plugin
Create Your First Swift Package Command Plugin•
 Facade Design Pattern in Swift, and Its Important Use-Cases
Facade Design Pattern in Swift, and Its Important Use-Cases•
 Swift Learning Roadmap 2023 — The Ultimate Guide
Swift Learning Roadmap 2023 — The Ultimate Guide•
 Using Tuples to do Sorting Operations in Swift
Using Tuples to do Sorting Operations in Swift•
 Create a UINavigationController With a Gradient as a Background
Create a UINavigationController With a Gradient as a Background•
 Dynamically Change App Icons for a Unique User Experience with SwiftUI
Dynamically Change App Icons for a Unique User Experience with SwiftUI•
 Three Ways to communicate via WatchConnectivity
Three Ways to communicate via WatchConnectivity•
 Enhancing mobile app user experience through efficient caching in Swift
Enhancing mobile app user experience through efficient caching in Swift•
 Refactoring an MVVM iOS app into VIPER
Refactoring an MVVM iOS app into VIPER•
 Slice that Collection: A Swift guide
Slice that Collection: A Swift guide•
 New Scanning and Text Capabilities with VisionKit
New Scanning and Text Capabilities with VisionKit•
 How To Speed Up Swift By Ordering Conformances
How To Speed Up Swift By Ordering Conformances•
 The Nested Observables Problem in SwiftUI
The Nested Observables Problem in SwiftUI•
 ChatGPT in an iOS Shortcut — Worlds Smartest HomeKit Voice Assistant
ChatGPT in an iOS Shortcut — Worlds Smartest HomeKit Voice Assistant•
 Multi-select Filter in Swift
Multi-select Filter in Swift•
 Prevent copy & paste into other iOS apps
Prevent copy & paste into other iOS apps•
 Increase App Performance (Method Dispatch iOS)
Increase App Performance (Method Dispatch iOS)•
 Store an Array of Custom Data Types in Core Data With Transformable and NSSecureCoding
Store an Array of Custom Data Types in Core Data With Transformable and NSSecureCoding•
 Big O notation in Swift
Big O notation in Swift•
 SwiftUI Shimmer: мерцание SwiftUI
SwiftUI Shimmer: мерцание SwiftUI•
 SwiftUI Navigation: упрощение навигации в SwiftUI
SwiftUI Navigation: упрощение навигации в SwiftUI Android
Android• Делаем Android-приложение Airbnb более доступным
• Функциональное мышление
• Новый Logcat: 5 функций для эффективной отладки Android-приложений
• Обратный инжиниринг и анализ приложений для Android: пошаговое руководство
• adb: tap, swipe и два дымящихся event'а
• Креативный кодинг с Kotlin и Compose
• Android 14 будет блокировать устаревшие приложения
• Google меняет политики Android в Индии
•
 Jetpack Compose and Composable Preview
Jetpack Compose and Composable Preview•
 Connecting Android Apps with Server using gRPC
Connecting Android Apps with Server using gRPC•
 New Logcat: 5 Features for Effective Android App Debugging
New Logcat: 5 Features for Effective Android App Debugging•
 Learning Android’s Room Database Made Easy
Learning Android’s Room Database Made Easy•
 WebSockets in Android with OkHttp and ViewModel
WebSockets in Android with OkHttp and ViewModel•
 Higher order functions in Kotlin — Under the hood
Higher order functions in Kotlin — Under the hood•
 Slowing down your code with Coroutines
Slowing down your code with Coroutines•
 Testable Database Repositories in Kotlin
Testable Database Repositories in Kotlin•
 Mastering Exception Handling in Android Development: Tips and Tricks for Ensuring Stability and Security
Mastering Exception Handling in Android Development: Tips and Tricks for Ensuring Stability and Security•
 Reverse Engineering and Analyzing Android Apps: A Step-by-Step Guide
Reverse Engineering and Analyzing Android Apps: A Step-by-Step Guide•
 Jetpack Compose Migration: Best Practices and Strategies
Jetpack Compose Migration: Best Practices and Strategies•
 Making Airbnb’s Android app more accessible
Making Airbnb’s Android app more accessible•
 Optimize or Die. Profiling and Optimization in Jetpack Compose
Optimize or Die. Profiling and Optimization in Jetpack Compose•
 Jetpack Compose for Wear OS
Jetpack Compose for Wear OS•
 5 Beginner Testing Mistakes
5 Beginner Testing Mistakes•
 JWT Authentication and Refresh Token in Android with Retrofit Interceptor & Authenticator
JWT Authentication and Refresh Token in Android with Retrofit Interceptor & Authenticator•
 Behavior Driven Mobile Testing
Behavior Driven Mobile Testing•
 How to Make the Firebase Database SDK Work Better With Kotlin
How to Make the Firebase Database SDK Work Better With Kotlin•
 Jetpack Compose Codelabs: практическое обучение Compose
Jetpack Compose Codelabs: практическое обучение Compose•
 Myne: бесплатные книги для Android с Jetpack Compose
Myne: бесплатные книги для Android с Jetpack Compose Кроссплатформа
Кроссплатформа• Обновление Flutter 3.7: перевод официального релиза и комментарии
• Создание WEBGL приложения Вконтакте на Unity
• Яндекс Карты и React Native. Часть 2. HUD и методы карты + Часть 1. Установка и примитивы
• Подключаем SignalR к Unity
• Будущее платформы на Flutter Forward: новая графика, WebAssembly и RISC-V
• Количество React Native приложений упало вдвое
•
 Build an Animated Soccer Rating Hexagon in Flutter
Build an Animated Soccer Rating Hexagon in Flutter•
 Creating inclusive apps with Flutter: Best practices for accessibility
Creating inclusive apps with Flutter: Best practices for accessibility•
 Practices to Simplify Flutter App Development in 2023
Practices to Simplify Flutter App Development in 2023•
 Playful typography with Flutter
Playful typography with Flutter•
 Flutter — Navigate with GoRouter
Flutter — Navigate with GoRouter•
 What’s new in Flutter 3.7
What’s new in Flutter 3.7•
 Dart — What I Learned From (Re)Learning It
Dart — What I Learned From (Re)Learning It•
 Adapting Wonderous for Landscape
Adapting Wonderous for Landscape•
 1Coin: управление деньгами на Kotlin Multiplatform
1Coin: управление деньгами на Kotlin Multiplatform Разработка
Разработка• Делайте тесты умнее, а не сложнее
• Tenebris: 7 кругов ада инди-разработки
• Гонка за детскими часами и при чём здесь кот?
• 20 советов для разработчиков игр от разработчиков игр
• RuStore: разработка магазина приложений
• Как стать разработчиком мобильных приложений: Профориентация
• Podlodka #304: .NET, часть 2
• У GitHub 100 миллионов активных пользователей
• Самые высокооплачиваемые вакансии января в области разработки приложений
•
 Current UI trends: how to impress users with your designs
Current UI trends: how to impress users with your designs•
 I Removed 500 if Statements With Functional Programming
I Removed 500 if Statements With Functional Programming•
 Free certifications for developers
Free certifications for developers•
 What is the hardest thing in software development?
What is the hardest thing in software development?•
 Coding is Not Enough: The Importance of Investing in Domain Knowledge
Coding is Not Enough: The Importance of Investing in Domain Knowledge•
 Best 6 geometric font for your next clean interface design
Best 6 geometric font for your next clean interface design•
 This is How Snapchat Breaks UI Principles
This is How Snapchat Breaks UI Principles•
 How to reduce the bloated testing process
How to reduce the bloated testing process•
 TARS: A product metric game changer
TARS: A product metric game changer Аналитика, маркетинг и монетизация
Аналитика, маркетинг и монетизация• Шесть причин, почему ваши A/B-тесты не работают
• Иногда геймификация заводит не туда: долой стрики
• Разбор баланса My Mini Mart
• 55 млн установок за 3 года: бизнес на мобильных приложениях в нише фото/видео редакторов
• $4.6 млн: Oneleaf — приложение для гипноза
• Niantic запускает NBA All World
• В VK Рекламе заработал ретаргетинг
• Удаление приложений в App Uninstall Report 2023 от AppsFlyer
• Meta* vs TikTok – где эффективнее продвигать русскоязычное приложение на iOS?
 AI, Устройства, IoT
AI, Устройства, IoT• Как Яндекс научился распознавать, что написано в рукописных архивах
• Starting Electronics: руководство по веб-серверам на Arduino. Часть3. Управление светодиодом с веб-страницы
• Умный дом на минималках
• IIoT-решения для ESG — 3 сценария, в которых беспроводные датчики помогают жить и работать
• UX/UI исследование метавселенных. Часть 1
• Табличная классификация и регрессия Apple ML
• Microsoft сокращает команды виртуальной реальности
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
 
          