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

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

В этом выпуске переезд Lingualeo на PostgreSQL, главные ошибки свободного ПО, война Epic c Apple, восприятие интерфейсов и золотой век программирования, «часы Уизли», поведение пользователей и многое другое!

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

Мы попросили нашего лидера бэкэнд разработки, Олега Правдина, рассказать о том, как они с командой параллельно с поддержкой основного продукта собрали новую модульную структуру сервиса на базе PostgreSQL, перенесли бизнес-логику в базы данных и провели миграцию с миллионами пользователей.

Сегодня мы попробуем разобраться, почему Open Source приложениями никто не хочет пользоваться. Статья получилась довольно длинной, но не пугайтесь, будет интересно.

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

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

(+29) Airport — маркетплейс для приложений в TestFlight [5]
(+23) Как мы загружали банковскую карту из iPhone в брелок [6]
(+14) Знакомимся с Needle, системой внедрения зависимостей на Swift [7]
Обновление Lightroom удалило все пользовательские фотографии на iOS [8]
Apple отзывает сертификаты разработчиков у Epic Games и ставит под удар Unreal Engine [9]
Как подготовиться к iOS 14 и новым правилам конфиденциальности Apple [10]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 6 Анимация View в SwiftUI [11]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 7 Как я получил свою первую работу iOS-разработчика [12]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 8 Организация вашего Swift-кода в Xcode с помощью локальных пакетов [13]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 9 Микровзаимодействия в SwiftUI — анимация кнопок меню [14]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 10 Новое в области искусственного интеллекта в iOS 14 [15]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 11 Как создать вариант сборки в iOS-приложении [16]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 12 24 расширений Swift для более чистого кода [17]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 13 Как настроить большой iOS/tvOS/watchOS проект для большой команды и избежать конфликтов? [18]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 14 Время сборки Xcode с BitBar [19]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 15 MotionToastView: красивые «тосты» для iOS [20]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 16 Countdown: таймер на SwiftUI [21]

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

(+16) Внедрение IMA SDK в Android-приложениях [22]
(+11) Автотесты на Android. Картина целиком [23]
(+11) Декомпилируем приложение xiaomi сканер и забираем результат сканирования [24]
(+1) История про «боль» и как мы ее исправляем [25]
Анализ Android-рынка в Китае [26]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 18 Отключение Jetifier [27]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 19 Написание эффективных Layouts [28]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 20 Google Play In-App Review API: интеграция и опыт работы [29]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 21 Более умные приложения с Awareness API [30]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 22 Создание лучшего и более чистого RecyclerView.Adapter с Kiel [31]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 23 Обнаружение объектов в Android с помощью Firebase ML Kit [32]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 24 Activities не то, что вы думаете [33]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 25 Android MVVM с Firebase Firestore [34]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 26 Кодлабы для новых игровых технологий Android [35]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 27 Добавление удивительных переходов в Android-приложение с помощью Material Motion [36]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 28 Фрагменты: восстановление внутреннего устройства [37]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 29 MovieHunt: правильная архитектура кино для Android [38]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 30 InstaGrabber: открытый клиент Instagram [39]

Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 31 Разработка

