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

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

В этом выпуске MVVM и MVI, близкие взаимодействия и плавные переходы, годы в геймдеве и много Flutter, самые скачиваемые и зарабатывающие приложения июня и много других интересных материалов!

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

Советую запастись попкорном и кока-колой — это вечернее шоу о том, как я ни в чем себе не отказывал, в очередной раз реализуя MVVM в одном из своих домашних проектов. Сегодня вторая серия: про то, как из MVC сделать MVVM и не наступить в реактивщину.

Мы будем реализовывать специфичные для платформы части общего модуля и интегрировать их в iOS- и Android-приложения. Как и прежде, я предполагаю, что читатель уже имеет базовые знания о Kotlin Multiplatform, поэтому не буду рассказывать о конфигурациях проектов и других вещах, не связанных с MVI в Kotlin Multiplatform.

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

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

(+7) Как я простые циклы искал [5]
(+3) Ликбез для дизайнеров с конференции Apple WWDC 2020 [6]
Работаем с Nearby Interaction в iOS 14 [7]
Новые App Store Connect API для управления приложениями в App Store [8]
Нет, Apple не движется в сторону неоморфизма [9]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 6 Лучшие iOS библиотеки/фреймворки в 2020 году [10]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 7 Восхитительные интерактивные анимации [11]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 8 6 удивительных SwiftUI-библиотек для использования в вашем следующем проекте [12]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 9 Неоморфизм на SwiftUI [13]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 10 Прощайте, Target Actions. привет, UIActions [14]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 11 Создаем простые и более современные Collection View в iOS 14+ [15]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 12 Как создать FAB в iOS на Swift [16]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 13 Мои лучшие 5 хитростей работы с Xcode [17]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 14 Анимируем скучные TableView в iOS-приложении [18]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 15 10 снипетов с WWDC20 [19]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 16 Что нового в UIMenu и ContextMenu в iOS 14 [20]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 17 Работаем с Swift Generics: практическое руководство по повторному использованию кода [21]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 18 Создаем UILabel с динамическим размером шрифта в Swift 5 [22]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 19 Рисование произвольных фигур с помощью UIBezierPath [23]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 20 Firebase remote config в iOS [24]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 21 OpenMTP: передача файлов с macOS на Android [25]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 22 Swift Sunburst Diagram: многоуровневая круговая диаграмма на SwiftUI [26]

Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 23 Android

(+19) Анимация в Android: плавные переходы фрагментов внутри Bottom Sheet [27]
(+19) Современные Android-устройства достаточно безопасны и вот почему [28]
(+9) «На первую платформу прибывает...» Истории разработчиков в AppGallery от Huawei [29]
(+4) Что нового в RxJava 3 [30]
Начат прием заявок на 2020 Material Design Award [31]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 24 Оптимизируем скорость сборки вашего Android-проекта [32]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 25 Начинаем работать с MVI-архитектурой на Android [33]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 26 Кастомные Drawable [34]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 27 Пишем плавный код на Kotlin [35]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 28 Курс Kotlin со сборкой AR Android-приложения [36]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 29 Как реализовать HyperLog на Kotlin в Android [37]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 30 Уведомления для людей [38]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 31 Firebase OTP аутентификация в Android [39]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 32 Реализуем In-App обновления в Android [40]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 33 BaseActivity и BaseFragment – монстры [41]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 34 Определение активности пользователей в Android с помощью Transition API [42]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 35 Путешествие Jetpack [43]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 36 TextWriter: анимированный текст [44]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 37 Antimine — Minesweeper: сапер для Android [45]

Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 38 Разработка

