В нашем новом еженедельном дайджесте путь от игрушек на Objective-C к реальным проектам на Swift, опыт масштабирования Airbnb, автоматизация без посредников, квадратный колобок, ведение семейных финансов, главные медиаисточники мобильной рекламы и многое другое!
![](https://habrastorage.org/webt/zp/nl/9i/zpnl9iptghvz9ehbrxtzomvt0sy.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
• Как я прошел путь от игрушек на Objective-C к реальным проектам на Swift в большой компании
• Повышения производительности в крупномасштабном iOS-приложении: опыт Airbnb
• Paddle предлагает свою систему оплаты IAP в iOS
• В аналитике App Store Connect появились новые метрики
• Удаление учетных записей в iOS-приложениях станет обязательным с 2022 года
• Apple упрощает отправку сообщений о мошенничестве в App Store
• Apple выпустит новые MacBook Pro в этом году
•
Как приложения для iPad адаптируются к новому iPad Mini с диагональю 8.3 дюйма
•
Туториал по Multipeer Connectivity
•
Как автоматизировать управление ассетами в iOS-приложениях
•
Работа с Picker в SwiftUI
•
Анимация SwiftUI Canvas в iOS 15
•
Как Sendable может предотвратить гонку данных в iOS
•
GitHub Contribution Graphs for iOS: виджет GitHub для iOS
•
Swift Style Guide: ясность, последовательность и краткость Swift
Android
• Дублирование кода и неконсистентность дизайна: ищем решение
• C#: Автоматизация Android без посредников (adb)
• Локализация Android-приложений: о чем умалчивает документация
• Запись звука и отображение громкости на Android
• Делаем на Android анимацию как в Doom. Приложение-огонь
• Глобальный ренейминг в Android-проекте
• Функциональный подход в Jetpack Compose: каррирование функций
• Kotlin Symbol Processing. Работаем с аннотациями по-новому
• Android, Kotlin Flow во ViewModel — все сложно
• Иммитация игры Just Pop It
• Apollo 3.0 для работы с GraphQL в многомодульном Android приложении
• Android 12 опубликован в AOSP
• Вопросы и ответы по Android Game Development Kit
•
Наполненная архитектура: рефакторинг Headspace для масштабирования
•
Как использовать Android Activity Result API для выбора и съемки изображений
•
Вопросы собеседования для Android-разработчика
•
Синхронизируем RecyclerView с TabLayout
•
Уместите ваше Android-приложение на любом экране
•
Понимаем операторы as T? и as? T в Kotlin
•
Адресное ТВ
•
Анимация списка в Compose: перетащите, чтобы изменить порядок
•
7 вещей, которые вам следует узнать перед использованием Compose
•
Шпаргалка по Kotlin-интервью
•
Воспроизведение видео в LazyColumn в Jetpack Compose
•
Как обои Android могут угрожать вашей конфиденциальности
•
Android Runtime Permissions с корутинами
•
SSComposeCookBook: поваренная книга Compose
•
SplitButton: кнопка-меню для Android
Разработка
• Квадратный колобок: еще раз про UX в ритейле
• Написать книгу за год — мечта или реальность?
• Как я портировал игру с VisualBasic 6 на С++, сделав её кросс-платформенной
• Ведение семейных финансов на C# и Xamarin. Личный опыт
• Разработка Unity плагинов для iOS и Android
• Упрощённые рейкасты в Unity
• Переход на Swift UI и React Native: как за 3 месяца запустить новое приложение, быстро набравшее популярность
• Советы по оптимизации производительности растрового потока
• Нижняя панель навигации Flutter с вложенной маршрутизацией (автомаршрутизация)
• Как мы обновляли мобильное приложение для официантов: трудности перевода стека KMM + UI на Flutter из теста в продакшн
• PWA: управление service-worker'ом
• Podlodka #236: ВУЗы и IT-компании
• Дизайн приложений: примеры для вдохновения #59
• Стартует седьмой «Технокубок», олимпиада по программированию для школьников
• Падение Facebook увеличило производительность разработчиков на 32%
• В графовые базы данных Memgraph инвестировали $9.34 млн
• Environments-as-a-service платформа ReleaseHub получила $20 млн
• Книги Infrastructure and Ops в Humble Bundle
• 5 ошибок разработчика, которые я сделал за 15 лет карьеры
• CodeSee визуализирует базу кода
• Учимся проектировать Bottom Sheets на примерах Vimeo, Dropbox, Youtube и т.д.
• 3 рекомендации по проектированию пустых состояний в сложных приложениях
• Современный дизайн утратил душу
•
Как сделать свою ферму в Unity
•
4 языка программирования, которые я собираюсь освоить в 2022 году, и почему вам тоже стоит это сделать
•
5 советов при работе с мобильным приложением для миллионов пользователей
•
Как развить свои инженерную креативность
•
Rust и кроссплатформенная мобильная разработка
•
Полное руководство разработчика программного обеспечения по качеству кода
•
Инструменты о которых вы не знали, но которые нужны вам для разработки
•
Полюбите проблему, а не решение
•
LongPressDraggable во Flutter
•
Как повысить производительность React Native приложения
•
Orbit Multiplatform: MVI фреймворк для Kotlin
Аналитика, маркетинг и монетизация
• Анализ такой анализ. Часть 1
• Предустановка приложений в России не дала существенного роста
• Twitter продает MoPub компании AppLovin
• AppsFlyer: расходы потребителей в приложениях для ритейла в России выросли на 227%
• Как за месяц получить 80 тыс. конверсий в установку игры с помощью видеорекламы: кейс AdQuantum
• Ведущие медиаисточники мобильной рекламы в интерактивном отчете Partner Benchmark от Adjust
• Apple заработала на играх больше, чем Sony, Nintendo, Microsoft и Activision вместе взятые
• ProductWind: инфлюэнсеры как сервис
AI, Устройства, IoT
• Few-shot-learning и другие страшные слова в классификации текстов
• Мы опубликовали модель, расставляющую знаки препинания и заглавные буквы в тексте на четырех языках
• Мигаем светодиодом по протоколу Zigbee или модуль управления Триколор GS SMH-ZW-I1 с прошивкой PTVO
• WIZnet представила новинку WIZnet Ethernet HAT для Raspberry Pi Pico
• OTA обновление устройств с Linux
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/zp/nl/9i/zpnl9iptghvz9ehbrxtzomvt0sy.jpeg)
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](https://habrastorage.org/webt/5e/k7/bf/5ek7bfhjzilma-pbharuioaa7lw.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Как я прошел путь от игрушек на Objective-C к реальным проектам на Swift в большой компании
• Повышения производительности в крупномасштабном iOS-приложении: опыт Airbnb
• Paddle предлагает свою систему оплаты IAP в iOS
• В аналитике App Store Connect появились новые метрики
• Удаление учетных записей в iOS-приложениях станет обязательным с 2022 года
• Apple упрощает отправку сообщений о мошенничестве в App Store
• Apple выпустит новые MacBook Pro в этом году
•
![](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)
• Дублирование кода и неконсистентность дизайна: ищем решение
• C#: Автоматизация Android без посредников (adb)
• Локализация Android-приложений: о чем умалчивает документация
• Запись звука и отображение громкости на Android
• Делаем на Android анимацию как в Doom. Приложение-огонь
• Глобальный ренейминг в Android-проекте
• Функциональный подход в Jetpack Compose: каррирование функций
• Kotlin Symbol Processing. Работаем с аннотациями по-новому
• Android, Kotlin Flow во ViewModel — все сложно
• Иммитация игры Just Pop It
• Apollo 3.0 для работы с GraphQL в многомодульном Android приложении
• Android 12 опубликован в AOSP
• Вопросы и ответы по Android Game Development Kit
•
![](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/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Квадратный колобок: еще раз про UX в ритейле
• Написать книгу за год — мечта или реальность?
• Как я портировал игру с VisualBasic 6 на С++, сделав её кросс-платформенной
• Ведение семейных финансов на C# и Xamarin. Личный опыт
• Разработка Unity плагинов для iOS и Android
• Упрощённые рейкасты в Unity
• Переход на Swift UI и React Native: как за 3 месяца запустить новое приложение, быстро набравшее популярность
• Советы по оптимизации производительности растрового потока
• Нижняя панель навигации Flutter с вложенной маршрутизацией (автомаршрутизация)
• Как мы обновляли мобильное приложение для официантов: трудности перевода стека KMM + UI на Flutter из теста в продакшн
• PWA: управление service-worker'ом
• Podlodka #236: ВУЗы и IT-компании
• Дизайн приложений: примеры для вдохновения #59
• Стартует седьмой «Технокубок», олимпиада по программированию для школьников
• Падение Facebook увеличило производительность разработчиков на 32%
• В графовые базы данных Memgraph инвестировали $9.34 млн
• Environments-as-a-service платформа ReleaseHub получила $20 млн
• Книги Infrastructure and Ops в Humble Bundle
• 5 ошибок разработчика, которые я сделал за 15 лет карьеры
• CodeSee визуализирует базу кода
• Учимся проектировать Bottom Sheets на примерах Vimeo, Dropbox, Youtube и т.д.
• 3 рекомендации по проектированию пустых состояний в сложных приложениях
• Современный дизайн утратил душу
•
![](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)
• Анализ такой анализ. Часть 1
• Предустановка приложений в России не дала существенного роста
• Twitter продает MoPub компании AppLovin
• AppsFlyer: расходы потребителей в приложениях для ритейла в России выросли на 227%
• Как за месяц получить 80 тыс. конверсий в установку игры с помощью видеорекламы: кейс AdQuantum
• Ведущие медиаисточники мобильной рекламы в интерактивном отчете Partner Benchmark от Adjust
• Apple заработала на играх больше, чем Sony, Nintendo, Microsoft и Activision вместе взятые
• ProductWind: инфлюэнсеры как сервис
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Few-shot-learning и другие страшные слова в классификации текстов
• Мы опубликовали модель, расставляющую знаки препинания и заглавные буквы в тексте на четырех языках
• Мигаем светодиодом по протоколу Zigbee или модуль управления Триколор GS SMH-ZW-I1 с прошивкой PTVO
• WIZnet представила новинку WIZnet Ethernet HAT для Raspberry Pi Pico
• OTA обновление устройств с Linux
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
antirek
может вы видели или знаете html-ui фреймворк или компоненты в каком либо фреймворке на react или vue для создания чатов: сообщений, картинок с превью, проигрывания в сообщения видео и аудиозаписей?
например, использую quasar (фреймворкк на vue, quasar собирает мобильное приложение под android/ios), там есть простейшее chat message компонент. для текстового обмена сообщениями - вполне, но хочется мультимедиа. и поддержку в компоненте отображения reply сообщения