(+29) Восприятие интерфейсов пользователями на примере панелей из Lego [40]
(+21) Data-driven подход к разработке контента: как мы создаем роботов в War Robots [41]
(+14) Глоток свободы: как флеш-игры повлияли на игровую индустрию [42]
(+7) Сервис на языке Dart: каркас серверного приложения [43]
(+6) Mind Map в тестировании — или легкий способ тестировать сложные приложения [44]
(+1) Выбор мобильных устройств: пошаговая инструкция для начинающих QA. Часть II [45]
Хочу в геймдев #11: как попасть в зарубежную геймдев-компанию [46]
Podlodka #177: криптография [47]
Золотой век программирования закончился? [48]
Открыт прием заявок на чемпионат по программированию Yandex Cup [49]
Обзор рынка мобильной разработки в кризис: что происходит и к чему готовятся агентства? [50]
5 принципов качественного UI [51]
Появление дизайнеров-полубогов. ИИ и машинное обучение [52]
Аффордансы в дизайне. Дизайн привычных вещей [53]
Как создать иллюстрации, когда не умеешь рисовать [54]
Дизайн приложений: примеры для вдохновения #13 [55]
FigmaExport: как автоматизировать экспорт UI-Kit из Figma в Xcode и Android Studio проекты [56]
Как формируется стоимость разработки мобильного приложения? [57]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 32 Делайте больше, делая меньше [58]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 33 React Native против Flutter: решение ожидается в 2020 году [59]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 34 6 месяцев использования GraphQL [60]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 35 Разработка Open Source системы иконок в Microsoft [61]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 36 Создание чистого приложения «Game of Life» на Flutter с использованием гексагональной архитектуры и TDD [62]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 37 Как определять токсичные вакансии разработчиков по их описаниям [63]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 38 Захватит ли ИИ UX? [64]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 39 Фреймворк быстрых UX-исследований [65]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 40 Почему я отказался от Google Firestore (и никогда не вернусь) [66]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 41 4 признака неопытного разработчика [67]

Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 42 Аналитика, маркетинг и монетизация

(+7) Объединяем закрытый WhatsApp и открытый SIP – Часть 1 [68]
Почему действия Epic вредят игровой индустрии [69]
Epic запускает чемпионат #FreeFortnite [70]
iPhone с предустановленным Fortnite продают за $10,000 [71]
Facebook поддержал Epic в борьбе с монополией Apple [72]
Взлет приложений для здоровья и фитнеса в 2020 [73]
myTarget оценивает влияния наружной рекламы на установки приложений [74]
Яндекс запустил супер-приложение Go, помогающее решать повседневные задачи в городе [75]
Likee почти догнал TikTok [76]
Симуляторы показали самый большой рост в 1 полугодии 2020 [77]
App Annie: как изменилось поведение пользователей в мобайле в первом полугодии 2020 [78]
Что нужно учесть при оптимизации страницы приложения на иностранные языки [79]
Как мы за 2 месяца бесплатно получили 400 тысяч установок из TikTok [80]

Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 43 AI, Устройства, IoT

(+110) Проект «часов Уизли» с демонстрацией местоположения членов семьи [81]
(+45) Склеиваем несколько фотографий в одну длинную с помощью машинного обучения [82]
(+13) Спасти рядового датасайнтиста. Как работать над компьютерным зрением, чтобы сделать проект и не потерять себя [83]
(+4) Интернет автомобилей: кому нужны данные о вашей езде [84]
Рынок умных часов растет [85]
BlackBerry готовит новый смартфон с клавиатурой [86]
Университет машинного обучения Amazon открывает свои курсы для всех [87]
Google AI Vision и Text to Speech на Raspberry Pi [88]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 44 Как создать собственного личного AI-помощника с помощью Python [89]
Дайджест интересных материалов для мобильного разработчика #358 (17 — 23 августа) - 45 AI учится играть в Super Mario Bros! [90]

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

Автор: DigitalEcosystems

Источник [93]


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

Путь до страницы источника: https://www.pvsm.ru/razrabotka-pod-ios/356258

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

[1] «В карантин нагрузка выросла в 5 раз, но мы были готовы». Как Lingualeo переехал на PostgreSQL с 23 млн юзеров: https://habr.com/ru/company/lingualeo/blog/515530/

[2] «Остановите Total Commander!» или главная проблема свободного ПО: https://habr.com/ru/post/515800/

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

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

[5] Airport — маркетплейс для приложений в TestFlight: https://habr.com/ru/company/vdsina/blog/515908/

[6] Как мы загружали банковскую карту из iPhone в брелок: https://habr.com/ru/company/cardsmobile/blog/515602/

[7] Знакомимся с Needle, системой внедрения зависимостей на Swift: https://habr.com/ru/company/joom/blog/514784/

[8] Обновление Lightroom удалило все пользовательские фотографии на iOS: https://apptractor.ru/info/news/lightroom-down.html

