SlideShare a Scribd company logo
BUILDING NATIVE MOBILE
APPS WITH WEBRTC
Dan Jenkins
THIS TALK IS FULL OF
PINEAPPLES

PINEAPPLES & HAM =
AMAZING PIZZA
🍍 🐖 🍕
LOL.
A LITTLE ABOUT ME
DAN JENKINS

&

NIMBLE APE
DAN JENKINS
•Founder of Nimble Ape Ltd
•Google Developer Expert in Web Technologies
•Organiser of CommCon
•Public Speaker - Astricon, ClueCon, Signal, Kamailio World, Full Stack
Summit
•@dan_jenkins on twitter.
•Love Lego, Love Electric Vehicles, Love Sustainable Energy
🍍
NIMBLE APE
•Real Time Communication Consultancy
•Specialise in VoIP and WebRTC
•(WebRTC, Asterisk, FreeSWITCH, Kamailio, Drachtio)
•Sponsors of JanusCon and CommCon
•https://nimblea.pe
I LOVE THE WEB
I LOVE OPEN SOURCE SOFTWARE
& COMMUNITIES
BUILDING NATIVE MOBILE
APPS WITH WEBRTC
JanusCon - Building Native Mobile Apps with WebRTC
REACT NATIVE
BUT THIS TALK IS ABOUT MORE
THAN REACT NATIVE
IT'S ABOUT BUILDING
NATIVE APPS WITH
WEB TECHNOLOGY &
WEBRTC
LET'S TAKE A LOOK
FIRSTLY, WHAT DO YOU NEED
FOR A GOOD SOFTPHONE?
CALLKIT &
CONNECTION
SERVICE
PUSH NOTIFICATIONS

(IOS -VOIP PUSH NOTIFICATIONS

ANDROID - DATA ONLY MESSAGES)
WEBRTC SUPPORT
WEBRTC
•Secure by Design
•Quick Call Setup Times due to NAT handling by default
•HD Quality Audio Mandatory
•Video Support
•OPUS mandatory so handling Packet Loss is essentially built in
PHONE CALL
EXPECTATIONS
EXPECTATIONS
•Turning off sensors when you have your ear up to the
phone
•Interop with audio modes during a phone call
•Turning the screen off when its up to your ear
•React to hardware button presses
SO WHAT TOOLS CAN WE USE TO
BUILD NATIVE APPS WITH 

WEB TECH?
NATIVESCRIPT
FLUTTER
VUE NATIVE
PROGRESSIVE WEB APP
XAMARIN
IONIC
CORDOVA
REACT NATIVE
THAT'S ABOUT 3
MINUTES ON EACH?
😂
WHOA! DAN, THAT'S
JUST TOO MUCH!
JanusCon - Building Native Mobile Apps with WebRTC
SO LET'S TAKE A
LOOK AT THE
REALISTIC OPTIONS
🍍
WebRTC Support
Phone Calling
Norms
Callkit /
Connection
Service Modules
SIP Libraries
Special Push
Support
Flutter ✅ ✅ ❌ ✅ ✅
React Native ✅ ✅ ✅ ✅ ✅
Nativescript ✅ ✅
⚠ Only Callkit and
not complete
✅ ✅
Vue Native ⚠ ⚠ ⚠ ✅ ✅
PWA ✅ ❌ ❌ ✅ ✅
Xamarin C# and .net are not web technologies
Ionic A wrapper around a web view isn't a true native app
Cordova A wrapper around a web view isn't a true native app
PROGRESSIVE

WEB APPS
PWA ISN'T READY

😵
NO CALLKIT

😵
NO CONNECTION
SERVICE

😵
NO AUDIO ROUTING
TO EARPIECE

😵
NO CONTROL OVER
SCREEN STAYING ON

😵
BUT LISTEN TO THE
TALK AFTER ME
I CRY A LITTLE
INSIDE EVERY TIME I
CAN'T BUILD A PWA
VUE NATIVE
VUE NATIVE
COMPILES DOWN TO
REACT-NATIVE
SO ALL THE R.N.
MODULES SHOULD
JUST WORK
SO THERE'S NOT
MUCH POINT
TALKING ABOUT
BOTH
SO THAT LEAVES
FLUTTER,
NATIVESCRIPT &
REACT NATIVE
FLUTTER
FLUTTER
•Made by Google
•Compiles to Native completely
•Runs on iOS, Android, Web, Desktop and embedded
•Written using Dart - so familiar for JavaScript devs
•Based on "Widgets"
•Theoretically, write once, run everywhere
NATIVESCRIPT
NATIVESCRIPT
•Build using Vue or Angular
•TypeScript
•No Bridge between NativeScript and Native APIs
•Uses a JavaScript VM to run your non-native code - JavaScriptCore & V8
REACT NATIVE
REACT-NATIVE
•Made by Facebook
•React
•Re-usable Components
•Bridge between JavaScript & Native
•Uses a JavaScript VM to run your non-native code - JavaScriptCore on both
•iOS, Android, Windows
PROS & CONS
FLUTTER
GETTING STARTED
QUICKLY IS FAIRLY
FRICTIONLESS
✅
THE PROMISE OF
IOS/ANDROID/WEB/
DESKTOP ISN'T
100% TRUE ❌
BUT WHEN IT IS... IT
COULD MEAN NOT
WRITING ELECTRON
APPS FOR DESKTOP ✅
AND COULD MEAN
WRITING ONCE AND
INSTANTLY RUNNING
ON ALL PLATFORMS
✅
THE ECOSYSTEM IS
FAIRLY SPARSE

