- PVSM.RU - https://www.pvsm.ru -
В этом дайджесте — обновления Android, собственный движок для игр, симуляция волос и создание VHS-эффектов, No-Code платформы машинного обучения и доходы приложений. Приятного чтения!

У меня был простой рендер спрайтов и текста, простая система обработки ввода, из которой можно было получать информацию о мышке и нажатых клавишах, и всякие утилиты-обвязки вспомогательных систем движка. В общем какую-то простую картинку вывести я мог. В последствии это все очень сильно изменилось и поросло архитектурными хитростями.
Начиная с Android 8 (у некоторых вендоров с 7.1) в системе появился новый механизм накатки OTA-обновлений, т. н. Seamless A/B OTA Updates — бесшовные обновления. В этом посте я опишу общие принципы его работы, рассмотрю механизм с точки зрения разработчика, а также проведу сравнение со старым (будем его называть recovery-based) подходом применения обновлений.
Этот дайджест доступен в виде еженедельной рассылки [3]. А ежедневно новости мы рассылаем в
Telegram-канале [4].
iOS
• (+22) Navigation bar и анимация перехода [5]
• Apple запустила генератор коротких ссылок и QR-кодов для App Store [6]
• Apple отказалась от 30% налога ради малого бизнеса [7]
•
Использование AVAudioEngine для записи, сжатия и потоковой передачи звука на iOS [8]
•
SKOverlay в SwiftUI [9]
•
Core Data и SwiftUI 2.0 [10]
•
Используем кастомные Debug Descriptions, чтобы упростить отладку Swift [11]
•
10 запутанных, но важных функций Swift [12]
•
2 способа исполнения MVVM iOS [13]
•
SwiftUI и Firestore: обновление данных [14]
•
Как сделать раздвигающийся TableView с помощью Swift [15]
•
Instructions: пояснения и обучение работе с продуктом [16]
•
Tiktok Clone: короткие видео на Swift и Firebase [17]
•
Twitter Text: парсинг текста [18]
Android
• (+8) Как разработать аналог Zoom для ТВ-приставок на RDK и Linux. Разбираемся с фреймворком GStreamer [19]
• (+7) «Холодный» запуск Android-приложения [20]
• (+6) Еще раз про многомодульность Android-приложений [21]
• (+6) Как устроен Push Kit от Huawei [22]
• (+4) Как спроектировать пошаговое заполнение данных в мобильном приложении [23]
• (+4) Google Play In-App Review API: пошаговое руководство по внедрению [24]
• (+1) Голос в мобильном приложении: учимся вызывать экраны и заполнять формы без рук [25]
• Google упростит работу со сторонними магазинами в Android 12 [26]
• Google Play будет тщательнее следить за оплатой покупок в приложениях [27]
•
Беспроводная Android-разработка с локальным устройством [28]
•
Асинхронные сообщения с Kotlin и RabbitMQ [29]
•
Первые мысли о Jetpack Compose [30]
•
Изменение стартовых шаблонов Android [31]
•
Splash Screen в Android [32]
•
Время плыть: переход с Kotlin на Flutter [33]
•
Исследуем Kotlin DSL [34]
•
Развенчиваем мифы о производительности Android [35]
•
Создание тепловых карт с помощью Google Maps для Android [35]
•
Все, что вам нужно знать о биометрической библиотеке Android [36]
•
JetMessenger: клон Facebook Messenger на Jetpack Compose [37]
•
CircleMenu: круговое меню для Android [38]
Разработка
• (+22) Plague M.D. Я остался в России и меня поглотила Чума. Сопли и нытье прогера [39]
• (+16) Выводы, которые я сделал, помогая стартапу для секс-чатов повысить конверсию [40]
• (+8) InheritedWidget во Flutter [41]
• (+8) Симуляция волос и тканей с Unity Cloth на мобильных устройствах [42]
• (+6) Создание эффекта VHS-видео в Unreal Engine [43]
• (+6) «Flutter клёвенький — у меня только такое объяснение». Обзор лучших выпусков Flutter Dev Podcast [44]
• (+6) Как создать мини-приложение: база знаний VK Mini Apps [45]
• Podlodka #183: обратная связь [46]
• Финал фестиваля программирования RuCode [47]
• GitHub запускает сканирование кода на уязвимости [48]
• Как изменить жизнь программиста с правилом 80/20 [49]
• Курсы “Как создавать мобильные приложения и игры” в Humble Bundle [50]
• 4 расширения VS Code для того, чтобы «расслабиться» на работе [51]
• Интервью с product-менеджером Flutter и Dart (Google) [52]
•
Facebook против Google: битва межплатформенных фреймворков [53]
•
Лучшие практики CI/CD [54]
•
GitHub Codespaces: работа с Flutter [55]
•
Лучший совет по созданию программного обеспечения от моего ментора [56]
•
Четыре вещи, которые нужно забыть, чтобы стать лучшим программистом [57]
•
Мои первые 24 часа с Flutter [58]
•
7 способов действительно чему-то научиться из туториалов [59]
Аналитика, маркетинг и монетизация
• (+25) Как приложения без возможности выигрыша вытягивают у пользователей миллионы долларов [60]
• (+3) История Waze: от бессмыслицы до миллиардной компании [61]
• (+1) Разбор игры RAID: Shadow Legends (монетизация через поведенческую психологию) [62]
• (0) Локализационное тестирование: зачем оно нужно приложению или сайту? [63]
• Сингл группы BLACKPINK «Lovesick girls» выходит в PUBG MOBILE [64]
• IronSource открывает доступ к in-app bidding платформе для всех [65]
• make sense: О выходе на зарубежный рынок [66]
• Доходы приложений в 3 квартале выросли на 32% до $29 млрд. [67]
• Epic и Apple отказались от суда присяжных [68]
• В России вступил в силу Закон о блокировке пиратских приложений [69]
• Почему инфлюэнсеры-звезды, такие как Ли Цзяци, так важны для бизнеса, нацеливающегося на Китай [70]
• Rephrase.ai: генерация людей для рекламы [71]
• Как мы запустили приложение для анимации фото на Product Hunt [72]
•
Запуск инди-приложения [73]
AI, Устройства, IoT
• (+27) Лучшие IDE для Raspberry Pi [74]
• (+17) Знакомство с Node-RED и потоковое программирование в Yandex IoT Core [75]
• (+12) Добавляем в плеер функцию Ambilight при помощи умных ламп Xiaomi [76]
• (+1) NB-IoT. Non-IP Data Delivery или просто NIDD. Тестирование с коммерческим сервисом МТС [77]
• (0) «Умный дом» в каждую квартиру многоквартирного дома. Детально о контроллере и шлюзах [78]
• 8 No-Code платформ машинного обучения для мобильных разработчиков [79]
• Продажи Apple Watch 6 вдвое опережают продажи предыдущей версии [80]
← Предыдущий дайджест [81]. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту [82].
Автор: DigitalEcosystems
Источник [83]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/android/357571
Ссылки в тексте:
[1] Qt? ImGUI? wxWidgets? Пишем свое: https://habr.com/ru/post/521306/
[2] Бесшовные A/B-обновления в Android: как они устроены: https://habr.com/ru/company/sberdevices/blog/521036/
[3] рассылки: http://apptractor.us3.list-manage2.com/subscribe?u=fbdb52f18301080a3cc983f4b&id=bb7bc0a9c0
[4] Telegram-канале: https://t.me/apptractor
[5] Navigation bar и анимация перехода: https://habr.com/ru/company/funcorp/blog/521340/
[6] Apple запустила генератор коротких ссылок и QR-кодов для App Store: https://apptractor.ru/marketing-monetization/app-store-marketing-tools.html
[7] Apple отказалась от 30% налога ради малого бизнеса: https://apptractor.ru/info/news/apple-30-facebook.html
[8] Использование AVAudioEngine для записи, сжатия и потоковой передачи звука на iOS: https://medium.com/@arvindhsukumar/using-avaudioengine-to-record-compress-and-stream-audio-on-ios-48dfee09fde4
[9] SKOverlay в SwiftUI: https://medium.com/better-programming/skoverlay-in-swiftui-b2d102e7c08c
[10] Core Data и SwiftUI 2.0: https://blckbirds.com/post/core-data-and-swiftui/
[11] Используем кастомные Debug Descriptions, чтобы упростить отладку Swift: https://medium.com/better-programming/use-custom-debug-descriptions-to-make-debugging-easier-in-swift-7762ccf140e4
[12] 10 запутанных, но важных функций Swift: https://medium.com/better-programming/10-confusing-but-crucial-swift-functions-f290dfaaf-f29080bdfaaf
[13] 2 способа исполнения MVVM iOS: https://levelup.gitconnected.com/2-ways-to-execute-mvvm-ios-5c47d60ebcd0
[14] SwiftUI и Firestore: обновление данных: https://medium.com/firebase-developers/updating-data-in-firestore-from-a-swiftui-app-4fc84fce70e8
[15] Как сделать раздвигающийся TableView с помощью Swift: https://johncodeos.com/how-to-make-expandable-tableview-using-swift/
[16] Instructions: пояснения и обучение работе с продуктом: https://apptractor.ru/info/github/instructions-2.html
[17] Tiktok Clone: короткие видео на Swift и Firebase: https://apptractor.ru/info/github/tiktok-clone.html
[18] Twitter Text: парсинг текста: https://apptractor.ru/info/github/twitter-text.html
[19] Как разработать аналог Zoom для ТВ-приставок на RDK и Linux. Разбираемся с фреймворком GStreamer: https://habr.com/ru/post/521204/
[20] «Холодный» запуск Android-приложения: https://habr.com/ru/post/521522/
[21] Еще раз про многомодульность Android-приложений: https://habr.com/ru/company/kaspersky/blog/520766/
[22] Как устроен Push Kit от Huawei: https://habr.com/ru/company/huawei/blog/520710/
[23] Как спроектировать пошаговое заполнение данных в мобильном приложении: https://habr.com/ru/company/surfstudio/blog/521416/
[24] Google Play In-App Review API: пошаговое руководство по внедрению: https://habr.com/ru/post/520908/
[25] Голос в мобильном приложении: учимся вызывать экраны и заполнять формы без рук: https://habr.com/ru/company/just_ai/blog/517862/
[26] Google упростит работу со сторонними магазинами в Android 12: https://apptractor.ru/info/news/google-android-12.html
[27] Google Play будет тщательнее следить за оплатой покупок в приложениях: https://apptractor.ru/info/news/google-play-30.html
[28] Беспроводная Android-разработка с локальным устройством: https://www.rockandnull.com/scrcpy-adb-wifi/
[29] Асинхронные сообщения с Kotlin и RabbitMQ: https://medium.com/swlh/async-messaging-with-kotlin-and-rabbitmq-d69df1937b25
[30] Первые мысли о Jetpack Compose: https://medium.com/@adrianocelentano/first-thoughts-on-jetpack-compose-f95645684455
[31] Изменение стартовых шаблонов Android: https://www.bloco.io/blog/2020/android-app-starter-update
[32] Splash Screen в Android: https://medium.com/swlh/splash-screen-in-android-8ab250e40190
[33] Время плыть: переход с Kotlin на Flutter: https://levelup.gitconnected.com/time-to-float-migrating-from-kotlin-to-flutter-7e8395876e02
[34] Исследуем Kotlin DSL: https://medium.com/better-programming/exploring-kotlin-dsl-4ab67ed13062
[35] Развенчиваем мифы о производительности Android: https://medium.com/androiddevelopers/busting-android-performance-myths-d85ae1d87f22
[36] Все, что вам нужно знать о биометрической библиотеке Android: https://medium.com/swlh/all-you-need-to-know-about-androids-biometric-library-5fcecbc022cf
[37] JetMessenger: клон Facebook Messenger на Jetpack Compose: https://apptractor.ru/info/github/jetmessenger.html
[38] CircleMenu: круговое меню для Android: https://apptractor.ru/info/github/circlemenu.html
[39] Plague M.D. Я остался в России и меня поглотила Чума. Сопли и нытье прогера: https://habr.com/ru/post/520956/
[40] Выводы, которые я сделал, помогая стартапу для секс-чатов повысить конверсию: https://habr.com/ru/post/521368/
[41] InheritedWidget во Flutter: https://habr.com/ru/company/otus/blog/521032/
[42] Симуляция волос и тканей с Unity Cloth на мобильных устройствах: https://habr.com/ru/company/plarium/blog/520490/
[43] Создание эффекта VHS-видео в Unreal Engine: https://habr.com/ru/post/520082/
[44] «Flutter клёвенький — у меня только такое объяснение». Обзор лучших выпусков Flutter Dev Podcast: https://habr.com/ru/company/google/blog/520492/
[45] Как создать мини-приложение: база знаний VK Mini Apps: https://habr.com/ru/company/vk/blog/521192/
[46] Podlodka #183: обратная связь: https://apptractor.ru/info/media/podlodka-183.html
[47] Финал фестиваля программирования RuCode: https://apptractor.ru/learn/rucode-2020.html
[48] GitHub запускает сканирование кода на уязвимости: https://apptractor.ru/info/news/github-code-scanning.html
[49] Как изменить жизнь программиста с правилом 80/20: https://apptractor.ru/info/articles/change-your-life-as-a-programmer-80-20.html
[50] Курсы “Как создавать мобильные приложения и игры” в Humble Bundle: https://apptractor.ru/learn/how-to-build-mobile-app-and-game.html
[51] 4 расширения VS Code для того, чтобы «расслабиться» на работе: https://apptractor.ru/info/articles/4-vs-code-extensions.html
[52] Интервью с product-менеджером Flutter и Dart (Google): https://evrone.ru/intervyu-s-product-menedzherom-flutter
[53] Facebook против Google: битва межплатформенных фреймворков: https://medium.com/flutter-community/facebook-vs-google-the-battle-of-their-cross-platform-frameworks-f8e9be0f2e81
[54] Лучшие практики CI/CD: https://blog.bitsrc.io/ci-cd-best-practices-bca0ef665677
[55] GitHub Codespaces: работа с Flutter: https://medium.com/flutter-community/github-codespaces-code-on-the-go-with-flutter-a6b550b3342b
[56] Лучший совет по созданию программного обеспечения от моего ментора: https://medium.com/better-programming/the-principles-of-software-development-7415e7c5a156
[57] Четыре вещи, которые нужно забыть, чтобы стать лучшим программистом: https://levelup.gitconnected.com/4-things-you-have-to-unlearn-to-become-a-better-programmer-547adf476445
[58] Мои первые 24 часа с Flutter: https://medium.com/madhash/my-first-24-hours-with-flutter-309814ee8e2f
[59] 7 способов действительно чему-то научиться из туториалов: https://medium.com/better-programming/7-ways-to-actually-learn-something-from-coding-tutorials-b6cdddace26f
[60] Как приложения без возможности выигрыша вытягивают у пользователей миллионы долларов: https://habr.com/ru/post/519718/
[61] История Waze: от бессмыслицы до миллиардной компании: https://habr.com/ru/company/skillfactory/blog/521412/
[62] Разбор игры RAID: Shadow Legends (монетизация через поведенческую психологию): https://habr.com/ru/post/521336/
[63] Локализационное тестирование: зачем оно нужно приложению или сайту?: https://habr.com/ru/company/alconost/blog/521330/
[64] Сингл группы BLACKPINK «Lovesick girls» выходит в PUBG MOBILE: https://apptractor.ru/info/news/blackpink-pubg.html
[65] IronSource открывает доступ к in-app bidding платформе для всех: https://apptractor.ru/marketing-monetization/ad-networks/ironsource-levelplay.html
[66] make sense: О выходе на зарубежный рынок: https://apptractor.ru/info/media/make-sense-113.html
[67] Доходы приложений в 3 квартале выросли на 32% до $29 млрд.: https://apptractor.ru/measure/app-store-analytics/app-revenue-and-downloads-q3-2020.html
[68] Epic и Apple отказались от суда присяжных: https://apptractor.ru/info/news/epic-apple-jury.html
[69] В России вступил в силу Закон о блокировке пиратских приложений: https://apptractor.ru/info/news/rkn-apps.html
[70] Почему инфлюэнсеры-звезды, такие как Ли Цзяци, так важны для бизнеса, нацеливающегося на Китай: https://apptractor.ru/marketing-monetization/pochemu-infljujensery-zvezdy-takie-kak-li-czjaci-tak-vazhny-dlja-biznesa-nacelivajushhegosja-na-kitaj.html
[71] Rephrase.ai: генерация людей для рекламы: https://apptractor.ru/info/techhype/rephrase-ai.html
[72] Как мы запустили приложение для анимации фото на Product Hunt: https://vc.ru/life/162034-kak-my-zapustili-prilozhenie-dlya-animacii-foto-na-product-hunt
[73] Запуск инди-приложения: https://heyimakeapps.com/blog/launching-an-indie-app-part-1-sharing-my-journey
[74] Лучшие IDE для Raspberry Pi: https://habr.com/ru/company/ruvds/blog/521596/
[75] Знакомство с Node-RED и потоковое программирование в Yandex IoT Core: https://habr.com/ru/company/yandex/blog/519600/
[76] Добавляем в плеер функцию Ambilight при помощи умных ламп Xiaomi: https://habr.com/ru/post/521852/
[77] NB-IoT. Non-IP Data Delivery или просто NIDD. Тестирование с коммерческим сервисом МТС: https://habr.com/ru/post/514656/
[78] «Умный дом» в каждую квартиру многоквартирного дома. Детально о контроллере и шлюзах: https://habr.com/ru/post/521020/
[79] 8 No-Code платформ машинного обучения для мобильных разработчиков: https://apptractor.ru/info/articles/no-code-machine-learning.html
[80] Продажи Apple Watch 6 вдвое опережают продажи предыдущей версии: https://apptractor.ru/info/devices/apple-watch-series-6-russia.html
[81] Предыдущий дайджест: https://habr.com/ru/company/digital-ecosystems/blog/520872/
[82] почту: mailto:lbogolubov@gmail.com
[83] Источник: https://habr.com/ru/post/521954/?utm_source=habrahabr&utm_medium=rss&utm_campaign=521954
Нажмите здесь для печати.