Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What happened to my JavaScript phone?

What happened to my JavaScript phone?

Not long ago, it seemed like JavaScript devices were going to free JS developers from the constraints of the browser and let us control every aspect of our lives as easily as we once controlled hover menus. Though nodebots were captivating, many of us were anxious for the JS device revolution to reach a more mundane destination: our phones. And yet today the constraints of the mobile landscape look not much different from several years ago. We have the same two operating systems, the same two app stores, and same option to write a native app or push people to save what is still mostly a bookmark. How did we cover so little distance, given the enthusiasm, resources, and potential that appeared to exist, and more importantly, how close can we come to a JavaScript phone today?

Garann Means

June 01, 2019
Tweet

More Decks by Garann Means

Other Decks in Technology

Transcript

  1. View Exit
    ✉ 12:30
















    What happened to my
    javascript phone?
    Garann Means @garannm JSConf EU 2019

    View Slide

  2. hands up if you have a hacker phone

    View Slide

  3. Why not use a hacker phone
    camera
    display
    fast, reliable connection
    not crashing all the time
    you have too many thousands of dollars

    View Slide

  4. You carefully
    researched phones and
    bought the best one
    for you? Is it iPhone or
    Android?
    E-X-C-E-L

    View Slide

  5. View Exit
    ✉ 12:30
















    yay the free market
    https://www.cnet.com/news/qualcomm-is-a-monopoly-and-must-renegotiate-deals-judge-rules/

    View Slide

  6. Step into my time machine
    PhoneGap/Cordova/& friends
    Node
    Nodebots

    View Slide

  7. early mobile apps








    View Slide

  8. early mobile apps






    View Slide

  9. View Exit
    ✉ 12:30
















    Like a11y but implemented

    View Slide

  10. JavaScript on the
    backend? That’s hot
    but what do you use
    for a server
    Node.js.com™

    View Slide

  11. One of these days i'm gonna get this nodebot
    back on the road and really open 'er up
    https://www.flickr.com/photos/4nitsirk/33313210766/

    View Slide

  12. View Exit
    ✉ 12:30
















    Oh and also
    https://www.flickr.com/photos/quattrovageena/2663223167
    84

    View Slide

  13. smartphones are intuitive and fun

    View Slide

  14. Things we used to hate
    Nonstop problems connecting to wifi
    Maps that gave directions from alternate dimensions
    Carrier-installed apps
    Only being able to install ringtones you paid for
    * not a smartphone issue but still bullshit

    View Slide

  15. View Exit
    ✉ 12:30
















    Missing:

    View Slide

  16. phones are different

    View Slide

  17. To make a phone a phone
    Become a carrier
    License some protocols
    Embed them in your hardware
    Get signoff from local agencies where your phone will be used
    Get certification from any commercial carrier whose network
    your device will connect to

    View Slide

  18. View Exit
    ✉ 12:30
















    Mean time to failure and
    other fun tests

    View Slide

  19. SoC: System on a Chip
    processor
    modem
    antenna
    camera
    speaker

    View Slide

  20. The past is so in right now
    https://www.flickr.com/photos/novecentino/9896884705/

    View Slide

  21. View Exit
    ✉ 12:30
















    What happened to your
    javascript phone








    View Slide

  22. View Exit
    ✉ 12:30
















    What happened to your
    javascript phone






    View Slide

  23. So I can’t have a
    javascript phone?
    That’s a philosophical
    question

    View Slide

  24. You could still..
    Build a hobbyist phone
    Flash your firmware
    Write PWAs and JS-to-native apps
    Start a revolution

    View Slide

  25. View Exit
    ✉ 12:30
















    Just a telephony api
    app.get('/answer', async (request, reply) => {
    let nexmo_call_control = [{
    action: 'connect',
    endpoint: [{
    type: 'websocket',
    uri: 'http://localhost:34567',
    'content-type': 'audio/l16;rate=16000'
    }]
    }];
    return nexmo_call_control;
    });

    View Slide

  26. And a little hardware
    TiLDA badge: https://badge.emfcamp.org/wiki/TiLDA_MK4
    “Yes your TiLDA Badge is also a mobile phone.”
    GSM shield: http://www.espruino.com/arduino-sim900
    “GSM/GPRS module that can provide internet access via an
    AT command set”

    View Slide

  27. your imagination is the only limit*
    * that and licensing monopolies

    View Slide

  28. View Exit
    ✉ 12:30
















    New hardware ideas
    https://www.thelightphone.com
    https://www.punkt.ch/en/products/mp02-4g-mobile-phone/
    https://www.fairphone.com/en/

    View Slide

  29. Alternate operating systems
    LineageOS: https://lineageos.org/
    Ubuntu Touch: https://ubports.com/
    OSes on alternate hardware: KaiOS, Librem, Sailfish OS

    View Slide

  30. no OS, no drivers

    View Slide

  31. if you insist on being reasonable
    PWAs
    Cordova etc.
    Learn native language(s)
    $

    View Slide

  32. View Exit
    ✉ 12:30
















    One for the dustbin of history

    View Slide

  33. View Exit
    ✉ 12:30
















    Or is it
    https://www.webstandards.org/

    View Slide

  34. Excel me when the
    revolution happens

    View Slide

  35. More reading..
    https://www.makeuseof.com/tag/linux-smartphone-operating-systems/
    https://fossbytes.com/whats-inside-smartphone-depth-look-parts-
    powering-everyday-gadget/
    https://www.electronics-notes.com/articles/connectivity/cellular-mobile-
    phone/how-cellphone-works-inside-components.php
    https://www.electronicdesign.com/communications/11-myths-about-
    cellular-carrier-certification-requirements
    https://www.howtogeek.com/387934/your-smartphone-has-a-special-
    security-chip.-heres-how-it-works/

    View Slide

  36. View Exit
    ✉ 12:30
















    thanks!
    Garann Means @garannm JSConf EU 2019

    View Slide