Очередной дайджест для мобильных разработчиков — рассказываем про бесконечный скролл, про ошибочную привязку карт, про обновления и потери, A/B-тестирование и сокращение рекламных доходов.
![](https://habrastorage.org/webt/ai/-r/tl/ai-rtlrg34vrfj1qnkkzdlc_ses.png)
Каждый разработчик под мобильные платформы постоянно сталкивается с задачей, которая не решается одним единственным способом. Всегда есть несколько путей, — какие-то быстрые, какие-то сложные, — и у каждого свои достоинства и недостатки.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
Telegram-канале.
iOS
• (+13) Ошибка – это не UIAlertController
• (+10) Оптимизация времени сборки — Часть 1
• (+6) AppCode 2020.1: улучшения быстродействия, автодополнение до конца индексации, генерация документации и многое другое
• (+3) CoreData модель из кода. Или «Как обойтись без .XCDataModel» (Часть 1)
• (0) Валидация полей iOS — быстро и просто
• В iOS обнаружены 2 критические уязвимости
• Все, что вы хотели знать о функции Sign in with Apple
• Новый iPhone SE вызвал ажиотажный спрос
•
Эффектная радужная анимация на SwiftUI
•
Как сделать многострочное текстовое поле в SwiftUI
•
Коллекция слайдеров для SwiftUI
•
Использование TensorFlow.js в iOS-приложении для обнаружения объектов
•
Баннер уведомления на SwiftUI
•
Function Builders в Swift и SwiftUI
•
Возвращаем пользователей в приложение: глубокие ссылки в iOS
•
Распространение скомпилированных статических Swift-библиотек и статических фреймворков Swift
•
GraphQL, Combine и SwiftUI
•
Инъекция зависимостей в iOS на Swift с Swinject и SwinjectStoryboard
•
Proton: лучший UITextView
Android
• (+4) ПШЕ AndroidStudio
• (+4) Android в промышленном контроллере
• (+3) Backend-Driven UI с помощью виджетов
• (+3) Получаем и переключаем WebVTT субтитры в ExoPlayer
• Встраиваем In-App Updates в приложение
• Вышла третья превью-версия Android 11
• Android Broadcast #14: Android инфраструктура Авито в Open Source
• Android Broadcast #13: Android SafetyNet. Надежно ли?
• Яндекс выпустил свой Android TV
• Как мы использовали Kotlin для создания приложения для мобильного дизайна
• Android Dev Podcast #112: Новости. Subscriptions best practices. Merge Adapter. LayoutInspector 3D. CameraX
• Google потребовала от разработчиков приложений чётко показывать стоимость и условия отмены подписки
•
Сканирование QR с помощью CameraX
•
Realtime Database против Firestore: 9 основных отличий
•
Database Inspector
•
One Tap sign in для Android-приложений
•
Создаем плеер YouTube на Kotlin
•
Как настроить биометрическую аутентификацию в Android
•
Отмены в корутинах
•
Кастомные Listener-ы в Android
•
ProtonMail: защищенная почта
•
Uber Car Animation Android: анимация машины
•
Kiwi Browser: быстрый браузер для Android
Разработка
• (+53) Яндекс автоматически привязывает карту к другому аккаунту
• (+25) Рассказы разработчиков ваших любимых игр о том, чем они гордятся
• (+23) Как изгонять вирусов на Corona SDK
• (+19) Оптимизация рендера под Mobile, часть 2. Основные семейства современных мобильных GPU
• (+15) Создание интерфейса для игры
• (+12) Hive — быстрая локальная база для Flutter, Dart
• (+8) Ошибки, которые погубят проект любой сложности. Опыт менеджеров Redmadrobot
• (+4) Как тестировать на удаленке, чтобы не запороть продукт и свою жизнь
• Podlodka #160: Машинный перевод
• 500,000 разработчиков использует Flutter каждый месяц
• IT-отрасль может сократиться на 18–20 тыс. программистов
• Google объявил о доступности Cloud Healthcare API
• Как я потратил полгода на обновление приложения и потерял 10 тысяч пользователей
•
Как сделать красивый Low Poly арт для игры (Blender, Unity)
•
Если бы языки программирования имели честные слоганы
•
Firebase Realtime Database и логин в систему для Android и iOS
•
7 шагов к тому, чтобы стать Моцартом программирования до конца карантина
•
Миграция Flutter приложения в Web
•
Audio Player for Flutter: плеер в стиле Apple Music
•
33 GitHub-репозитория для разработчиков мобильных приложений
Аналитика, маркетинг и монетизация
• (+44) Как перестать беспокоиться и начать верить A/B-тестам
• (+6) Большой гайд по A/B-тестированию
• (+6) Postman — Автотестирование метрики в AppMetrica
• (+3) 9 идей A/B-тестирования роликов для мобильных игр
• Суперпозиция аналитика: Парадоксы и когнитивные искажения. Как аналитику маневрировать в потоке данных.
• App Annie назвала самые популярные приложения среди россиян в период с января по апрель 2020 года
• В Epic Games сдались — Fortnite вышел в Google Play
• OneSignal запустил Advanced Analytics
• FunCorp: доходы от мобильной рекламы в марте упали на 50%
• Houseparty: видеоконференции с играми
• Откровенная история российского стартапа, который привлёк более $1 млн в приложение для детей
•
Как продвигать приложение: полное руководство 2020
AI, Устройства, IoT
• (+57) Боремся с пробками в маленьком городе за небольшой бюджет: результаты 6 месяцев проекта
• (+18) Artefact: AR в музее глазами разработчика, аналитика, искусствоведа
• (+13) Базы данных в IIoT-платформе: как Mail.ru Cloud Solutions работают с петабайтами данных от множества устройств
• (+12) Object Detection. Распознавай и властвуй. Часть 2
• (+5) Ошибки при проектировании интерфейса VR, VR для дизайнеров интерфейсов
• (+4) Часто задаваемые вопросы о VR шлемах и играх
• Magic Leap увольняет половину сотрудников и уходит с потребительского рынка
• Искусственный интеллект Accenture, Sulubaii и Intel помогает сохранять коралловый риф
• Падение на рынке смартфонов в третьем квартале 2020 года составит не менее 40%
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
![](https://habrastorage.org/webt/ai/-r/tl/ai-rtlrg34vrfj1qnkkzdlc_ses.png)
Каждый разработчик под мобильные платформы постоянно сталкивается с задачей, которая не решается одним единственным способом. Всегда есть несколько путей, — какие-то быстрые, какие-то сложные, — и у каждого свои достоинства и недостатки.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
![](https://habrastorage.org/webt/5e/k7/bf/5ek7bfhjzilma-pbharuioaa7lw.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• (+13) Ошибка – это не UIAlertController
• (+10) Оптимизация времени сборки — Часть 1
• (+6) AppCode 2020.1: улучшения быстродействия, автодополнение до конца индексации, генерация документации и многое другое
• (+3) CoreData модель из кода. Или «Как обойтись без .XCDataModel» (Часть 1)
• (0) Валидация полей iOS — быстро и просто
• В iOS обнаружены 2 критические уязвимости
• Все, что вы хотели знать о функции Sign in with Apple
• Новый iPhone SE вызвал ажиотажный спрос
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• (+4) ПШЕ AndroidStudio
• (+4) Android в промышленном контроллере
• (+3) Backend-Driven UI с помощью виджетов
• (+3) Получаем и переключаем WebVTT субтитры в ExoPlayer
• Встраиваем In-App Updates в приложение
• Вышла третья превью-версия Android 11
• Android Broadcast #14: Android инфраструктура Авито в Open Source
• Android Broadcast #13: Android SafetyNet. Надежно ли?
• Яндекс выпустил свой Android TV
• Как мы использовали Kotlin для создания приложения для мобильного дизайна
• Android Dev Podcast #112: Новости. Subscriptions best practices. Merge Adapter. LayoutInspector 3D. CameraX
• Google потребовала от разработчиков приложений чётко показывать стоимость и условия отмены подписки
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• (+53) Яндекс автоматически привязывает карту к другому аккаунту
• (+25) Рассказы разработчиков ваших любимых игр о том, чем они гордятся
• (+23) Как изгонять вирусов на Corona SDK
• (+19) Оптимизация рендера под Mobile, часть 2. Основные семейства современных мобильных GPU
• (+15) Создание интерфейса для игры
• (+12) Hive — быстрая локальная база для Flutter, Dart
• (+8) Ошибки, которые погубят проект любой сложности. Опыт менеджеров Redmadrobot
• (+4) Как тестировать на удаленке, чтобы не запороть продукт и свою жизнь
• Podlodka #160: Машинный перевод
• 500,000 разработчиков использует Flutter каждый месяц
• IT-отрасль может сократиться на 18–20 тыс. программистов
• Google объявил о доступности Cloud Healthcare API
• Как я потратил полгода на обновление приложения и потерял 10 тысяч пользователей
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• (+44) Как перестать беспокоиться и начать верить A/B-тестам
• (+6) Большой гайд по A/B-тестированию
• (+6) Postman — Автотестирование метрики в AppMetrica
• (+3) 9 идей A/B-тестирования роликов для мобильных игр
• Суперпозиция аналитика: Парадоксы и когнитивные искажения. Как аналитику маневрировать в потоке данных.
• App Annie назвала самые популярные приложения среди россиян в период с января по апрель 2020 года
• В Epic Games сдались — Fortnite вышел в Google Play
• OneSignal запустил Advanced Analytics
• FunCorp: доходы от мобильной рекламы в марте упали на 50%
• Houseparty: видеоконференции с играми
• Откровенная история российского стартапа, который привлёк более $1 млн в приложение для детей
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• (+57) Боремся с пробками в маленьком городе за небольшой бюджет: результаты 6 месяцев проекта
• (+18) Artefact: AR в музее глазами разработчика, аналитика, искусствоведа
• (+13) Базы данных в IIoT-платформе: как Mail.ru Cloud Solutions работают с петабайтами данных от множества устройств
• (+12) Object Detection. Распознавай и властвуй. Часть 2
• (+5) Ошибки при проектировании интерфейса VR, VR для дизайнеров интерфейсов
• (+4) Часто задаваемые вопросы о VR шлемах и играх
• Magic Leap увольняет половину сотрудников и уходит с потребительского рынка
• Искусственный интеллект Accenture, Sulubaii и Intel помогает сохранять коралловый риф
• Падение на рынке смартфонов в третьем квартале 2020 года составит не менее 40%
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Bringoff
А как же эпический баг в Google Maps SDK, из-за которого крашились все приложения, использующие этот SDK, которые открывались в период, когда с сервера раздавался битый конфиг?
RoboForm
Согласен, упустил. Добавлю в своей версии, спасибо.