[9] Apple отзывает сертификаты разработчиков у Epic Games и ставит под удар Unreal Engine: https://apptractor.ru/info/news/apples-epic-unreal.html

[10] Как подготовиться к iOS 14 и новым правилам конфиденциальности Apple: https://apptractor.ru/marketing-monetization/adjust-ios-14-guide.html

[11] Анимация View в SwiftUI: https://medium.com/better-programming/animate-views-in-swiftui-5a9e7a2be21

[12] Как я получил свою первую работу iOS-разработчика: https://getonthestore.com/entry-level-jobs/

[13] Организация вашего Swift-кода в Xcode с помощью локальных пакетов: https://medium.com/swlh/organizing-your-xcode-swift-code-with-local-packages-469cda06f82d

[14] Микровзаимодействия в SwiftUI — анимация кнопок меню: https://uxdesign.cc/microinteractions-in-swiftui-menu-button-animation-5d60f802fe5d

[15] Новое в области искусственного интеллекта в iOS 14: https://heartbeat.fritz.ai/advancements-in-artificial-intelligence-in-ios-14-c1602f5d4951

[16] Как создать вариант сборки в iOS-приложении: https://medium.com/tunaiku-tech/how-to-create-build-variant-in-ios-application-66dfeb5bd091

[17] 24 расширений Swift для более чистого кода: https://medium.com/better-programming/24-swift-extensions-for-cleaner-code-41e250c9c4c3

[18] Как настроить большой iOS/tvOS/watchOS проект для большой команды и избежать конфликтов?: https://medium.com/macoclock/how-to-setup-a-large-ios-tvos-watchos-project-for-a-large-team-and-avoid-conflicts-62903a717ffa

[19] Время сборки Xcode с BitBar: https://apptractor.ru/info/github/bitbar-xcode.html

[20] MotionToastView: красивые «тосты» для iOS: https://apptractor.ru/info/github/motiontoastview.html

[21] Countdown: таймер на SwiftUI: https://apptractor.ru/info/github/countdown.html

[22] Внедрение IMA SDK в Android-приложениях: https://habr.com/ru/company/ivi/blog/515430/

[23] Автотесты на Android. Картина целиком: https://habr.com/ru/company/kaspersky/blog/510230/

[24] Декомпилируем приложение xiaomi сканер и забираем результат сканирования: https://habr.com/ru/post/515590/

[25] История про «боль» и как мы ее исправляем: https://habr.com/ru/post/515390/

[26] Анализ Android-рынка в Китае: https://apptractor.ru/info/articles/analiz-android-rynka-v-kitae.html

[27] Отключение Jetifier: https://adambennett.dev/2020/08/disabling-jetifier/

[28] Написание эффективных Layouts: https://proandroiddev.com/writing-performant-layouts-3bf2a18d4a61

[29] Google Play In-App Review API: интеграция и опыт работы: https://proandroiddev.com/google-play-in-app-review-api-integration-and-experience-a96b30805345

[30] Более умные приложения с Awareness API: https://proandroiddev.com/smarter-apps-with-awareness-api-a39d96592f09

[31] Создание лучшего и более чистого RecyclerView.Adapter с Kiel: https://medium.com/swlh/build-better-and-clean-recyclerview-adapter-with-kiel-a129882c1e1

[32] Обнаружение объектов в Android с помощью Firebase ML Kit: https://heartbeat.fritz.ai/object-detection-in-android-using-firebase-ml-kit-c9230493a2a1

[33] Activities не то, что вы думаете: https://gabrielfv.com/android/architecture/en-us/2020/08/18/activities-are-not-what-you-think-pt-1.html

[34] Android MVVM с Firebase Firestore: https://medium.com/firebase-developers/android-mvvm-firestore-37c3a8d65404

[35] Кодлабы для новых игровых технологий Android: https://medium.com/androiddevelopers/codelabs-for-new-android-game-technologies-486a847eb92e

[36] Добавление удивительных переходов в Android-приложение с помощью Material Motion: https://medium.com/swlh/adding-amazing-transitions-to-your-android-app-easily-using-material-motion-f0cd92463b39

