Push-уведомления в мессенджере: production-грабли которых нет в туториалах

Это девятая статья про инженерные решения в ONEMIX. Тема узкая, push-уведомления. Но я её давно хотел разобрать, потому что туториалов в интернете много, а production-граблей в них почти нет. Если коротко, туториал по push выглядит так. Регистрируешь токен через Notifications.getExpoPushTokenAsync() . Отправляешь на бэкенд. Когда приходит пуш — addNotificationResponseReceivedListener ловит тап, навигируешь в нужный экран. Всё. В реальном мессенджере таких туториалов недостаточно. Появляется десяток узких проблем. Пуш приходит когда юзер уже в этом чате. Пуш приходит когда приложение убито системой. Navigation после открытия из пуша добавляет дублирующийся экран в стек. На iOS звонки идут через отдельный канал VoIP который требует совершенно другой инфраструктуры. Эти грабли я и разберу.

https://habr.com/ru/articles/1035992/

#react_native #push_notifications #expo #fcm #apns #callkit #voip #мессенджер #мобильная_разработка #deep_linking

Push-уведомления в мессенджере: production-грабли которых нет в туториалах

Уровень: middle/senior мобильная разработка Стек: React Native, Expo SDK 54, expo-notifications, react-native-callkeep, react-native-voip-push-notification, expo-task-manager, FCM, APNs, PushKit Что...

Хабр

Как я сделал групповые звонки в React Native мессенджере: WebRTC, CallKit и грабли production'а

Это третья статья из серии про инженерные решения в ONEMIX — моём мессенджере на React Native. В первой я разбирал трёхуровневый кэш сообщений, во второй — реализацию Double Ratchet E2E. Сегодня — про звонки. Звонки в мессенджере — это та функция, которая работает либо отлично, либо никак. Пользователь привык что WhatsApp/Telegram звонят мгновенно, показывают входящие на заблокированном экране, переживают переключения Wi-Fi/LTE, и работают из фона. Если твоя реализация делает хоть что-то из этого хуже — пользователь это сразу заметит и переключится на "нормальный" мессенджер. Я потратил несколько месяцев на то чтобы довести звонки в ONEMIX до production-уровня. В процессе пришлось изучить WebRTC изнутри, разобраться с iOS CallKit и VoIP push notifications, и собрать десяток граблей которые в туториалах не упоминают. В этой статье — как это устроено, какие решения оказались критичными, и что бы я сделал по-другому. Сразу оговорка. Я не использую готовые SDK типа Agora, Twilio, 100ms. У них отличное качество и поддержка, но они не дают полного контроля над процессом — а для мессенджера контроль критичен. Когда звонок не проходит, пользователь винит приложение, а не "SDK от третьей стороны". Плюс готовые SDK стоят денег, которые на раннем этапе продукта лучше направить в другие места.

https://habr.com/ru/articles/1033930/

#webrtc #react_native #livekit #callkit #voip_push_notifications #trickle_ice #мобильная_разработка #звонки #мессенджер

Как я сделал групповые звонки в React Native мессенджере: WebRTC, CallKit и грабли production'а

Уровень: senior мобильная разработка и WebRTC Стек: React Native, Expo SDK 54, @livekit/react-native-webrtc, expo-notifications, CallKit, FCM Что внутри: production WebRTC с trickle ICE, VoIP push...

Хабр

Catapush has a two way push #notification mechanism for #iOS : a back channel with the #app to deliver local notifications and the #APN service as fallback to wake up the app with high priority #silent remote notifications: https://www.catapush.com/docs-quickstart#how-catapush-proprietary-real-time-direct-channel-works

The solution is used by #banks to guarantee delivery.

But was not #CallKit made mandatory in iOS 13 exactly to prevent this kind of scenario? #Whatsapp and the likes keeping a back channel alive via silent notifications to feed on users data.

Superior Mobile Notifications: Catapush XMPP architecture

Real time background connection with devices using XMPP notification protocol

你们所说的微信的 #CallKit ,我一度有了,又消失了,很奇怪。
Auf der Apple Watch Series 7 gibt es neu Wortvorschläge beim Eintippen. Apple führt zudem Entwicklerwerkzeuge zum Teilen von Bildern und für VoIP-Telefonie ein.
watchOS 9: So wird die Apple Watch ab Herbst kommunikativer
watchOS 9: So wird die Apple Watch ab Herbst kommunikativer

Auf der Apple Watch Series 7 gibt es neu Wortvorschläge beim Eintippen. Apple führt zudem Entwicklerwerkzeuge zum Teilen von Bildern und für VoIP-Telefonie ein.

heise online
Nach der Sperrung staatlich nicht explizit zugelassener VPN-Apps sind nun Programme dran, die Apples Telefonie-Routine nutzen. Skype wurde bereits im letzten Jahr entfernt. www.heise.de/mac-and-i/meldung… #AppStore #Apple #CallKit #China #Skype #Telefonie #iOS
Apple geht gegen CallKit-Apps in China vor

Nach der Sperrung staatlich nicht explizit zugelassener VPN-Apps sind nun Programme dran, die Apples Telefonie-Routine nutzen. Skype wurde bereits im letzten Jahr entfernt.

Apple doit bloquer l'utilisation de sa fonction CallKit en Chine

Apple fait le ménage sur l'App Store chinois avec les applications qui utilisent son framework CallKit. Un éditeur, anonyme, a transmis à 9to5Mac un message de l'équipe de validation d'Apple qui lui demande de revoir l'intégration de CallKit dans son app, dès lors qu'il souhaite la distribuer en Chine.