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

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

В этом выпуске нашего дайджеста — бинарная совместимость, разбор SwiftUI, ошибки пиксель-арта, традиционный уже ад инди-разработчика, Flutter с нуля до прода, бесплатные книги и SDK для роботов. Добро пожаловать!

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

Любая библиотека должна по возможности соблюдать бинарную совместимость. Если разные версии библиотеки в зависимостях несовместимы, то результатом будут краши в рантайме. С такой проблемой мы можем столкнуться, например, при добавлении поддержки Reaktive в MVICore.

Поговорим о eSIM (полное название embeddedSIM — то есть, встроенная SIM) — впаянных в гаджет (в отличие от привычных съёмных «симок») SIM-картах. Разберём, чем они лучше обычных SIM-карт и почему крупные мобильные операторы противодействуют внедрению новой технологии.

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

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

(+17) SwiftUI по полочкам [5]
Apple сообщает о рекордных результатах за первый квартал [6]
Фишки Swift: двойное нажатие Apple Pencil [7]
Пошаговая инструкция по интеграции Apple Pay в ваше мобильное приложение [8]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 6 Как создать карточку с видео на SwiftUI [9]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 7 Интервал между символами в UILabel [10]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 8 Реализация сервис-ориентированной архитектуры в Swift 5 [11]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 9 Пост мортем: сбой App Store 24.01.2020 [12]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 10 iOS 13: невоспетые герои 2019 года [13]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 11 Маски и оверлеи в SwiftUI [14]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 12 Превью ссылок в стиле Twitter для iOS-приложений на SwiftUI [15]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 13 Лучшие практики безопасности для iOS-приложений [16]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 14 5 расширений Swift, которые упростят вам жизнь [17]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 15 13 быстрых клавиш Xcode для повышения вашей продуктивности [18]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 16 Buildkite и Fastlane — iOS-разработчики станут лучше спать [19]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 17 Реализация экрана поиска с использованием MVVM и RxSwift [20]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 18 Instructions: руководства для пользователей на Swift [21]

Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 19 Android

(+23) Расширения в Kotlin. Опасный атавизм или полезный инструмент? [22]
(+22) Как научить телефон видеть красоту [23]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 20 Видео Google Play | Playtime 2019 [24]
Фишки Kotlin: самое часто встречающееся значение [25]
Android Broadcast #5: Как стать крутым разработчиком [26]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 21 История нашего большого переписывания Android-приложения [27]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 22 Динамические экраны с использованием server-driven UI в Android [28]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 23 Создание реактивного и гетерогенного адаптера в Kotlin [29]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 24 Как реализовать темную тему на Android [30]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 25 Корутины в Kotlin Coroutines: от простого к продвинутому [31]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 26 Организация Kotlin-кода [32]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 27 Безопасность Android-приложений: лучшие практики [33]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 28 Android: как исправить серьезную проблему в LiveData [34]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 29 Введение в анимацию с Jetpack Compose [35]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 30 Android-NFC: работа с NFC на Android [36]

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