[37] Фрагменты: восстановление внутреннего устройства: https://medium.com/androiddevelopers/fragments-rebuilding-the-internals-61913f8bf48e

[38] MovieHunt: правильная архитектура кино для Android: https://apptractor.ru/info/github/moviehunt.html

[39] InstaGrabber: открытый клиент Instagram: https://apptractor.ru/info/github/instagrabber.html

[40] Восприятие интерфейсов пользователями на примере панелей из Lego: https://habr.com/ru/post/515768/

[41] Data-driven подход к разработке контента: как мы создаем роботов в War Robots: https://habr.com/ru/company/pixonic/blog/515718/

[42] Глоток свободы: как флеш-игры повлияли на игровую индустрию: https://habr.com/ru/company/leader-id/blog/514192/

[43] Сервис на языке Dart: каркас серверного приложения: https://habr.com/ru/company/surfstudio/blog/515226/

[44] Mind Map в тестировании — или легкий способ тестировать сложные приложения: https://habr.com/ru/post/515990/

[45] Выбор мобильных устройств: пошаговая инструкция для начинающих QA. Часть II: https://habr.com/ru/post/516160/

[46] Хочу в геймдев #11: как попасть в зарубежную геймдев-компанию: https://apptractor.ru/info/media/gamedev-11.html

[47] Podlodka #177: криптография: https://apptractor.ru/info/media/podlodka-177.html

[48] Золотой век программирования закончился?: https://apptractor.ru/develop/coding/golden-age-of-programming.html

[49] Открыт прием заявок на чемпионат по программированию Yandex Cup: https://apptractor.ru/develop/coding/yandex-cup-20.html

[50] Обзор рынка мобильной разработки в кризис: что происходит и к чему готовятся агентства?: https://workspace.ru/blog/mobile-app-development-market-2020/

[51] 5 принципов качественного UI: https://vc.ru/design/150653-5-principov-kachestvennogo-ui

[52] Появление дизайнеров-полубогов. ИИ и машинное обучение: https://ux.pub/poyavlenie-dizaynerov-polubogov-ii-i-mashinnoe-obuchenie/

[53] Аффордансы в дизайне. Дизайн привычных вещей: https://ux.pub/affordansy-v-dizayne-dizayn-privychnyh-veschey/

[54] Как создать иллюстрации, когда не умеешь рисовать: https://ux.pub/kak-sozdat-illyustratsii-kogda-ne-umeesh-risovat/

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

[56] FigmaExport: как автоматизировать экспорт UI-Kit из Figma в Xcode и Android Studio проекты: https://vc.ru/dev/151601-figmaexport-kak-avtomatizirovat-eksport-ui-kit-iz-figma-v-xcode-i-android-studio-proekty

[57] Как формируется стоимость разработки мобильного приложения?: https://vc.ru/dev/150729-kak-formiruetsya-stoimost-razrabotki-mobilnogo-prilozheniya

[58] Делайте больше, делая меньше: https://www.zainrizvi.io/blog/do-more-by-doing-less/

[59] React Native против Flutter: решение ожидается в 2020 году: https://medium.com/better-programming/react-native-vs-flutter-a-decision-pending-in-2020-65bf5835c8ed

[60] 6 месяцев использования GraphQL: https://levelup.gitconnected.com/6-months-of-using-graphql-faa0fb68b4af

[61] Разработка Open Source системы иконок в Microsoft: https://medium.com/microsoft-design/developing-an-open-source-icon-system-at-microsoft-b1796315df9f

[62] Создание чистого приложения «Game of Life» на Flutter с использованием гексагональной архитектуры и TDD: https://medium.com/swlh/build-a-clean-game-of-life-app-in-flutter-using-hexagonal-architecture-and-tdd-part-2-830916baf7c5

[63] Как определять токсичные вакансии разработчиков по их описаниям: https://medium.com/swlh/how-to-spot-toxic-software-jobs-from-their-descriptions-c53cf224417f

[64] Захватит ли ИИ UX?: https://uxdesign.cc/will-ai-take-over-ux-ea164a2ed39f

