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