Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

36
When To Go Native Jonathan Wiley DevFest ‘17

Transcript of Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

Page 1: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

When To Go Native Jonathan Wiley

DevFest ‘17

Page 2: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

Who is Jonathan Wiley

ME ME ME MESpeaker Introduction

Page 3: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

3

When To Go Native OutlineWe'll discuss the popular ways to develop mobile apps

We'll cover the strengths and weaknesses of each approach

We'll cover methods for deciding when to go native

We'll look at some examples of apps and pick an approach for each one

DevFest ‘17

Page 4: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

Popular App Development Techniques

Web Hybrid, Cross Platform, & Native

DevFest ‘17

Page 5: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

5

Web HybridWeb app wrapped in a native shell

Build with Cordova (PhoneGap), Ionic, etc.

Web technologies with native hooks

HTML5

Javascript

CSS

DevFest ‘17

Page 6: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

6

Cross PlatformNative UI, cross platform backend

The most popular options are:

Xamarin

React Native

DevFest ‘17

Page 7: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

7

XamarinWrite apps in C#

Specify platform specific UI

Tools provided by Microsoft

DevFest ‘17

Page 8: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

8

React NativeWrite apps in Javascript

Leverages native UI components for each platform

OSS, currently built and maintained by Facebook

DevFest ‘17

Page 9: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

9

Native AppsLanguage and frameworks for each platform

Write iOS apps in Objective-C or Swift

Write Android apps in Java

Tools provided and maintained by platform owners (Apple and Google)

DevFest ‘17

Page 10: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

Which Approach is Right for my Project?

Strengths & Weaknesses

DevFest ‘17

Page 11: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

11

Strengths & Weaknesses

Device Capabilities

User Interface

Performance

Security

DevFest ‘17

Tooling

Skills Required

Code Sharing

Deployment

Page 12: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

12

Device CapabilitiesFull access with native

Support on cross platform for most, drop to native code for unsupported capabilities

Support on mobile web for some, harder drop to native code for unsupported capabilities

DevFest ‘17

Page 13: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

13

User InterfaceNative UI best with native

Can achieve native results with cross platform if platform specific UIs are implemented

Uniform look of web across platforms leads to a non-native feel

DevFest ‘17

Page 14: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

14

PerformanceBest native

Pretty good with cross platform

Not so great with web hybrid

DevFest ‘17

Page 15: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

15

SecurityBest native

Decent with cross platform

Vulnerable with web hybrid

DevFest ‘17

Page 16: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

16

ToolingFirst party tools when doing native development

React Native updates from Facebook

Xamarin updates from Microsoft, use Visual Studio

Hybrid web uses web tooling and light build tools from vendors

DevFest ‘17

Page 17: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

17

Skills RequiredReally a difference in tooling and languages

For any of these beyond hybrid web you'll need to have a pretty deep knowledge of each platform

DevFest ‘17

Page 18: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

18

Shared CodeNone with native

Most with cross platform

All with hybrid web

DevFest ‘17

Page 19: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

19

DeploymentUpload to app stores with all of these

React Native and hybrid web can be updated without app review

Technically iOS apps have to feel native

Closer to code signing and better deployment tools for native

DevFest ‘17

Page 20: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

So what does all of this mean?

When To Go NativeDevFest ‘17

Page 21: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

21

Deep hardware integrationRunning in the background (GPS tracking, background content updates, VOIP) Camera access beyond basic capture Bluetooth (beacons, BTLE, bluetooth audio) Offline storage TouchID and fingerprint scanners Accelerometers Motion Coprocessor

DevFest ‘17

Page 22: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

22

Deep platform integrationHealthKit/Google Fit

Apple Watch/Android Wear extensions

Today widget/Android widgets

iMessage extensions

Siri

HomeKit

Media libraries

DevFest ‘17

Page 23: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

23

When performance mattersReal-time audio/video processing

Heavy animations

Machine learning

Efficiently running in the background

DevFest ‘17

Page 24: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

24

When UX *really* mattersHigh touch applications

Rich user interactions

High profile apps

DevFest ‘17

Page 25: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

25

Latest & GreatestNo reliance on 3rd parties to support features before you can

Start developing for new platforms before they're released to the public

DevFest ‘17

Page 26: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

26

When security is a priorityHealthcare

Corporate

Government

DevFest ‘17

Page 27: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

27

When to go cross platformWhen you can leverage JS or C# developers to focus on mobile

When you don't need deep hardware integration

When you don't need deep platform integration

When you don't need cutting edge

DevFest ‘17

Page 28: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

28

When to go web hybrid (or just web!)

When you have existing web talent to focus on mobile

When functionality is fairly basic

When user experience doesn't have to be stellar

DevFest ‘17

Page 29: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

Case Studies

Example AppsLunarLincoln

Page 30: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

30

XOEyeMobile Application

XOEye equips field technicians with wearable technology systems that capture and share the right information with the right people at the right time. LunarLincoln built a VOIP app for XOEye that lets their users communicate via real-time audio and video streaming when they’re on the go.

Page 31: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

31

CompassMobile Application

Compass employs the powerful native sensors in your phone to give you perspective on your habits over time. Open Compass and instantly participate in the trajectory of your life. Learn more about what makes you tick, get insights, and replay your day.

• Observe your behavior over time

• Own your data and take it further with export to CSV

• See the big picture and accomplish goals with insight cards

Page 32: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

32

LoLoMobile Application

Lolo or “Locals Supporting Locals” is a citywide loyalty program. LoLo essentially turns any credit or debit card into a rewards card by tracking spending when those cards are used with participating businesses. Nothing new to carry, nothing to remember; just spend like normal.

Page 33: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

33

The Brain at Work ExperimentMobile Application

The TReAD Lab studies the behavioral and neurobiological determinants of cost/benefit decision-making in healthy individuals, as well as in patients with mental illness. The Brain at Work Experiment allows test subjects to participate outside the lab as well as more frequently allowing for a richer data set for the study.

Page 34: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

What have we learned?

RecapLunarLincoln

Page 35: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

35

When To Go Native Outline

We discussed the popular ways to develop mobile apps

We covered the strengths and weaknesses of each approach

We covered an methods for deciding when to go native

We looked at some examples of apps and pick an approach for each one

DevFest ‘17

Page 36: Nashville DevFest '17 - When To Go Native (Jonathan Wiley, LunarLincoln)

ThanksFollow us online: @LunarLincoln, @microchip128