(+26) Пиксель-арт для начинающих: исправляем типичные ошибки [37]
(+20) Как левел-дизайнеры используют приёмы теории архитектуры для создания игровых уровней [38]
(+20) Вывод внутриигровых сообщений с помощью Particle System  [39]
(+15) Ад инди-разработчика или как довести свой проект до релиза и не застрелиться в процессе [40]
(+10) Весенняя стажировка для мобильных разработчиков в Redmadrobot [41]
(+10) Особенности установления соединения между участниками сетевой игры типа «равный к равному» [42]
(+7) Игра, управляемая лицом, в масках Инстаграм, или двойной клик глазами [43]
(+5) React Native: новая веха в мобильной разработке Shopify [44]
(+2) 7 этапов эволюции тестирования в компании [45]
Как я изучал Flutter или meows.app с 0 до прода [46]
Podlodka #148: Корни инженерной культуры Восточной Европы [47]
Flutter Dev Podcast #12: Flutter Europe и пет-проекты [48]
Яндекс открыл набор на летнюю стажировку [49]
Бесплатная книга “Создание шутера от первого лица на Unity” [50]
Coderslang: приложение для изучения программирования [51]
Один день из жизни UX менеджера [52]
Почему не нужно копировать UX паттерны крупных успешных компаний [53]
UX-тренды банкинга 2020 года: искусственный интеллект, голосовые помощники и гиперперсонализация [54]
Как сделать идеальное мобильное приложение для интернет-магазина [55]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 32 Создание инфраструктуры персонального поиска для ваших знаний и кода [56]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 33 9 действий для лучшего обмена знаниями между командами разработчиков [57]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 34 Истории в Spotify [58]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 35 Почти 10 уроков разработки игр, которые я усвоил в своем инди-приключении [59]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 36 Мобильный UI: 13 основных паттернов дизайна приложений, о которые нужно знать [60]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 37 Как должно было быть создано приложение SoundCloud для iOS — исследование UX [61]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 38 Понимание анимации загрузки — ее типы и применения [62]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 39 Nebula: сетевой фреймворк от Slack [63]

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

Google ввел ограничения на атрибуцию в App Campaigns на iOS [64]
Расходы европейских пользователей на приложения выросли на 19%, Россия на 4 месте [65]
Мессенджер для продавцов Attentive привлек еще $70 млн. [66]
Играть по-взрослому: кейс Kunlun и Bidease [67]
В 1-800-Flowers сделали AR-букеты [68]
Ahoi: дейтинг с видео [69]
Как в Fishing Clash справились со скамом в Facebook [70]
SuperAwesome привлек еще $17 млн на детские технологии [71]
Busuu покупает Verbling [72]
Reroll – блокнот для характеристик D&D героев. Наш опыт запуска на Kickstarter и сбора $20К за 8 часов [73]
Как увеличить конверсию в установки при помощи экспериментов в сторах [74]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 41 CCPA – что это значит для вашего приложения [75]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 42 Монетизации игр на развивающихся рынках с помощью поведенческой науки [76]

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

(+32) Адаптивная фоновая подсветка для телевизора на Raspberry Pi – аналог Ambilight [77]
(+19) Туториал по uplift моделированию. Часть 1 [78]
(+17) Нейросети в производстве зубных протезов [79]
(+14) Хьюстон! У нас проблемы? От «умного» улья к роболетку и «кластеру» на ардуино [80]
(+4) Как защитить IIoT-решения, используемые в социальной инфраструктуре. И от чего? [81]
(+2) DDoS от кофеварки [82]
Бесплатная книга «Искусственный интеллект в играх 3» [83]
Google запустил MediaPipe в веб [84]
Как я переехал в США и запустил IoT-платформу с полумиллионом пользователей [85]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 44 Чему учиться разработчику встраиваемых систем [86]
Дайджест интересных материалов для мобильного разработчика #331 (27 января — 02 февраля) - 45 Boston Dynamics выложила SDK для робота Spot [87]

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

Автор: DigitalEcosystems

Источник [90]


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

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

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

[1] Бинарная совместимость Reaktive: как мы её обеспечиваем: https://habr.com/ru/company/badoo/blog/484712/

[2] Разбираемся с eSIM (+ интервью с экспертом): https://habr.com/ru/company/edison/blog/485462/

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

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

[5] SwiftUI по полочкам: https://habr.com/ru/post/485548/

[6] Apple сообщает о рекордных результатах за первый квартал: https://apptractor.ru/info/news/apple-record.html

[7] Фишки Swift: двойное нажатие Apple Pencil: https://apptractor.ru/info/github/apple-pencil-double-taps.html

[8] Пошаговая инструкция по интеграции Apple Pay в ваше мобильное приложение: https://vc.ru/dev/103118-poshagovaya-instrukciya-po-integracii-apple-pay-v-vashe-mobilnoe-prilozhenie

