Meteor Mobile

Native vs Web

What we have

  • Push notifications

  • App stores

  • Home screen Access

  • Offline use

  • Look & Feel

  • Performance

  • Monetization

  • Native APIs

Native

  • Cross Device
  • Old OS
  • Well known technologies
  • ! App stores approval
  • Server managed upgrades

Web

What we want

Native + Web

  • Cross Device
  • Old OS
  • Well known technologies
  • ! App stores approval
  • Server managed upgrades
  • Push notifications

  • App stores

  • Home screen access

  • Offline use

  • Look & Feel

  • Performance

  • Monetization

  • Native APIs

Hybrid Meteor apps

Cordova

  • WebView within native app
  • API to call native APIs from JS

Cordova + Meteor

  • Since v.9.2.0 (Sep-14)
  • Maintained by MDG
  • Unifies Cordova - Web APIs
  • Hot Code Pushes
  • Simplified installation and usage

Compiles web to native

Android & iOS

It works
0 invasive
Easy

Hot code pushes

! Android <= 4.1.2

You still need a Mac to compile to iOS

Different WebView containers on each OS

(Update: same happens with Chrome)

Magic (?) + no that much use

Something might go wrong and it will be hard to find support out there

  • Cross Device
  • Old OS
  • Well known technologies
  • ! App stores approval
  • Server managed upgrades
  • Push notifications

  • App stores

  • Home screen access

  • Offline use

  • Look & Feel

  • Performance

  • Monetization

  • Native APIs

Alternative:  Chrome 42+

What's new on Chrome 42

  • Push Notifications
  • Prompt to "install" app
  • Classes. Buu

Compatible with Andriod 4.0+

Last compatible version with ICS

Push Notifications

  • JS Service Workers
  • Push API
  • Notifications API

Service Workers

  • Listen to events, while running on browser's background.
  • Doesn't have access to `window`.
  • Has a `scope`. You will generally want to serve SW files from the root path.

Push API

  • Recives push notifications and "awakens" the service worker.

Notifications API

  • Polymorphic (?) API to show notifications.
    • Desktop: like WhatsApp o Hipchat.
    • Mobile: Regular PN, always with a "disable" option.

Install app from screen's prompt

Unique "VM" for all OS

(Update: not quite true)

Google behind and large community

  • Cross Device
  • Old OS
  • Well known technologies
  • ! App stores approval
  • Server managed upgrades
  • Push notifications

  • App stores

  • Home screen access

  • Offline use

  • Look & Feel

  • Performance

  • Monetization

  • Native APIs

How do I add PN to my Meteor app?

It's Showtime

Improving UX

  • Performance
  • Look & Feel
  • AppCache
  • Subscriptions Manager
  • Fast Click
  • MaterializeCSS
  • segue-meteor-package

Download assets each time the app is opened

AppCache

Re-fetch data, on route change

Subscription Manager

Wait 300 ms between touch and action

Fast Click

UI doesn't feel native

MaterializeCSS

Transitions

segue-meteor-package

Resources

  • Theory: http://updates.html5rocks.com/2015/03/push-notificatons-on-the-open-web
  • Meteor lib to play around: https://github.com/taromero/meteor-chrome-push-notifications
  • Example: https://github.com/taromero/simple-todos

Meteor Mobile (EN)

By canotto90

Meteor Mobile (EN)

  • 862