[65] Фреймворк быстрых UX-исследований: https://uxdesign.cc/rapid-ux-research-framework-dcf43e67883d

[66] Почему я отказался от Google Firestore (и никогда не вернусь): https://medium.com/swlh/why-i-switched-away-from-google-firestore-and-will-never-go-back-e34cafb733b

[67] 4 признака неопытного разработчика: https://levelup.gitconnected.com/4-signs-of-an-inexperienced-developer-851966fdc6b1

[68] Объединяем закрытый WhatsApp и открытый SIP – Часть 1: https://habr.com/ru/post/515642/

[69] Почему действия Epic вредят игровой индустрии: https://vc.ru/u/578599-mi-hwa/151487-pochemu-deystviya-epic-vredyat-igrovoy-industrii

[70] Epic запускает чемпионат #FreeFortnite: https://apptractor.ru/info/conferences/freefortnite.html

[71] iPhone с предустановленным Fortnite продают за $10,000: https://apptractor.ru/info/devices/iphone-fortnite.html

[72] Facebook поддержал Epic в борьбе с монополией Apple: https://apptractor.ru/info/news/facebook-apple.html

[73] Взлет приложений для здоровья и фитнеса в 2020: https://apptractor.ru/measure/user-analytics/fitness-2020.html

[74] myTarget оценивает влияния наружной рекламы на установки приложений: https://apptractor.ru/marketing-monetization/app-promotion-campaign-analytics/mytarget-outdoor.html

[75] Яндекс запустил супер-приложение Go, помогающее решать повседневные задачи в городе: https://apptractor.ru/info/apps/yandex-go.html

[76] Likee почти догнал TikTok: https://apptractor.ru/info/techhype/likee-vs-tiktok.html

[77] Симуляторы показали самый большой рост в 1 полугодии 2020: https://apptractor.ru/measure/app-store-analytics/mobile-game-genre-growth-h1-2020.html

[78] App Annie: как изменилось поведение пользователей в мобайле в первом полугодии 2020: https://apptractor.ru/info/analytics/app-annie-kak-izmenilos-povedenie-polzovatelej-v-mobajle-v-pervom-polugodii-2020.html

[79] Что нужно учесть при оптимизации страницы приложения на иностранные языки: https://vc.ru/marketing/151430-chto-nuzhno-uchest-pri-optimizacii-stranicy-prilozheniya-na-inostrannye-yazyki

[80] Как мы за 2 месяца бесплатно получили 400 тысяч установок из TikTok: https://vc.ru/marketing/151597-kak-my-za-2-mesyaca-besplatno-poluchili-400-tysyach-ustanovok-iz-tiktok

[81] Проект «часов Уизли» с демонстрацией местоположения членов семьи: https://habr.com/ru/post/515536/

[82] Склеиваем несколько фотографий в одну длинную с помощью машинного обучения: https://habr.com/ru/post/516116/

[83] Спасти рядового датасайнтиста. Как работать над компьютерным зрением, чтобы сделать проект и не потерять себя: https://habr.com/ru/company/jetinfosystems/blog/515926/

[84] Интернет автомобилей: кому нужны данные о вашей езде: https://habr.com/ru/company/itelma/blog/515274/

[85] Рынок умных часов растет: https://apptractor.ru/info/analytics/smartwatch-market-2020.html

[86] BlackBerry готовит новый смартфон с клавиатурой: https://apptractor.ru/info/devices/blackberry-5g.html

[87] Университет машинного обучения Amazon открывает свои курсы для всех: https://apptractor.ru/learn/machine-learning-university.html

[88] Google AI Vision и Text to Speech на Raspberry Pi: https://medium.com/swlh/google-ai-vision-text-to-speech-on-a-raspberry-pi-875dc13b3d73

[89] Как создать собственного личного AI-помощника с помощью Python: https://towardsdatascience.com/how-to-build-your-own-ai-personal-assistant-using-python-f57247b4494b

[90] AI учится играть в Super Mario Bros!: https://www.youtube.com/watch?v=CI3FRsSAa_U

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

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

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