[9] Как создать карточку с видео на SwiftUI: https://medium.com/flawless-app-stories/learn-how-to-create-a-video-card-using-swiftui-fb0d7a3fe7da

[10] Интервал между символами в UILabel: https://medium.com/flawless-app-stories/spacing-between-each-character-in-uilabel-swift-ios-7c7e61cacb59

[11] Реализация сервис-ориентированной архитектуры в Swift 5: https://medium.com/better-programming/implement-a-service-oriented-architecture-in-swift-5-fc70b8117616

[12] Пост мортем: сбой App Store 24.01.2020: https://www.revenuecat.com/blog/post-mortem-2020-01-24-app-store-outage

[13] iOS 13: невоспетые герои 2019 года: https://medium.com/better-programming/ios-13-the-unsung-heroes-of-2019-f6eccb4a017

[14] Маски и оверлеи в SwiftUI: https://medium.com/better-programming/masks-and-overlays-in-swiftui-8d00ff2264dc

[15] Превью ссылок в стиле Twitter для iOS-приложений на SwiftUI: https://medium.com/better-programming/create-link-preview-without-linkpresentation-4af049966854

[16] Лучшие практики безопасности для iOS-приложений: https://quickbirdstudios.com/blog/ios-app-security-best-practices/

[17] 5 расширений Swift, которые упростят вам жизнь: https://medium.com/@balzsvincze/5-swift-extensions-to-make-your-life-easier-1accb384cbac

[18] 13 быстрых клавиш Xcode для повышения вашей продуктивности: https://medium.com/better-programming/13-xcode-shortcuts-to-boost-your-productivity-329c90512309

[19] Buildkite и Fastlane — iOS-разработчики станут лучше спать: https://medium.com/engineering-at-tink/buildkite-fastlane-the-key-to-better-sleep-for-ios-developers-2d01f429f95c

[20] Реализация экрана поиска с использованием MVVM и RxSwift: https://medium.com/@andres.portillo/implementing-a-generic-search-screen-using-mvvm-and-rxswift-cd1d6fb134c

[21] Instructions: руководства для пользователей на Swift: https://apptractor.ru/info/github/instructions.html

[22] Расширения в Kotlin. Опасный атавизм или полезный инструмент?: https://habr.com/ru/company/tinkoff/blog/485760/

[23] Как научить телефон видеть красоту: https://habr.com/ru/post/485858/

[24] Видео Google Play | Playtime 2019: https://apptractor.ru/info/media/google-play-playtime-2019.html

[25] Фишки Kotlin: самое часто встречающееся значение: https://apptractor.ru/info/github/kotlin-most-frequent-value.html

[26] Android Broadcast #5: Как стать крутым разработчиком: https://apptractor.ru/develop/android-broadcast-5.html

[27] История нашего большого переписывания Android-приложения: https://blog.gojekengineering.com/the-story-of-our-big-android-app-rewrite-6ede1cc3ad9a

[28] Динамические экраны с использованием server-driven UI в Android: https://proandroiddev.com/dynamic-screens-using-server-driven-ui-in-android-262f1e7875c1

[29] Создание реактивного и гетерогенного адаптера в Kotlin: https://medium.com/android-dev-hacks/building-a-reactive-heterogeneous-adapter-in-kotlin-eed9487df29b

[30] Как реализовать темную тему на Android: https://medium.com/ideas-by-idean/how-to-implement-a-dark-theme-on-android-bc615fccf2d8

[31] Корутины в Kotlin Coroutines: от простого к продвинутому: https://medium.com/better-programming/kotlin-coroutines-from-basics-to-advanced-ad3eb1421006

[32] Организация Kotlin-кода: https://arturdryomov.dev/posts/kotlin-code-organization/

[33] Безопасность Android-приложений: лучшие практики: https://quickbirdstudios.com/blog/android-app-security-best-practices/

[34] Android: как исправить серьезную проблему в LiveData: https://medium.com/better-programming/how-to-fix-a-serious-problem-in-livedata-android-594a3f18e981

