Updating Mobile Apps Without The App Store

Howdy

Sani Yusuf

  • Founder Of Haibrid
  • Google Dev Expert
  • Co-Organiser Of Ionic-UK
  • Author & Trainer
  • Recently Traveled The World
  • Big Fan Of Avatar Movie

@saniyusuf

saniyusuf.com

So You Want A Mobile App?

  • ​​Development

  • Support Multiple Platforms

  • Initial Distribution

  • Updating Distribution

  • ........... etc.

Development

Develop Your Apps Natively

Native IOS

  • Code With Swift or Objective-C

  • UI-Kit Component Library

  • X-Code IDE

Native Android

  • Code With Java or C++

  • Android SDK Component Library

  • Android Studio IDE

Native Windows Phone

Development Problem Solved

Supporting Multiple Platforms

The Hybrid Alternative

  • Web apps that are packaged with Cordova/Phonegap 
  • Run in a WebView within a native container
  • Can access device features like Camera, GPS etc.
  • ~100% code reuse 
  • Use web technologies to code your app

Problem Solved For Multiple Platforms?

Not Really

  • Native apps have great pre provided goodies as part of the Native SDK
    • Features like Tabs, Animations... etc.
  • Hybrid uses HTML5, CSS, JS
    • All we have in HTML is <DIV>, <SPAN> etc. 

there is no SDK for web

An open source SDK that lets web developers build mobile applications

It's Really Just Web

Built On Top Of Angular

Awesome Huge Community

  • 30,000+ Stars On Github
  • Almost 13,000 Slack Members
  • Around 4 Million Apps Built
  • Active Forum
  • Global Community With Over 100 Groups

Native Esque Components

  • Performant Components
  • Modelled Off Native SDKs
  • Ionicons Library
  • Semantic & Extensible

  <ion-header>
    <ion-navbar>
      <ion-title>NG ATL</ion-title>
    </ion-navbar>
  </ion-header>

  <ion-content>
    {{firstName}} {{lastName}}
  </ion-content>

Multi Language Support

  • Leverages ng2-translate Library
  • Support as many languages as your app requires.
  • Also has built in RTL support 

Fully Featured CLI Tool

  • SASS Compilation
  • Build Bundling
  • Happy Marriage With Cordova
  • Typescript Transpilation
  • Scaffolding 
  • Kick Ass Error Reporting

Configurable & Customisable

  • Customise theme with SASS to match your brand
    • Every Feature Is Configurable
      • Component Level
      • Platform Leve
      • Global Level

Multiple Platforms Solved

Initial Distribution

Android Distribution

Enroll

Generate Certificates

Code App

Submit

Approved

No Approval Process

IOS Distribution

Enroll

Obtain Certificates & Provisioning Profiles

Code App

Submit

Approval

Approved

Can Take Weeks

REJECTED

Initial Distribution Solved

Updating Distribution

Android Update

Code Update

Submit

Approved

No Approval Process

IOS Distribution

Code Update

Submit

Approval

Approved

Can Take Weeks

REJECTED

You Thought This Was Easy?

MY APP

APPLE

Update Distribution !Solved

Consider This Scenario

  • It Is Christmas Next Week
  • You Want Your App To Wish Users Merry Xmas & Give Them A Coupon
  • Your Sales Team Say This Is Going To Drive Engagement & Sales By 300%

Lets Update Our IOS App

  • Code Our Change Quickly
  • Submit To The App Store 
  • Wait For Approval
  • Approval Takes 2 Weeks Since Everyone Is Updating
  • Final App Gets Approved After 2 Weeks

BUT ITS NEW YEAR NOW ALREADY

Other Scenarios

  • What if we want to show a different version of our app depending on user's location?
  • What if we want to fix fatal error ASAP?
  • Or we just want to fix Covfefe ...

All These Can Be Solved On The Web Today

The Web Today

  • When an update comes, we get it ASAP.
    • We can just push to master on Friday & Update Our App In Time For Xmas
    • We can simply get user location VIA IP and serve desired content.
    • We can push emergency fixes ASAP.

Why Can't We Do This With Native Mobile Apps?

Because Native Code Is Compiled

But What If My App Is A Hybrid App Built With Ionic?

Shouldn't We Be Able To Just Change The Web Parts Of My App?

How It All Fits

Your App's Code

Ionic

Angular

WebView

Native App Container

PWA LAYER

Introducing Ionic Pro Deploy

Ionic Pro Deploy

  • Developed by Ionic
  • Part of the Ionic PRO suite
  • Allows you to push live updates to your mobile app via channels
  • Oh yhh, Its free to get started with too

Demo Time

May The Demo Gods Be With Us

Mans Not Hot

The Deploy Workflow

Detect Update

Download

Extract

Display/Update

Other Deploy Uses

  • Realtime Hot Fixes

  • Alpha/Beta Testing

    • Deploy different versions of your app to different demographics

  • ​Feature Unlocking

Some Other Cool Pro Stuff

Parting Words

  • Now You Can Have One Code For All Your Apps

  • 100% Code Re-Use 

  • Cost Effective & Time Conscious 

  • You Can Update On The Fly Whenever

Get Started Today

Akwai Tambaya Ney?

Hausa Language For Any Questions?