(+28) Мои десять лет в геймдеве [46]
(+15) Страх и ненависть в геймдеве: от первых шагов до первых денег [47]
(+13) Flutter. Разбираемся, как рисовать различные фигуры с помощью CustomClipper [48]
(+10) Flutter. Упрощаем компоновку виджетов с помощью Dart расширений [49]
(+9) Автоматизация тестирования в микросервисной архитектуре [50]
(+7) Лексоранги — что это такое и как их использовать для эффективной сортировки списков [51]
(+4) Model-Widget-WidgetModel, или какой архитектурой пользуется Flutter-команда в Surf [52]
(+2) Какой хороший app store Xiaomi. Удалил приложение из своего магазина после обновления, потому что оно на русском языке [53]
(+1) Как найти границы на клиенте и сервере [54]
(+1) Безопасность мобильных устройств и приложений: пять популярных сценариев атак и способы защиты [55]
Facebook SDK вызвал падение приложений по всему миру [56]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 39 15 видео-руководств по созданию приложений на Flutter [57]
make sense: Об опыте создания продукта с нуля и различиях в работе и навыках продакт и проджект-менеджеров [58]
Podlodka #171: дата-центры [59]
Дизайн приложений: примеры для вдохновения #8 [60]
Flutter будет работать на Linux [61]
Опрос Developer Economics за 2-й квартал 2020 года [62]
Как стать разработчиком игр 2020 [63]
Меню, метафоры и материалы: основные этапы проектирования пользовательского интерфейса [64]
Как проектировать лучшие кнопки [65]
Как мы сделали приложение по доставке для ресторанов и кафе за 200 тысяч рублей бесплатным [66]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 40 Принимаем платежи с помощью Google Pay через Stripe во Flutter [67]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 41 Изучаем UX: как создать супер приложение [68]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 42 Самосовершенствование может быть самой большой проблемой для разработчиков. Так как мы это делаем? [69]
Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 43 Prism: обои на Flutter [70]

Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 44 Аналитика, маркетинг и монетизация

В Tetris запустилось игровое шоу Primetime с призовым фондом в $1 млн. [71]
Павел Дуров снова призвал бороться с монополией Apple и Google [72]
Использовать мобильные приложения во 2 квартале 2020 года во всем мире стали на 40% больше [73]

Во 2 квартале 2020 российские пользователи потратили...

Во 2 квартале 2020 российские пользователи потратили в приложениях $328 млн, что на 30% больше, чем в первом квартале 2019 года. При этом $233 млн были потрачены на мобильные игры. На платформе iOS пользователи потратили на 35% больше, чем год назад, — $144 млн, в Google Play — на 30% больше, $184 млн. Расходы пользователей на неигровые приложения на iOS выросли на 30% и составили $67 млн, в то время как пользователи Google Play увеличили свои расходы на 35% и потратили $76,3 млн.
image

Самые скачиваемые приложения в июне 2020 [74]
Самые зарабатывающие приложения в июне 2020 [75]
S’More: мобильный размытый дейтинг [76]
Mail.ru Group запустила Look-alike таргетинг на основе данных мобильных трекеров [77]
myTracker начал поддерживать мультиплатформенную атрибуцию [78]
Как использовать когортный анализ для уменьшения оттока пользователей и принятия лучших решений [79]

Дайджест интересных материалов для мобильного разработчика #352 (6 июля — 12 июля) - 46 AI, Устройства, IoT

(+111) Собираем недорогой 9.7" E-Ink дисплей для отображения чего угодно [80]
(+25) Встраиваемый компьютер AntexGate. От прототипа к серийному производству [81]
(+7) Чеклист для проекта по машинному обучению [82]
(+4) Как изучать Machine Learning 5 дней в неделю 9 месяцев подряд [83]
Ученые сделали перчатку, преобразующую язык жестов в текст [84]
Как я пытался скопировать чужую ERP-систему и попал на 7 млн рублей [85]

Предыдущий дайджест [86]. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту [87].

Автор: DigitalEcosystems

Источник [88]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/ui/354924

Ссылки в тексте:

[1] Доступный MVVM на хакнутых экстеншенах: https://habr.com/ru/company/tinkoff/blog/509014/

[2] Архитектурный шаблон MVI в Kotlin Multiplatform: https://habr.com/ru/company/badoo/blog/510304/

[3] рассылки: http://apptractor.us3.list-manage2.com/subscribe?u=fbdb52f18301080a3cc983f4b&id=bb7bc0a9c0

[4] Telegram-канале: https://t.me/apptractor

[5] Как я простые циклы искал: https://habr.com/ru/post/510174/