[35] Введение в анимацию с Jetpack Compose: https://proandroiddev.com/rotating-pokeball-animation-with-jetpack-compose-e3e839782cba

[36] Android-NFC: работа с NFC на Android: https://apptractor.ru/info/github/android-nfc.html

[37] Пиксель-арт для начинающих: исправляем типичные ошибки: https://habr.com/ru/company/playgendary/blog/485704/

[38] Как левел-дизайнеры используют приёмы теории архитектуры для создания игровых уровней: https://habr.com/ru/company/pixonic/blog/486376/

[39] Вывод внутриигровых сообщений с помощью Particle System : https://habr.com/ru/post/486260/

[40] Ад инди-разработчика или как довести свой проект до релиза и не застрелиться в процессе: https://habr.com/ru/post/486564/

[41] Весенняя стажировка для мобильных разработчиков в Redmadrobot: https://habr.com/ru/company/redmadrobot/blog/485152/

[42] Особенности установления соединения между участниками сетевой игры типа «равный к равному»: https://habr.com/ru/post/485576/

[43] Игра, управляемая лицом, в масках Инстаграм, или двойной клик глазами: https://habr.com/ru/post/486498/

[44] React Native: новая веха в мобильной разработке Shopify: https://habr.com/ru/company/vdsina/blog/486396/

[45] 7 этапов эволюции тестирования в компании: https://habr.com/ru/post/485812/

[46] Как я изучал Flutter или meows.app с 0 до прода: https://apptractor.ru/info/media/meows-app-flutter.html

[47] Podlodka #148: Корни инженерной культуры Восточной Европы: https://apptractor.ru/info/media/podlodka-148.html

[48] Flutter Dev Podcast #12: Flutter Europe и пет-проекты: https://apptractor.ru/info/media/flutter-dev-podcast-12.html

[49] Яндекс открыл набор на летнюю стажировку: https://apptractor.ru/learn/yaintern.html

[50] Бесплатная книга “Создание шутера от первого лица на Unity”: https://apptractor.ru/learn/build-your-own-first-person-shooter-in-unity.html

[51] Coderslang: приложение для изучения программирования: https://apptractor.ru/info/apps/coderslang.html

[52] Один день из жизни UX менеджера: https://bit.ly/2RujTRU

[53] Почему не нужно копировать UX паттерны крупных успешных компаний: https://ux.pub/pochemu-ne-nuzhno-kopirovat-ux-patterny-krupnyh-uspeshnyh-kompaniy/

[54] UX-тренды банкинга 2020 года: искусственный интеллект, голосовые помощники и гиперперсонализация: https://vc.ru/design/102910-ux-trendy-bankinga-2020-goda-iskusstvennyy-intellekt-golosovye-pomoshchniki-i-giperpersonalizaciya

[55] Как сделать идеальное мобильное приложение для интернет-магазина: https://vc.ru/dev/95855-kak-sdelat-idealnoe-mobilnoe-prilozhenie-dlya-internet-magazina

[56] Создание инфраструктуры персонального поиска для ваших знаний и кода: https://beepb00p.xyz/pkm-search.html

[57] 9 действий для лучшего обмена знаниями между командами разработчиков: https://medium.com/better-programming/9-actions-to-boost-knowledge-sharing-among-development-teams-ad5f7acd2048

[58] Истории в Spotify: https://uxplanet.org/spotify-stories-f6737dbed4dc

[59] Почти 10 уроков разработки игр, которые я усвоил в своем инди-приключении: https://techhype.io/?story=almost-10-gamedev-lessons-ive-learned-in-my-indie-adventure

[60] Мобильный UI: 13 основных паттернов дизайна приложений, о которые нужно знать: https://uxdesign.cc/mobile-ui-13-basic-patterns-of-app-ui-design-to-know-about-d3f7c6176f13

[61] Как должно было быть создано приложение SoundCloud для iOS — исследование UX: https://uxdesign.cc/the-ios-app-soundcloud-should-be-designing-1085e6174abe

