В нашем новом дайджесте калькулятор на Swift и задачи для разработки, первые игры и переоцененные принципы, доходы рынка приложений, последние экраны блокировки и многое другое. Подключайтесь!
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
![](https://habrastorage.org/r/w780q1/webt/dg/m7/rk/dgm7rkujjarb72gradqt6cryvo0.jpeg)
iOS
• Портирование Graphing Calculator с C++ на Swift
• Telegram на iOS: cборка из исходников и запуск на эмуляторе (не используя платную учётку Apple Developer Program)
• Переход на SwiftUI: внедряем TabView взамен UITabBarController
• Async/await в Swift 5.5: асинхронность «здорового человека»
• Apple представила «экстремальный» уровень безопасности для iOS, iPadOS и macOS
•
5 Ugly Sides of iOS App Development You Didn’t Know About
•
Stop using MVVM with SwiftUI
•
iOS Architecture — The VaMPiRe
•
Build a 3D Pie Chart Using SceneKit and SwiftUI
•
How to Achieve Dynamic Dispatch Using Generic Protocols in Swift 5.7
•
Create Custom Navigation Stack using SwiftUI 4.0
•
Meet Swift Regex (WWDC 2022)
•
Decoding Dynamic JSON with Swift Codable
•
The Trade-offs of Using Mirror API to do Code Reflection in Swift
•
What’s New in Xcode 14 Previews
•
How to Achieve Dynamic Dispatch Using Generic Protocols in Swift 5.7
•
For all the indie iOS devs focused on SwiftUI
•
Implement SwiftUI Navigation With NavigationStack and NavigationSplitView
•
How to Write Unit Tests for Combine’s Debounce Method in iOS
•
How iOS 16 makes your app launch faster
•
Decoding Dynamic JSON with Swift Codable
•
X-SwiftFormat: форматирование кода
•
Multiliner: длинные строки в Xcode
Android
• Возможна ли работа с Bluetooth в Android без местоположения?
• Google ослабит политики и выплатит разработчикам $90 млн
• История создания игры в одиночку
• Compose End to End тестирование. Основы
• Управление встроенным обновлением в приложении для Android
• ФАС обязала Google разрешить сторонние способы оплаты в Google Play
•
No emulator needed for screenshot tests of Compose @Previews on CI
•
Animation in Jetpack Compose
•
Parallel processing with state management in Lazy Column — Jetpack Compose
•
Collapsible Extended Floating Action Buttons with a LazyColumn in Jetpack Compose
•
Migrating to the new coroutines 1.6 test APIs
•
Variable Rate Shading on Adreno GPUs
•
Extraordinary Animations with Paths in Android
•
Jetpack Compose Stability Explained
•
Customizing AnimatedContent in Jetpack Compose
•
Control In-app update in Android
•
Advance Architecture for Android Project
•
Appyx — Application mechanics for Android apps, built on top of Jetpack Compose
•
Performance Considerations for Memory Leaks: An Android Cookbook
•
Setup your CICD Pipeline with Fastlane and Github actions for Android apps
•
Extraordinary Animations using Trigonometry and Coroutines (Radar Animation)
•
A better way to pass Data from API to Composable
•
Extension Functions You Need to Know in Android
•
The God-level Kotlin Function
•
How OkCredit Android App boosted Network Performance by 30%
•
Orbitary: анимации Jetpack Compose
•
Permission Flow for Android: состояние разрешений
Кроссплатформа
• Создал свою первую в жизни игру
• Flutter для автомобиля. А почему бы и нет?
• Язык описания квестов или как сделать квестовую систему на Unity
•
Flutter 3: What are enums and what is new about it
•
What’s New in React Native 0.69 — How to Upgrade and Why it Matters
•
Flutter 3: How to extend ThemeData
•
How to write Flutter code efficiently
•
Deep Linking in React Native
•
Flutter battery app made with Klutter
•
Flutter Rendering Widgets Using JSON Data
•
How to write Flutter code efficiently
Разработка
• Почему DRY — самый переоцененный принцип программирования
• Как сделать удобную дизайн-систему. Цвета. Часть 1
• Ваш продукт без UX текстов: потрачено
• Как правильно поставить задачу для разработки
• Зачем геймификация логистам?
• Дизайн приложений: примеры для вдохновения #80
• Podlodka #275: распознавание музыки
• Публичное собеседование на позицию техлида
• Средние зарплаты разработчиков 2022 в разных странах
• $5.2 млн в посевном раунде: Baserow — open source no-code базы данных
• $5.5 млн: Echo3D — CMS и CDN для 3D контента
• Яндекс Практикум запускает курсы по мобильной разработке
• Самые высокооплачиваемые вакансии июня в разработке приложений
• 43% российских IT-шников сегодня работают удаленно
• 7 Законов UX, которые вы, скорее всего, воспринимаете не правильно
• Актуальные юридические новости для IT-компаний за июнь
•
I Reject 95% of Developers in an Interview: Here’s How to Become One of the Top 5%
•
How to Write Less Code for More Money
•
7 Productivity Tools For Software Development Teams
•
GitHub Actions: Beyond CI/CD
•
The LeetCode Myth: You Don’t Need to Solve +1000 Questions to Work at Google, Microsoft, or Amazon
•
10 most popular design systems to learn from in 2022 for UX Designers
•
Introverts, You Need 3 Traits to Become a Great Software Architect
•
Top 8 Best Open Source Development Tools
Аналитика, маркетинг и монетизация
• Расходы на приложения выросли на 1% и достигли $65 млрд
• Приложения и рекламодатели на экране блокировки: последний бастион
• Кейс Смекалки и MediaNation: настройка аналитики и увеличение эффективность маркетинговых вложений
• Нативный маркетинговый инструмент App Store и Google Play или Как рассказать об апдейте прямо на странице приложения
• Европа приняла Закон о цифровых рынках, регулирующий деятельность платформ
• Маркетологи в мобайле: Руслан Осин (экспертные продажи VK)
• У Clubhouse худший месяц с момента выпуска
• Поиск идеального поиска: как устроены поисковые эксперименты на Юле
• Софтланч продукта с использованием метрик минимальной жизнеспособности
• Мясная аналитика на СlickHouse
• Вышел новый The Mobile eCPM Report от Appodeal
• $19 млн в посевном раунде: Voyantis — предсказание LTV на основе ИИ
AI, Устройства, IoT
• Papers, please! Как устроены сервисы по распознаванию лиц для идентификации клиента и проверки документов
• 3 бесплатных курса по машинному обучению, которые стоит пройти прямо сейчас
• Inverse Scaling Prize: поиск задач, на которых модели не масштабируются
• VK открыла набор на бесплатное обучение в Академию больших данных MADE
• Поставки гарнитур виртуальной реальности в 1 квартале выросли на 241.6%
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.
![](https://habrastorage.org/webt/dg/m7/rk/dgm7rkujjarb72gradqt6cryvo0.jpeg)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Портирование Graphing Calculator с C++ на Swift
• Telegram на iOS: cборка из исходников и запуск на эмуляторе (не используя платную учётку Apple Developer Program)
• Переход на SwiftUI: внедряем TabView взамен UITabBarController
• Async/await в Swift 5.5: асинхронность «здорового человека»
• Apple представила «экстремальный» уровень безопасности для iOS, iPadOS и macOS
•
![](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)
• Возможна ли работа с Bluetooth в Android без местоположения?
• Google ослабит политики и выплатит разработчикам $90 млн
• История создания игры в одиночку
• Compose End to End тестирование. Основы
• Управление встроенным обновлением в приложении для Android
• ФАС обязала Google разрешить сторонние способы оплаты в Google Play
•
![](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/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Создал свою первую в жизни игру
• Flutter для автомобиля. А почему бы и нет?
• Язык описания квестов или как сделать квестовую систему на Unity
•
![](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/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Почему DRY — самый переоцененный принцип программирования
• Как сделать удобную дизайн-систему. Цвета. Часть 1
• Ваш продукт без UX текстов: потрачено
• Как правильно поставить задачу для разработки
• Зачем геймификация логистам?
• Дизайн приложений: примеры для вдохновения #80
• Podlodka #275: распознавание музыки
• Публичное собеседование на позицию техлида
• Средние зарплаты разработчиков 2022 в разных странах
• $5.2 млн в посевном раунде: Baserow — open source no-code базы данных
• $5.5 млн: Echo3D — CMS и CDN для 3D контента
• Яндекс Практикум запускает курсы по мобильной разработке
• Самые высокооплачиваемые вакансии июня в разработке приложений
• 43% российских IT-шников сегодня работают удаленно
• 7 Законов UX, которые вы, скорее всего, воспринимаете не правильно
• Актуальные юридические новости для IT-компаний за июнь
•
![](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)
• Расходы на приложения выросли на 1% и достигли $65 млрд
• Приложения и рекламодатели на экране блокировки: последний бастион
• Кейс Смекалки и MediaNation: настройка аналитики и увеличение эффективность маркетинговых вложений
• Нативный маркетинговый инструмент App Store и Google Play или Как рассказать об апдейте прямо на странице приложения
• Европа приняла Закон о цифровых рынках, регулирующий деятельность платформ
• Маркетологи в мобайле: Руслан Осин (экспертные продажи VK)
• У Clubhouse худший месяц с момента выпуска
• Поиск идеального поиска: как устроены поисковые эксперименты на Юле
• Софтланч продукта с использованием метрик минимальной жизнеспособности
• Мясная аналитика на СlickHouse
• Вышел новый The Mobile eCPM Report от Appodeal
• $19 млн в посевном раунде: Voyantis — предсказание LTV на основе ИИ
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Papers, please! Как устроены сервисы по распознаванию лиц для идентификации клиента и проверки документов
• 3 бесплатных курса по машинному обучению, которые стоит пройти прямо сейчас
• Inverse Scaling Prize: поиск задач, на которых модели не масштабируются
• VK открыла набор на бесплатное обучение в Академию больших данных MADE
• Поставки гарнитур виртуальной реальности в 1 квартале выросли на 241.6%
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.