[6] Ликбез для дизайнеров с конференции Apple WWDC 2020: https://habr.com/ru/company/redmadrobot/blog/510472/

[7] Работаем с Nearby Interaction в iOS 14: https://apptractor.ru/info/articles/nearby-interaction.html

[8] Новые App Store Connect API для управления приложениями в App Store: https://apptractor.ru/info/news/app-store-connect-api.html

[9] Нет, Apple не движется в сторону неоморфизма: https://ux.pub/net-apple-ne-dvizhetsya-v-storonu-neomorfizma/

[10] Лучшие iOS библиотеки/фреймворки в 2020 году: https://instabug.com/blog/top-ios-libraries-and-frameworks/

[11] Восхитительные интерактивные анимации: https://medium.com/@mshcheglov/delightful-interactive-animations-7a7823019c12

[12] 6 удивительных SwiftUI-библиотек для использования в вашем следующем проекте: https://medium.com/better-programming/6-amazing-swiftui-libraries-to-use-in-your-next-project-part-2-df5fb94680bc

[13] Неоморфизм на SwiftUI: https://medium.com/swlh/neumorphic-design-in-swiftui-643f252f7267

[14] Прощайте, Target Actions. привет, UIActions: https://medium.com/better-programming/goodbye-target-actions-hello-uiactions-a60e1e2052d5

[15] Создаем простые и более современные Collection View в iOS 14+: https://medium.com/better-programming/build-simpler-more-modern-collection-views-in-ios-14-ca74eab2bb89

[16] Как создать FAB в iOS на Swift: https://www.warmodroid.xyz/tutorial/how-to-design-the-floating-action-button-in-ios-swift/

[17] Мои лучшие 5 хитростей работы с Xcode: https://medium.com/swlh/my-top-5-xcode-tricks-9c4301a2118a

[18] Анимируем скучные TableView в iOS-приложении: https://medium.com/flawless-app-stories/animate-the-boring-tableviews-in-your-ios-app-a98bc6dee3e9

[19] 10 снипетов с WWDC20: https://medium.com/swlh/10-code-snippets-from-wwdc20-5dba158e2903

[20] Что нового в UIMenu и ContextMenu в iOS 14: https://medium.com/better-programming/whats-new-in-ios-14s-uimenu-and-contextmenu-433cd2037c37

[21] Работаем с Swift Generics: практическое руководство по повторному использованию кода: https://matteomanferdini.com/swift-generics/

[22] Создаем UILabel с динамическим размером шрифта в Swift 5: https://levelup.gitconnected.com/create-a-uilabel-with-dynamic-font-size-in-swift-5-f49ccc26dc5f

[23] Рисование произвольных фигур с помощью UIBezierPath: https://medium.com/@ayusinghi96/draw-custom-shapes-and-views-with-uiberzierpath-ios-1737f5cb975

[24] Firebase remote config в iOS: https://www.warmodroid.xyz/tutorial/ios/how-to-implement-firebase-remote-config-in-ios/

[25] OpenMTP: передача файлов с macOS на Android: https://apptractor.ru/info/github/openmtp.html

[26] Swift Sunburst Diagram: многоуровневая круговая диаграмма на SwiftUI: https://apptractor.ru/info/github/swiftsunburstdiagram.html

[27] Анимация в Android: плавные переходы фрагментов внутри Bottom Sheet: https://habr.com/ru/company/dodopizzadev/blog/510066/

[28] Современные Android-устройства достаточно безопасны и вот почему: https://habr.com/ru/company/vdsina/blog/509934/

[29] «На первую платформу прибывает...» Истории разработчиков в AppGallery от Huawei: https://habr.com/ru/article/510470/

[30] Что нового в RxJava 3: https://habr.com/ru/company/simbirsoft/blog/510400/

[31] Начат прием заявок на 2020 Material Design Award: https://apptractor.ru/info/conferences/2020-material-design-award.html

[32] Оптимизируем скорость сборки вашего Android-проекта: https://www.crazylegend.dev/2020/07/optimize-build-speeds-for-your-android.html

[33] Начинаем работать с MVI-архитектурой на Android: https://proandroiddev.com/getting-started-with-mvi-architecture-on-android-b2c280b7023

