Advertisement
Advertisement

More Related Content

Advertisement

Similar to WebRTC on Mobile Devices: Challenges and Opportunities(20)

Advertisement

WebRTC on Mobile Devices: Challenges and Opportunities

  1. WEBRTC ON MOBILE DEVICES: CHALLENGES AND OPPORTUNITIES Vladimir Beloborodov Technical Manager / CTO at Mera Software Services + =
  2. “WebRTC”
  3. WebRTC is a technology for peer-to-peer exchange of media (audio, video) and data between web*-clients in (near) real time * Note: “web” here is in a broader sense than just browsers and in-browser apps
  4. “Web” as in “web-browser”? Yes! But more than that…
  5. Data
  6. “Neophyte View” on WebRTC Data
  7. Source of photo: https://www.flickr.com/photos/jon_ovington/4315834126 “With WebRTC I can build my own Skype!”
  8. Amir Zmora @AmirZmora If I Hear of Another New “Cool” #WebRTC Talking Heads Service I’m Going to Scream http://bit.ly/1KuKCnZ Original tweet: https://twitter.com/AmirZmora/status/602817737728126977
  9. • Contact Centers • Enterprise Telecom • Carriers / OTT • Communication features in consumer electronics Telecom: A “No-Brainer” Vertical
  10. “Telecom View” on WebRTC Data Shared Screen* * Screen sharing is coming to the WebRTC standard
  11. “ ommunication” can be more than just “plain Telecom”
  12. • Human-to-Human • Human-Machine Interactions • Machine-to-Machine (?) Why not?
  13. Noise Data
  14. Note that WebRTC can also be a great match for many other new and emerging technologies…
  15. Data Natural Language Processing
  16. “Communication-Centric” Model Changes… 19th century – 2000s: “Communication as a product” 2000s – 2010s: “Communication as a service”
  17. …Into “Domain/Problem-Centric” Model 2010s – … : “Communication as a feature”, “Communication as a function”
  18. “Communication as a Function” • Context-awareness and context-preservation • Instant availability (in the given context) • Integration with/into problem-specific tools • Selection of communication options/channels • Personalization (user preferences/profiles) • Integration with the surrounding environment
  19. Remote Support. “Assistant-as-App”. • Personal consulting and coaching • “Post-training” performance support • “Amateur support”. Situational assistance. • Augmented-reality-based guidance
  20. https://www.vida.com/ Suggested reading: “Why ‘Assistant-As-App’ Might Be the Next Big Tech Trend” https://www.linkedin.com/pulse/why-assistant-as-app-might-next-big-tech-trend-nir-eyal
  21. http://www.onato.com/projects/vex.html VEX ~ Remote Insurance Appraisals “Users can video chat with the appraiser so that appraisals can be quickly and effectively performed from the office. Video sessions are archived for possible liability disputes. Hi resolution photos can be taken by the appraiser at any time to ensure all details are captured.”
  22. Social Engagement. Accessibility. • Public reporting and journalism • Elderly support services • Sign-language translation services • Assistance to blind people
  23. http://www.bemyeyes.org/
  24. Peer-to-Peer Interactions. CDN. • Remote control services and functions • “Robotic telepresence” and “avatars” • Content delivery services • Secured peer-to-peer transactions
  25. http://bem.tv/
  26. https://streamium.io/
  27. http://www.doublerobotics.com/ Caveat: Their SDK only used WebRTC voice and video. Data channel anyone?
  28. Time for quick demo… Try it!
  29. http://blog.uppersideconferences.com/award-winners-webrtc-2014-conference-expo/ Data Channel award
  30. “Communication as a Function” …makes perfect sense in many desktop-based scenarios
  31. Side-note: Desktop goes “mobile” too… Source: http://thenextweb.com/mobile/2012/02/21/ubuntu-for- android-could-turn-your-phone-into-a-powerful-desktop-computer/ Source: https://www-ssl.intel.com/content/www/us/en/compute-stick/intel-compute-stick.html Source: https://www.apple.com/macbook/
  32. “Communication as a Function” …can be done with several Telecom or Web technologies
  33. Native or hybrid application logic Web-application logic WebRTC API(s) in some other programming language(s) Implementation of the “Web” API part of WebRTC This API is standardized by the WEBRTC group in W3C (including interactions with other parts of HTML5) Implementation-specific API Implementation of the “RTC” mechanisms of WebRTC These mechanisms are standardized by the RTCWEB group in IETF (NAT traversal, media negotiation, mandatory codecs, and the like) Underlying platform
  34. • Enhanced ICE-based NAT Traversal • Secure media and data transport • Common subset of media codecs • Signaling over existing peer connection • and more
  35. “Communication as a Function” + =
  36. “Communication as a Function” + =
  37. WebRTC on Mobile? Choices, choices… Web App Native Mobile App Hybrid Mobile App
  38. WebRTC-related Considerations • WebRTC libraries for native apps • WebRTC direct support in WebView • WebRTC in embedded browser • WebRTC in 3rd-party browser apps
  39. Some General Considerations • Native “look and feel” on target platforms • Application responsiveness. Usage of gestures. • Native platform capabilities. Storage options. • Support of external H/W devices / accessories • Access to local media sources and outputs
  40. Some More Considerations • End-customer preferences / requirements • Support for prev. versions (platform / browser) • Required skillset and dev tools
  41. WebRTC Options on Android Open-source libs • Google WebRTC • OpenWebRTC (Ericsson) WebRTC in WebView Starting 5.0 “Lollipop” Embedded browser Starting 5.0 (with Chrome) ++ 3rd-party browsers Chrome, Firefox, “Bowser” * * For more details on “Bowser” visit https://getbowser.appspot.com/ ++ Not guaranteed in case of vendor-customized Android firmwares
  42. WebRTC Options on iOS Open-source libs • Google WebRTC • OpenWebRTC (Ericsson) WebRTC in WebView No native support * Embedded browser No 3rd-party browsers “Bowser” * * iOS apps can use WebRTC in WebView, including a W3C-specs compliant JavaScript API. For example, look at “Bowser” (https://getbowser.appspot.com/) or Cordova plug-in “iosrtc” (https://github.com/eface2face/cordova-plugin-iosrtc).
  43. WebRTC Open-Source Implementations* * Mozilla plans to “join the club” too, offering their Firefox WebRTC engine. * For ORTC, the ORTC project offers their own open-source prototype. OpenWebRTC
  44. Diversity of H/W Platforms and Options
  45. Preserve video proportions UI and UX with WebRTC One screen layout may not fit all Device orientation affects both UI layout and “camera layout” Preview of local front camera normally “mirrors” the user
  46. WebRTC App Behavior Background mode considerations “Wi-Fi only” / “Wi-Fi and Cellular” Lighter comm. channel options for narrow-bandwidth conditions Handle “edge cases” and errors
  47. Advanced and “hack-ish” topics Codec ordering in SDP matters. Changing it may help, but you must know well what you do. (Pre-)balance UX and system load with WebRTC constraints Find out what codecs, if any, enjoy H/W acceleration on platform/lib
  48. Hybrid Mobile Applications A typical definition: “Applications combining elements of both native applications and Web applications.”
  49. How Well Can “Web” Play “Native”? App / domain logic and models App UI* Performance-demanding features and capabilities * This may work great for certain apps and customers. Yet, generally, be careful.
  50. JS-Hybrids: More Than One Approach Approach Example dev options Packaged web apps Microsoft ManifoldJS “WebView UI” apps Cordova / PhoneGap JS-based apps with “shared” native UI NativeScript JS-based apps with “per-platform” UIs React Native
  51. Source of photo: https://www.flickr.com/photos/befuddledsenses/2904000882
  52. Between here and the horizon… • WebRTC official standard (“WebRTC 1.0”) • “Object RTC” (ORTC) and “WebRTC 1.1” • Microsoft Edge with ORTC on board • Screen sharing. Many other additions. • WebAssembly + WebRTC
  53. The Centaur icon is by EliRatus from the Noun Project. Other icons used in this presentation were made by Freepik from www.flaticon.com. mera.com @VladimirTechMan linkedin.com/in/vladimirtechman Thank you for your time and attention! Vladimir Beloborodov Technical Manager / CTO at Mera Software Services
Advertisement