В этом выпуске ускорение Swift и первый релиз Android 14, собеседование и тестирование, спрос на мобильных разработчиков, приложения для здоровья и фитнеса, прелести legacy-кода и многое другое.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!
![](https://habrastorage.org/r/w780q1/webt/ip/qi/ub/ipqiuby67mnqzh86hu-psenci64.jpeg)
iOS
• Элемент выбора эмодзи (aka EmojiPicker) для iOS как в MacOS
• Как ускорить Swift, упорядочив соответствия
• Swift-код в качестве пользовательских команд LLDB
• Google готовит новый браузер для iOS на собственном движке
•
Styling Components in SwiftUI
•
A path of pain with URLCache eviction and subclassing
•
Observing the content offset of a SwiftUI ScrollView
•
How to cancel a background task in Swift
•
From Zero to App Store With ChatGPT
•
The Adapter Design Pattern in Swift
•
A comprehensive guide to Coordinator Pattern in Swift
•
How I Built an Emoji Picker Library for iOS
•
How to Add OAuth in iOS in Half an Hour
•
Understanding Automatic Reference Counting (ARC) in iOS Development
•
How Abstractions Help Us Solve Tight Coupling
•
Apple Fired Me as a Software Engineer
•
A BeginnerТs Guide to Styling Components in SwiftUI
•
Mastering charts in SwiftUI. Interactions.
•
Automating iOS releases using GitHub Actions
•
Our 1 Mistake in iOS App Modularization That Slows our Xcode Build process
•
SSL Pinning in iOS
•
I Stopped Using Third-Party Frameworks For My Swift Projects. HereТs What Happened
•
Conquer Data Races with Swift Actors
•
How to write README file for the iOS project
•
Unleash Your Creativity with Custom Shapes in SwiftUI
•
Animated Tab Bar: панель вкладок на SwiftUI
•
Custom Slider Control: слайдер для iOS
Android
• Как адаптировать Android-приложение под Huawei
• Как в Dropbox сделали загрузку с камеры в Android быстрее и надежнее
• Какие параметры компьютера влияют на скорость сборки Gradle проекта
• Автоматизации и инфраструктура вместо рутины и бойлерплейта
• Собеседование Junior Android-разработчика на оффер в реальном времени
• Как стать разработчиком в Южной Корее — инсайдерский взгляд
• Как защитить ваш Android APK и внедрить меры безопасности
• Вышла Developer Preview версия Android 14
• Google унифицирует вход в приложения с Credential Manager API
• Android и предустановленное ПО на Galaxy S23 занимает до 60 Гб
•
Introducing the Kotlin Playground
•
Fundamentals of Compose layouts and modifiers
•
Leveraging the Snapshot Mutation Policies of Jetpack Compose
•
Composing the desktop
•
Scheduling notifications in Android
•
Provider Pattern in Jetpack Compose
•
Building a Video Chat App: WebRTC on Android
•
Speed Up Your Jetpack Compose Development With the Compose Helper IDE plugin
•
Pattern Matching in Kotlin is Awesome
•
Introduction to Class Delegation
•
The K2 Compiler is going stable in Kotlin 2.0
•
Kotlin Flow for Android Development Crash Course
•
How to build a custom Facebook login button using Firebase Auth in Jetpack Compose
•
Coroutines cancellation
•
Branch by Abstraction in Android project
•
Compose phases
•
Advanced forms in Android with Compose Form
•
Kotlin Arrow KT Monad: A BeginnerТs Guide
•
Flashlight: измерение производительности приложений на Android
•
Tracker Go: отслеживание бега
•
Dashlane Android Apps: открытые менеджеры паролей
Кроссплатформа
• Flutter Dev Podcast #39: Flutter и PWA
• Использование шейдеров во Flutter. Часть 2
• Nanc — backend-agnostic CMS с Flutterлюшками
• Fuchsia и Area 120 пострадали от увольнений в Google
•
Animated Icons: The Missing Piece to Your Bottom Nav in Flutter & Rive
•
Top 7 best practices in Flutter
•
Supporting Multiple Modals in React Native: A New Approach
•
Flutter: Using Magic Container
•
How I created an open-source BeReal clone with Flutter
•
Flutter Shaders: An Introduction
•
Control your Flutter app on the fly with Firebase Remote Config
Разработка
• Пять примечательных функций Postman, которые мы используем в тестировании банковских систем
• Podlodka #306: observability и логирование
• GitHub уволит 10% сотрудников
• Спрос на iOS и Android разработчиков в 2022 упал на 20%
• $23 млн в Серии А: Magic — ИИ-платформа написания кода
• Пренебрегаете Legacy кодом? Зря, потенциально это настоящая золотая жила для обучения
•
The ultimate guide†to proper use of animation in UX
•
The Value of Code Versus The Value Of A Product
•
Optimistic UI and How It Makes the Web Feel Faster
•
2023: The Future Of Ui/Ux Design (and How You Can Prepare)
•
All You Need Is Love-able Products
•
Godot 4: Getting Started
•
Accessibility Handoff: a guide for product designers
Аналитика, маркетинг и монетизация
• Как в AppMetrica отследить рекламные переходы с сайта в приложение
• Myst вышел на iOS
• Приложения для здоровья и фитнеса в Европе — отчет Sensor Tower
• RuStore завершил бета-тестирование
• Домашняя автоматизаци растет — загрузки Home Assistant выросли на 122% за год
• Почему EA закрыла Apex Legends Mobile
AI, Устройства, IoT
• Поднимаем зомби: перехват контроля над мёртвым IoT-производителем
• Как я занял 13 место из 3500+ участников и стал Kaggle Competition Master
• Dusha: самый большой открытый датасет для распознавания эмоций в устной речи на русском языке
• Предсказание оттока пользователей
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!
![](https://habrastorage.org/webt/ip/qi/ub/ipqiuby67mnqzh86hu-psenci64.jpeg)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Элемент выбора эмодзи (aka EmojiPicker) для iOS как в MacOS
• Как ускорить Swift, упорядочив соответствия
• Swift-код в качестве пользовательских команд LLDB
• Google готовит новый браузер для iOS на собственном движке
•
![](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-приложение под Huawei
• Как в Dropbox сделали загрузку с камеры в Android быстрее и надежнее
• Какие параметры компьютера влияют на скорость сборки Gradle проекта
• Автоматизации и инфраструктура вместо рутины и бойлерплейта
• Собеседование Junior Android-разработчика на оффер в реальном времени
• Как стать разработчиком в Южной Корее — инсайдерский взгляд
• Как защитить ваш Android APK и внедрить меры безопасности
• Вышла Developer Preview версия Android 14
• Google унифицирует вход в приложения с Credential Manager API
• Android и предустановленное ПО на Galaxy S23 занимает до 60 Гб
•
![](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/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Flutter Dev Podcast #39: Flutter и PWA
• Использование шейдеров во Flutter. Часть 2
• Nanc — backend-agnostic CMS с Flutterлюшками
• Fuchsia и Area 120 пострадали от увольнений в Google
•
![](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/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Пять примечательных функций Postman, которые мы используем в тестировании банковских систем
• Podlodka #306: observability и логирование
• GitHub уволит 10% сотрудников
• Спрос на iOS и Android разработчиков в 2022 упал на 20%
• $23 млн в Серии А: Magic — ИИ-платформа написания кода
• Пренебрегаете Legacy кодом? Зря, потенциально это настоящая золотая жила для обучения
•
![](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)
• Как в AppMetrica отследить рекламные переходы с сайта в приложение
• Myst вышел на iOS
• Приложения для здоровья и фитнеса в Европе — отчет Sensor Tower
• RuStore завершил бета-тестирование
• Домашняя автоматизаци растет — загрузки Home Assistant выросли на 122% за год
• Почему EA закрыла Apex Legends Mobile
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Поднимаем зомби: перехват контроля над мёртвым IoT-производителем
• Как я занял 13 место из 3500+ участников и стал Kaggle Competition Master
• Dusha: самый большой открытый датасет для распознавания эмоций в устной речи на русском языке
• Предсказание оттока пользователей
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.