[34] Кастомные Drawable: https://medium.com/swlh/custom-drawable-25f56044e8dc

[35] Пишем плавный код на Kotlin: https://levelup.gitconnected.com/write-fluent-code-in-kotlin-133647f2a869

[36] Курс Kotlin со сборкой AR Android-приложения: https://www.blog.duomly.com/kotlin-course-with-building-android-augmented-reality-app-lesson1-how-to-setup-android-studio-and-arcore-for-augmented-reality-project/

[37] Как реализовать HyperLog на Kotlin в Android: https://medium.com/better-programming/how-to-implement-hyperlog-with-kotlin-in-android-21f34a950c83

[38] Уведомления для людей: https://medium.com/androiddevelopers/people-notifications-2a2e4fb6ee96

[39] Firebase OTP аутентификация в Android: https://www.warmodroid.xyz/tutorial/firebase/firebase-otp-authentication-in-android/

[40] Реализуем In-App обновления в Android: https://medium.com/swlh/implementing-in-app-updates-in-android-26ea27609bd2

[41] BaseActivity и BaseFragment – монстры: https://proandroiddev.com/baseactivity-and-basefragment-are-monsters-5cda31639938

[42] Определение активности пользователей в Android с помощью Transition API: https://heartbeat.fritz.ai/detect-users-activity-in-android-using-activity-transition-api-f718c844efb2

[43] Путешествие Jetpack: https://proandroiddev.com/the-journey-of-jetpack-introduction-2cc565387550

[44] TextWriter: анимированный текст: https://apptractor.ru/info/github/textwriter.html

[45] Antimine — Minesweeper: сапер для Android: https://apptractor.ru/info/github/antimine-minesweeper.html

[46] Мои десять лет в геймдеве: https://habr.com/ru/company/digital-ecosystems/blog/509912/

[47] Страх и ненависть в геймдеве: от первых шагов до первых денег: https://habr.com/ru/post/510506/

[48] Flutter. Разбираемся, как рисовать различные фигуры с помощью CustomClipper: https://habr.com/ru/post/509384/

[49] Flutter. Упрощаем компоновку виджетов с помощью Dart расширений: https://habr.com/ru/post/510106/

[50] Автоматизация тестирования в микросервисной архитектуре: https://habr.com/ru/company/avito/blog/509280/

[51] Лексоранги — что это такое и как их использовать для эффективной сортировки списков: https://habr.com/ru/post/510448/

[52] Model-Widget-WidgetModel, или какой архитектурой пользуется Flutter-команда в Surf: https://habr.com/ru/company/surfstudio/blog/510308/

[53] Какой хороший app store Xiaomi. Удалил приложение из своего магазина после обновления, потому что оно на русском языке: https://habr.com/ru/post/509806/

[54] Как найти границы на клиенте и сервере: https://habr.com/ru/post/510458/

[55] Безопасность мобильных устройств и приложений: пять популярных сценариев атак и способы защиты: https://habr.com/ru/company/pt/blog/509814/

[56] Facebook SDK вызвал падение приложений по всему миру: https://apptractor.ru/info/news/facebook-sdk-crash.html

[57] 15 видео-руководств по созданию приложений на Flutter: https://apptractor.ru/develop/cross-platform-development/flutter-tutorial.html

[58] make sense: Об опыте создания продукта с нуля и различиях в работе и навыках продакт и проджект-менеджеров: https://apptractor.ru/info/media/make-sense-101.html

[59] Podlodka #171: дата-центры: https://apptractor.ru/info/media/podlodka-171.html

[60] Дизайн приложений: примеры для вдохновения #8: https://apptractor.ru/info/articles/app-design-proto-8.html

[61] Flutter будет работать на Linux: https://apptractor.ru/info/news/flutter-linux.html

[62] Опрос Developer Economics за 2-й квартал 2020 года: https://apptractor.ru/info/analytics/developer-economics-2020.html

[63] Как стать разработчиком игр 2020: https://apptractor.ru/info/media/kak-stat-razrabotchikom-igr.html