IF YOU WANT SOME FUNCTIONALITY YOU'LL
PROBABLY HAVE TO BUILD A PLUGIN ❌
IT'S NOT VERY
"WEBBY"
❌
JanusCon - Building Native Mobile Apps with WebRTC
LACKS A CALLKIT /
CONNECTION
SERVICE PLUGIN
❌
NATIVESCRIPT
GETTING STARTED
QUICKLY IS FAIRLY
FRICTIONLESS
✅
IT'S TYPESCRIPT
❌✅
THE ECOSYSTEM IS
FAIRLY SPARSE
AGAIN

IF YOU WANT SOME FUNCTIONALITY YOU'LL
PROBABLY HAVE TO BUILD A PLUGIN ❌
YOU CAN BUILD
USING ANGULAR OR
VUE
✅
INCOMPLETE
MODULES
❌
COMMUNITY
DRIVEN
"MARKETPLACE"
❌✅
❌
REACT NATIVE
GETTING STARTED
CAN BE A ROYAL
PAIN IN THE REAR
❌
EXTREMELY
"WEBBY"
✅
JanusCon - Building Native Mobile Apps with WebRTC
HUGE ECOSYSTEM
OF MODULES
AVAILABLE
✅
SEEMS TO BE MORE
DEVS BUILDING FOR
REACT NATIVE
✅
SO WHAT'S BEST?
WELL...

THATS FOR YOU TO
DECIDE
FLUTTER LOOKS
COOL BUT THE
ECOSYSTEM ISN'T
THERE (YET)
WILL FLUTTER BE
AROUND
TOMORROW?
NATIVESCRIPT
SEEMS DECENT BUT
SEEMS TO GET
FORGOTTEN ABOUT
DOES THAT MEAN IT
GETS LESS ATTENTION
& LESS THIRD PARTY
MODULES?
REACT NATIVE HAS
HUGE SUPPORT BUT
CAN BE INCREDIBLY
FRUSTRATING
BUT WHEN IT
WORKS, ITS
BEAUTIFUL
WANT MY OPINION?🍍
REACT NATIVE WINS
HANDS DOWN
THANKS TO ALL
THESE MODULES/
MAINTAINERS
REACT-NATIVE-WEBRTC

REACT-NATIVE-CALLKEEP

REACT-NATIVE-INCALL-MANAGER

WIX/REACT-NATIVE-NOTIFICATIONS

REACT-NATIVE-PAPER

JSSIP (NIMBLE APE TEMP FORK)
AND IT'S NOT JUST
YOUR IOS/ANDROID
APP THAT CAN BE
DONE IN WEB TECH
PHONE NETWORK

DRACHTIO

RTPENGINE

MEDIA SERVER
BUT GO BUILD YOUR
NEXT NATIVE APP
WITH WEB TECH!
OR HIRE NIMBLE
APE TO HELP YOU :)
🍍
THANKS!

QUESTIONS?
🍍
THANKS!

QUESTIONS?
🍍
THANKS!

QUESTIONS?

More Related Content

DOCX
Tiểu luận luật hình sự về tội hiếp dâm người dưới 16 tuổi.docx
PDF
Luận văn: Cơ chế thi hành quyết định của trọng tài thương mại
PDF
Luận văn: Trình tự thủ tục thanh lý tài sản phá sản theo luật, 9đ
PDF
Đề tài: Bảo vệ quyền nhân thân của người lao động theo luật, HOT
PDF
Luận văn: Bồi thường khi Nhà nước thu hồi đất tại tp Hà Nội, 9d
PDF
Trách nhiệm của người sử dụng lao động đối với lao động nữ
PDF
Luận văn: Cấm phân biệt đối xử trong pháp luật lao động, HOT
PDF
Optimizing for Change (Henrik Joreteg)
Tiểu luận luật hình sự về tội hiếp dâm người dưới 16 tuổi.docx
Luận văn: Cơ chế thi hành quyết định của trọng tài thương mại
Luận văn: Trình tự thủ tục thanh lý tài sản phá sản theo luật, 9đ
Đề tài: Bảo vệ quyền nhân thân của người lao động theo luật, HOT
Luận văn: Bồi thường khi Nhà nước thu hồi đất tại tp Hà Nội, 9d
Trách nhiệm của người sử dụng lao động đối với lao động nữ
Luận văn: Cấm phân biệt đối xử trong pháp luật lao động, HOT
Optimizing for Change (Henrik Joreteg)

