Очередной дайджест для мобильных разработчиков — рассказываем про бесконечный скролл, про ошибочную привязку карт, про обновления и потери, A/B-тестирование и сокращение рекламных доходов.

Каждый разработчик под мобильные платформы постоянно сталкивается с задачей, которая не решается одним единственным способом. Всегда есть несколько путей, — какие-то быстрые, какие-то сложные, — и у каждого свои достоинства и недостатки.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в
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%
< Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Каждый разработчик под мобильные платформы постоянно сталкивается с задачей, которая не решается одним единственным способом. Всегда есть несколько путей, — какие-то быстрые, какие-то сложные, — и у каждого свои достоинства и недостатки.
Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в


• (+13) Ошибка – это не UIAlertController
• (+10) Оптимизация времени сборки — Часть 1
• (+6) AppCode 2020.1: улучшения быстродействия, автодополнение до конца индексации, генерация документации и многое другое
• (+3) CoreData модель из кода. Или «Как обойтись без .XCDataModel» (Часть 1)
• (0) Валидация полей iOS — быстро и просто
• В iOS обнаружены 2 критические уязвимости
• Все, что вы хотели знать о функции Sign in with Apple
• Новый iPhone SE вызвал ажиотажный спрос
•

•

•

•

•

•

•

•

•

•

•


• (+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 потребовала от разработчиков приложений чётко показывать стоимость и условия отмены подписки
•

•

•

•

•

•

•

•

•

•

•


• (+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 тысяч пользователей
•

•

•

•

•

•

•


• (+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 млн в приложение для детей
•


• (+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
Согласен, упустил. Добавлю в своей версии, спасибо.