[62] Понимание анимации загрузки — ее типы и применения: https://uxdesign.cc/understanding-loading-animation-types-and-its-application-e41ba914b847

[63] Nebula: сетевой фреймворк от Slack: https://apptractor.ru/info/github/nebula.html

[64] Google ввел ограничения на атрибуцию в App Campaigns на iOS: https://apptractor.ru/info/news/google-atribution.html

[65] Расходы европейских пользователей на приложения выросли на 19%, Россия на 4 месте: https://apptractor.ru/measure/app-store-analytics/european-mobile-2019.html

[66] Мессенджер для продавцов Attentive привлек еще $70 млн.: https://apptractor.ru/info/news/attentive.html

[67] Играть по-взрослому: кейс Kunlun и Bidease: https://apptractor.ru/marketing-monetization/ad-networks/moments-choose-your-story.html

[68] В 1-800-Flowers сделали AR-букеты: https://apptractor.ru/info/news/1-800-flowers-ar.html

[69] Ahoi: дейтинг с видео: https://apptractor.ru/info/techhype/ahoi.html

[70] Как в Fishing Clash справились со скамом в Facebook: https://apptractor.ru/marketing-monetization/fishing-clash-facebook-scam.html

[71] SuperAwesome привлек еще $17 млн на детские технологии: https://apptractor.ru/info/news/superawesome-17.html

[72] Busuu покупает Verbling: https://apptractor.ru/info/news/busuu-verbling.html

[73] Reroll – блокнот для характеристик D&D героев. Наш опыт запуска на Kickstarter и сбора $20К за 8 часов: https://vc.ru/tribuna/103070-reroll-bloknot-dlya-harakteristik-d-d-geroev-nash-opyt-zapuska-na-kickstarter-i-sbora-20k-za-8-chasov

[74] Как увеличить конверсию в установки при помощи экспериментов в сторах: https://vc.ru/marketing/103566-kak-uvelichit-konversiyu-v-ustanovki-pri-pomoshchi-eksperimentov-v-storah

[75] CCPA – что это значит для вашего приложения: https://techhype.io/?story=ccpa-what-it-means-for-you-and-your-app

[76] Монетизации игр на развивающихся рынках с помощью поведенческой науки: https://medium.com/googleplaydev/unlocking-games-monetization-in-emerging-markets-with-behavioral-science-747037cb9386

[77] Адаптивная фоновая подсветка для телевизора на Raspberry Pi – аналог Ambilight: https://habr.com/ru/post/486106/

[78] Туториал по uplift моделированию. Часть 1: https://habr.com/ru/company/ru_mts/blog/485980/

[79] Нейросети в производстве зубных протезов: https://habr.com/ru/company/oleg-bunin/blog/486028/

[80] Хьюстон! У нас проблемы? От «умного» улья к роболетку и «кластеру» на ардуино: https://habr.com/ru/post/486224/

[81] Как защитить IIoT-решения, используемые в социальной инфраструктуре. И от чего?: https://habr.com/ru/company/toshibarus/blog/484726/

[82] DDoS от кофеварки: https://habr.com/ru/post/485862/

[83] Бесплатная книга «Искусственный интеллект в играх 3»: https://apptractor.ru/info/media/game-ai-pro-3.html

[84] Google запустил MediaPipe в веб: https://apptractor.ru/info/news/mediapipe.html

[85] Как я переехал в США и запустил IoT-платформу с полумиллионом пользователей: https://vc.ru/tribuna/103787-kak-ya-pereehal-v-ssha-i-zapustil-iot-platformu-s-polumillionom-polzovateley

[86] Чему учиться разработчику встраиваемых систем: https://medium.com/swlh/what-to-learn-as-an-embedded-developer-4a6b03752d6c

[87] Boston Dynamics выложила SDK для робота Spot: https://apptractor.ru/develop/sdk/spot-sdk.html

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

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

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