Similar to JanusCon - Building Native Mobile Apps with WebRTC (20)

PDF
Maximiliano Firtman - Разработка приложений с помощью PhoneGap
PDF
PhoneGap mobile development
PDF
How to build mobile API with Node.js
KEY
Philly ete-2011
PDF
Stapling and patching the web of now - ForwardJS3, San Francisco
PPTX
Pro Mobile web Apps with Phonegap 3.X - Adobe Mobile Day
PDF
Of innovation and impatience - Future Decoded 2015
PDF
Federico Lox Lucignano, War of the worlds web or native both
PDF
PhoneGap/Cordova
PDF
Appium - Reality check on the world’s leading Open Source Framework for Mobil...
KEY
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
PPTX
Mobile Enablement And Intelligence
PDF
What's next? J and beyond keynote 2015
KEY
Building Cross Platform Mobile Apps
KEY
Building Mobile Apps with HTML, CSS, and JavaScript
PDF
Keeping It Realtime!
PDF
Best practices for delivering quality web experiences
PPTX
Intro to PhoneGap
PDF
HTML5 for mobile - DiGi Challenge for Change
PPTX
WebKit, why it matters?
Maximiliano Firtman - Разработка приложений с помощью PhoneGap
PhoneGap mobile development
How to build mobile API with Node.js
Philly ete-2011
Stapling and patching the web of now - ForwardJS3, San Francisco
Pro Mobile web Apps with Phonegap 3.X - Adobe Mobile Day
Of innovation and impatience - Future Decoded 2015
Federico Lox Lucignano, War of the worlds web or native both
PhoneGap/Cordova
Appium - Reality check on the world’s leading Open Source Framework for Mobil...
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
Mobile Enablement And Intelligence
What's next? J and beyond keynote 2015
Building Cross Platform Mobile Apps
Building Mobile Apps with HTML, CSS, and JavaScript
Keeping It Realtime!
Best practices for delivering quality web experiences
Intro to PhoneGap
HTML5 for mobile - DiGi Challenge for Change
WebKit, why it matters?
Ad

More from Dan Jenkins (20)

PPTX
Yup... WebRTC Still Sucks
PDF
Professional AV with WebRTC
PDF
SIMCON 3
PDF
Getting started with WebRTC
PDF
Getting physical with web bluetooth in the browser hackference
PDF
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
PDF
Astricon 2016 - Scaling ARI and Production
PDF
Getting physical with web bluetooth in the browser
PDF
Getting physical with web bluetooth in the browser
PDF
WebRTC Reborn SignalConf 2016
PDF
Web technology is getting physical, join the journey
PDF
WebRTC 101 - How to get started building your first WebRTC application
PDF
Building the Best Experience for Your Customers and Your Business
PDF
WebRTC Reborn - Full Stack Toronto
PDF
WebRTC Reborn - Cloud Expo / WebRTC Summit
PDF
WebRTC Reborn - Full Stack
PDF
Developing Yourself for Industry - University of Kent EDA MTD DA
PDF
Building 21st Century Contact Centre Applications
PDF
WebRTC Reborn Hackference
PDF
WebRTC Reborn Over The Air
Yup... WebRTC Still Sucks
Professional AV with WebRTC
SIMCON 3
Getting started with WebRTC
Getting physical with web bluetooth in the browser hackference
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
Astricon 2016 - Scaling ARI and Production
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browser
WebRTC Reborn SignalConf 2016
Web technology is getting physical, join the journey
WebRTC 101 - How to get started building your first WebRTC application
Building the Best Experience for Your Customers and Your Business
WebRTC Reborn - Full Stack Toronto
WebRTC Reborn - Cloud Expo / WebRTC Summit
WebRTC Reborn - Full Stack
Developing Yourself for Industry - University of Kent EDA MTD DA
Building 21st Century Contact Centre Applications
WebRTC Reborn Hackference
WebRTC Reborn Over The Air
Ad

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Electronic commerce courselecture one. Pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Machine learning based COVID-19 study performance prediction
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Encapsulation theory and applications.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Cloud computing and distributed systems.
“AI and Expert System Decision Support & Business Intelligence Systems”
Big Data Technologies - Introduction.pptx
Understanding_Digital_Forensics_Presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Electronic commerce courselecture one. Pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Building Integrated photovoltaic BIPV_UPV.pdf
MYSQL Presentation for SQL database connectivity
NewMind AI Weekly Chronicles - August'25 Week I
Dropbox Q2 2025 Financial Results & Investor Presentation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
A Presentation on Artificial Intelligence
Machine learning based COVID-19 study performance prediction
Diabetes mellitus diagnosis method based random forest with bat algorithm
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Encapsulation theory and applications.pdf
Review of recent advances in non-invasive hemoglobin estimation
Cloud computing and distributed systems.

JanusCon - Building Native Mobile Apps with WebRTC