Наш новый дайджест за прошедшую неделю с обсуждением уязвимости в iOS, тенями в Android и множеством других материалов.
![](https://habrastorage.org/webt/zp/ze/lo/zpzelofiz0zeoj3e5xp8i3n8ao4.png)
У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
iOS
• Как графический формат прошлого века привёл к zero-click exploit в iOS
• 20 лет Xcode год за годом
• Controller, но не Massive: реализуем список карточек для iOS 13+ и 11+ с учетом практик чистого кода
• Как завести XCRemoteCache, или Кэши из топора
• Есть тема: внедрения цветовых тем в iOS-приложение
• Ускоряем прохождение iOS UI-тестов. Часть 2. Распараллеливание тестов
• Apple готовит новые MacBook и iMac
•
Нативный мониторинг сети в Swift
•
Как разработчики ошибаются в MVVM в SwiftUI: от модели представления к состоянию
•
Как создать универсальные статические iOS-библиотеки с помощью XCFramework
•
Взгляд на интервью с iOS-разработчиками
•
Пишем тестируемый код со SwiftUI
•
3 сюрприза при использовании Markdown в SwiftUI
•
Лучший туториал для начала изучения iOS-разработки
•
SwiftUI — сложная навигация стала проще с UIPilot
•
Реализация iOS Collection View с эффективным механизмом рендеринга
•
UIOnboarding: экраны онбординга
Android
• Не стоит бояться теней
• Google предлагает дизайн SDK Runtime для «Песочницы конфиденциальности Android»
• Код Доступа Termux
• Топ 11 вопросов работодателю на Android-собеседовании
• «Песочница конфиденциальности» идет на Android: что нужно знать разработчикам и рекламодателям
• Material You: раскладываем по полочкам обновление дизайн-системы Material
• Android Studio. Kotlin. Кастомный навигатор нижнего меню. Keep state navigator
• Compose for Widgets & Wearables
• Как стать модным Android-разработчиком в 2022 году
• Мое надуманное решение «Как создать RecyclerView Adapter»
•
MVVM модульное тестирование в Android
•
Преобразования байт-кода: плагин Android Gradle
•
Как писать код Kotlin более читаемым и чистым: лучшие практики
•
Android 13 и алгоритмы рендеринга текста
•
Настраиваем Android CI с помощью GitHub Actions
•
Ручная установка разделенных файлов APK (App Bundles) через ADB
•
Анимация App Bar (как в Facebook) с использованием NestedScrollConnection из Jetpack Compose
•
Введение в Kotlin Flow
•
Навигация в Jetpack Compose с использованием состояния ViewModel
•
SegmentedProgressBar: сегментированный прогресс
•
Intro Showcase View: подсветка функций приложения
•
Flippable: переворачивающая карточка
Разработка
• Как создавать инди-хиты и обходить грабли. Интервью с авторами книги «Хочу в геймдев!»
• Что скрывают популярные курсы: насколько полезно онлайн образование
• Создаём единую инфраструктуру для параллельной разработки мобильных игр
• Как мы построили мобильный CI/CD в Github Action с нуля
• Когнитивистика в гейм-дизайне: как сделать классную игру при помощи науки
• $100 млн: Hasura — GraphQL API для баз данных
• Как написать «Пятнашки» на Flutter
• Unity Http Server или как превратить телефон пользователя в геймпад
• «Приложения для засыпания» и акустические стимуляторы мозга: почему они не работают и как сделать чтобы работали
• Podlodka #256: платформенные продукты
• Checks от Area 120 проверяет конфиденциальность приложений
• Разработчики Linux быстрее всего исправляют ошибки в ПО
• Руководство по трендам UI-дизайна на 2022 год
• «У 99% команд старый код и коробочные решения, нет бюджетов и DevOps, а мы слушаем инфлюенсеров из Facebook»
• Как рассчитать идеальную область клика (touch target) для любого устройства
•
Проверка производительности в CI/CD
•
5 советов по созданию дизайна мобильного приложения
•
Один год последовательного leetcod-инга каждый день
•
9 главных UX-трендов, на которые стоит обратить внимание в 2022 году
•
Чему я научился за год, создавая SaaS
•
Почему Flutter — самый популярный кроссплатформенный SDK
•
Как Discord поддерживает до 5 миллионов одновременных пользователей
•
Полное руководство по управлению жизненным циклом клиента
•
11 вещей, которые нужно помнить в вашем следующем Flutter-проекте
•
5 потрясающих законов UX-дизайна
•
OpenHaystack: платформа для создания собственных AirTag
Аналитика, маркетинг и монетизация
• Расходы в Топ-100 приложений с подпиской выросли на 41% до $18.3 млрд
• Кейс Додо Пицца: как снизить показатель CPO на 51%, а CR – увеличить на 15%
• Самые зарабатывающие приложения января в США
• Обзор самых полезных приложений для незрячих людей
• Meta создаст универсальный переводчик
AI, Устройства, IoT
• Kincony KC868-A8: старший брат из Ханчжоу. Часть 2 + Часть 1
•
Лучшие проекты с открытым исходным кодом для изучения науки о данных
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/zp/ze/lo/zpzelofiz0zeoj3e5xp8i3n8ao4.png)
У нас есть Telegram-канал Mobile Insights, где подборки статей и новостей выходят каждый день, а так же AppFiles с библиотеками и самыми интересными статьями о мобильной разработке!
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Как графический формат прошлого века привёл к zero-click exploit в iOS
• 20 лет Xcode год за годом
• Controller, но не Massive: реализуем список карточек для iOS 13+ и 11+ с учетом практик чистого кода
• Как завести XCRemoteCache, или Кэши из топора
• Есть тема: внедрения цветовых тем в iOS-приложение
• Ускоряем прохождение iOS UI-тестов. Часть 2. Распараллеливание тестов
• Apple готовит новые MacBook и iMac
•
![](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/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Не стоит бояться теней
• Google предлагает дизайн SDK Runtime для «Песочницы конфиденциальности Android»
• Код Доступа Termux
• Топ 11 вопросов работодателю на Android-собеседовании
• «Песочница конфиденциальности» идет на Android: что нужно знать разработчикам и рекламодателям
• Material You: раскладываем по полочкам обновление дизайн-системы Material
• Android Studio. Kotlin. Кастомный навигатор нижнего меню. Keep state navigator
• Compose for Widgets & Wearables
• Как стать модным Android-разработчиком в 2022 году
• Мое надуманное решение «Как создать RecyclerView Adapter»
•
![](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/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Как создавать инди-хиты и обходить грабли. Интервью с авторами книги «Хочу в геймдев!»
• Что скрывают популярные курсы: насколько полезно онлайн образование
• Создаём единую инфраструктуру для параллельной разработки мобильных игр
• Как мы построили мобильный CI/CD в Github Action с нуля
• Когнитивистика в гейм-дизайне: как сделать классную игру при помощи науки
• $100 млн: Hasura — GraphQL API для баз данных
• Как написать «Пятнашки» на Flutter
• Unity Http Server или как превратить телефон пользователя в геймпад
• «Приложения для засыпания» и акустические стимуляторы мозга: почему они не работают и как сделать чтобы работали
• Podlodka #256: платформенные продукты
• Checks от Area 120 проверяет конфиденциальность приложений
• Разработчики Linux быстрее всего исправляют ошибки в ПО
• Руководство по трендам UI-дизайна на 2022 год
• «У 99% команд старый код и коробочные решения, нет бюджетов и DevOps, а мы слушаем инфлюенсеров из Facebook»
• Как рассчитать идеальную область клика (touch target) для любого устройства
•
![](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/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Расходы в Топ-100 приложений с подпиской выросли на 41% до $18.3 млрд
• Кейс Додо Пицца: как снизить показатель CPO на 51%, а CR – увеличить на 15%
• Самые зарабатывающие приложения января в США
• Обзор самых полезных приложений для незрячих людей
• Meta создаст универсальный переводчик
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Kincony KC868-A8: старший брат из Ханчжоу. Часть 2 + Часть 1
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.