- PVSM.RU - https://www.pvsm.ru -

Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября)

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

Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 1

У меня был простой рендер спрайтов и текста, простая система обработки ввода, из которой можно было получать информацию о мышке и нажатых клавишах, и всякие утилиты-обвязки вспомогательных систем движка. В общем какую-то простую картинку вывести я мог. В последствии это все очень сильно изменилось и поросло архитектурными хитростями.

Начиная с Android 8 (у некоторых вендоров с 7.1) в системе появился новый механизм накатки OTA-обновлений, т. н. Seamless A/B OTA Updates — бесшовные обновления. В этом посте я опишу общие принципы его работы, рассмотрю механизм с точки зрения разработчика, а также проведу сравнение со старым (будем его называть recovery-based) подходом применения обновлений.

Этот дайджест доступен в виде еженедельной рассылки [3]. А ежедневно новости мы рассылаем в Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 4Telegram-канале [4].

Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 5 iOS

(+22) Navigation bar и анимация перехода [5]
Apple запустила генератор коротких ссылок и QR-кодов для App Store [6]
Apple отказалась от 30% налога ради малого бизнеса [7]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 6 Использование AVAudioEngine для записи, сжатия и потоковой передачи звука на iOS [8]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 7 SKOverlay в SwiftUI [9]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 8 Core Data и SwiftUI 2.0 [10]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 9 Используем кастомные Debug Descriptions, чтобы упростить отладку Swift [11]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 10 10 запутанных, но важных функций Swift [12]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 11 2 способа исполнения MVVM iOS [13]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 12 SwiftUI и Firestore: обновление данных [14]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 13 Как сделать раздвигающийся TableView с помощью Swift [15]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 14 Instructions: пояснения и обучение работе с продуктом [16]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 15 Tiktok Clone: короткие видео на Swift и Firebase [17]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 16 Twitter Text: парсинг текста [18]

Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 17 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]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 18 Беспроводная Android-разработка с локальным устройством [28]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 19 Асинхронные сообщения с Kotlin и RabbitMQ [29]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 20 Первые мысли о Jetpack Compose [30]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 21 Изменение стартовых шаблонов Android [31]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 22 Splash Screen в Android [32]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 23 Время плыть: переход с Kotlin на Flutter [33]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 24 Исследуем Kotlin DSL [34]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 25 Развенчиваем мифы о производительности Android [35]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 26 Создание тепловых карт с помощью Google Maps для Android [35]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 27 Все, что вам нужно знать о биометрической библиотеке Android [36]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 28 JetMessenger: клон Facebook Messenger на Jetpack Compose [37]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 29 CircleMenu: круговое меню для Android [38]

Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 30 Разработка

(+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]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 31 Facebook против Google: битва межплатформенных фреймворков [53]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 32 Лучшие практики CI/CD [54]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 33 GitHub Codespaces: работа с Flutter [55]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 34 Лучший совет по созданию программного обеспечения от моего ментора [56]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 35 Четыре вещи, которые нужно забыть, чтобы стать лучшим программистом [57]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 36 Мои первые 24 часа с Flutter [58]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 37 7 способов действительно чему-то научиться из туториалов [59]

Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 38 Аналитика, маркетинг и монетизация

(+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]
Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 39 Запуск инди-приложения [73]

Дайджест интересных материалов для мобильного разработчика #364 (27 сентября — 4 октября) - 40 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