[64] Меню, метафоры и материалы: основные этапы проектирования пользовательского интерфейса: https://ux.pub/menyu-metafory-i-materialy-osnovnye-etapy-proektirovaniya-polzovatelskogo-interfeysa/

[65] Как проектировать лучшие кнопки: https://ux.pub/kak-proektirovat-luchshie-knopki/

[66] Как мы сделали приложение по доставке для ресторанов и кафе за 200 тысяч рублей бесплатным: https://vc.ru/tribuna/140342-kak-my-sdelali-prilozhenie-po-dostavke-dlya-restoranov-i-kafe-za-200-tysyach-rubley-besplatnym

[67] Принимаем платежи с помощью Google Pay через Stripe во Flutter: https://medium.com/swlh/accept-payments-using-google-pay-through-stripe-in-flutter-d65dfaa0091a

[68] Изучаем UX: как создать супер приложение: https://medium.muz.li/ux-case-study-how-to-create-a-super-app-c5a1dabf3255

[69] Самосовершенствование может быть самой большой проблемой для разработчиков. Так как мы это делаем?: https://codeburst.io/improving-might-be-the-biggest-challenge-for-software-developers-so-how-do-we-do-it-377859e6d70d

[70] Prism: обои на Flutter: https://apptractor.ru/info/github/prism.html

[71] В Tetris запустилось игровое шоу Primetime с призовым фондом в $1 млн.: https://apptractor.ru/info/apps/tetris-primetime.html

[72] Павел Дуров снова призвал бороться с монополией Apple и Google: https://apptractor.ru/info/news/kak-apple-unichtozhaet-startapy.html

[73] Использовать мобильные приложения во 2 квартале 2020 года во всем мире стали на 40% больше: https://apptractor.ru/measure/app-store-analytics/ispolzovat-mobilnye-prilozhenija-vo-2-kvartale-2020-goda-vo-vsem-mire-stali-na-40-bolshe.html

[74] Самые скачиваемые приложения в июне 2020: https://apptractor.ru/measure/app-store-analytics/top-apps-worldwide-june-2020.html

[75] Самые зарабатывающие приложения в июне 2020: https://apptractor.ru/info/analytics/top-grossing-apps-worldwide-june-2020.html

[76] S’More: мобильный размытый дейтинг: https://apptractor.ru/info/techhype/s-more.html

[77] Mail.ru Group запустила Look-alike таргетинг на основе данных мобильных трекеров: https://apptractor.ru/marketing-monetization/ad-networks/mytarget-look-alike.html

[78] myTracker начал поддерживать мультиплатформенную атрибуцию: https://apptractor.ru/marketing-monetization/app-promotion-campaign-analytics/mytracker-multiplatform.html

[79] Как использовать когортный анализ для уменьшения оттока пользователей и принятия лучших решений: https://apptractor.ru/measure/user-analytics/kak-ispolzovat-kogortnyiy-analiz-dlya-umensheniya-ottoka-polzovateley-i-prinyatiya-luchshih-resheniy.html

[80] Собираем недорогой 9.7" E-Ink дисплей для отображения чего угодно: https://habr.com/ru/post/510102/

[81] Встраиваемый компьютер AntexGate. От прототипа к серийному производству: https://habr.com/ru/post/510114/

[82] Чеклист для проекта по машинному обучению: https://habr.com/ru/company/skillfactory/blog/509946/

[83] Как изучать Machine Learning 5 дней в неделю 9 месяцев подряд: https://habr.com/ru/company/skillfactory/blog/510444/

[84] Ученые сделали перчатку, преобразующую язык жестов в текст: https://apptractor.ru/info/devices/ucla-glove.html

[85] Как я пытался скопировать чужую ERP-систему и попал на 7 млн рублей: https://vc.ru/life/140133-kak-ya-pytalsya-skopirovat-chuzhuyu-erp-sistemu-i-popal-na-7-mln-rubley

[86] Предыдущий дайджест: https://habr.com/ru/company/digital-ecosystems/blog/509712/

[87] почту: mailto:lbogolubov@gmail.com

[88] Источник: https://habr.com/ru/post/510624/?utm_source=habrahabr&utm_medium=rss&utm_campaign=510624