Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer...

58

Transcript of Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer...

Page 1: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned
Page 2: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Welcome

Page 3: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Mobile App Bootstrap

Ron Theis

Staff Software Engineer

Tableau

# T C 1 8

Custom mobile apps with embedded Tableau visualizations

Page 4: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Questions to Consider

How would our app connect and authenticate?

How important is custom branding?

Do our users mainly use a few known visualizations?

Do we have the resources for this?In-house programmers?

Third-party contractors?

Who would wrangle this long-term?

Page 5: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Automation

Extensions

Embedded Analytics

Data Connectivity

Data Science

Tableau Platform

Inte

gra

tion

s

Enabling Integrations for Developers

Page 6: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

What It Isn’t

Page 7: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Warning: Not Tableau Mobile!Tableau Mobile already provides server browsing & viz interaction

Page 8: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Warning: Not Tableau Mobile Beta!

The beta is Tableau Mobile re-written in React Native

The beta has delicious new featuresInteractive previewsProject browsingOptional TouchID

See the beta in actionDevs on StageTC Session: “Tableau Mobile rising: You CAN take it with you”On your phone: download at kiosk

Page 9: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

The Mobile App Bootstrap (MAB)

Open source

Mobile app

Embedded Tableau visualizations

Page 10: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

The Mobile App Bootstrap (MAB)

Open source sample codeBasic sample app in multiple programming languagesSamples demonstrating specific techniquesFree for you to use, copy, or be inspired byNo special Tableau licensing involved

Available at github.com/tableau

You own and maintain your app

Computer programming required!

Page 11: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Customers have approached us with several custom mobile use cases

Warehouses Hospitals Custom Branding Broad Access

Grocery Stores Field Sales Integrated Experiences

“Executive Mode”

The Mobile App Bootstrap (MAB)

Page 12: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Customer Mobile Familiarity

Starting from scratchNo existing app

Open to any programming language/solution that works

Less mobile-specific knowledge

Modifying an existing appExisting programming language requirements

Already have an app person/team

More mobile-specific knowledge

Page 13: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

What Is Available?

Two platforms: iOS and Android

Two frameworksObjective-C: Native iOS

React Native: iOS and Android

Sample appsOverview with three visualizations

Barcode scanner

Page 14: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Out of the Box

Page 15: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

What Has Changed

Page 16: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

What’s New: React Native

Cross-platform frameworkSame code runs on iOS and Android

App is completely native

JavaScript and ReactCommon web development technologies

Created and maintained primarily by FacebookOpen source

Page 17: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

What’s New: React Native

Tableau Mobile’s new frameworkWe’ve been delighted with React Native

~99% code re-use between iOS and Android

React developers are instantly familiar with the code

UX designers can make modifications themselves

Well-known companies are using React Native

Page 18: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

What’s Old: Cordova

MAB-Cordova has been deprecated

Cordova relies on UIWebView

UIWebView has been deprecated by Apple

Additional complexity of WebView-within-a-WebView

Low adoption, high frustration

Page 19: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

What’s Improved: Objective-C

Samples now use WKWebView

Github repositories: search for “mobile”

github.com/tableau

github.com/tableau/mobile-app-bootstrap-react-native

github.com/tableau/mobile-app-bootstrap-objc

github.com/tableau/mobile-connected-client

Page 20: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Deep Dive

Page 21: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Authentication

Mobile authentication is a huge challenge

Tableau has a 5-person team focused on mobile authentication

Your app will have to deal with authentication*

* = Unless it only connects to Tableau Public

Page 22: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Private Network

Connect: Private Network (aka Intranet)

Page 23: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Private Network

Connect: Reverse Proxy

Page 24: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Private Network

Connect: Virtual Private Network (VPN)

Page 25: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Connect: The Cloud

Page 26: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

How Does an App Connect?

Page 27: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Connect

Username?Password?

Viz A?

+A

Viz B? +

B

Page 28: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Authentication Settings

Idle time expiration (minutes)wgserver.session.idle_limit: 240

Lifetime expiration (minutes), must be enabled belowwgserver.session.lifetime_limit: 1440

Turns on lifetime expirationwgserver.session.apply_lifetime_limit: false

Page 29: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Connected Clients

Page 30: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Connected Clients Server Settings

Idle time expiration

refresh_token.idle_expiry_in_seconds: 1209600

# 14 days, set to -1 to turn off

Lifetime expiration

refresh_token.absolute_expiry_in_seconds: 31536000

# 365 days, set to -1 to turn off

Page 31: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Connected Clients on Tableau Server

Server admin can enable/disable connected clients

Server admin and users can delete tokens

Page 32: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

URL for embedding

URL to use when embedding visualizationsDon’t use the URL shown in the browser location

Use the URL from the Share menu: the Link URL

Tableau Help: “Parameters for Embed Code”

Page 33: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Images

Append .png to a view URL to get an image/WorkbookName/ViewName

/WorkbookName/ViewName.png

/WorkbookName/ViewName.png?:size=width,height

Images and embedded views will use correct layoutStandard size-to-layout logic applies: based on smallest of height and width

Less than 500px: phone

501-800px: tablet

801+px: desktop

Images can be stored for later/offline use

Page 34: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

WebView

WebViews get used extensively in the appAuthentication

Viz display

Android: default WebView works fine

iOS: big difference between UIWebView and WKWebView

Page 35: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

iOS: UIWebView vs. WKWebView

UIWebView: old

WKWebView: new

UIWebView has serious problemsHigh memory usage

JavaScript incompatibilities, behaves like an old browser

Tendency to crash randomly

Complex visualizations = likely sadness

UIWebView has been deprecated by Apple

Page 36: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

iOS: WKWebView

WKWebView: new

WKWebView advantagesUses less memory

Handles modern JavaScript & CSS

Less crashy

Maintained by Apple

iOS 11: cookie reads/writes enabled

Switching from UIWebView to WKWebView solves customer problems

Page 37: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Device and OS Compatibility

What are your organization’s device needs?Organization-owned or BYOD?

Tablets, or phones, or both?

iOS, or Android, or both?

Declare iOS 11 as minimum versionEnables WKWebView cookie reading/writing

Reduces support surface area

Tableau Mobile beta: minimum iOS 11

Page 38: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Device and OS Compatibility

Page 39: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Device and OS Compatibility

Page 40: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Works on Tablets Too

Page 41: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Device Designer

Device Designer works great with MABTC Session: “On the road again | Bring dashboards mobile with Device Designer”

TC Session: “Your journey to amazing mobile dashboards”

Consider locking your app’s orientation

Page 42: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Delivering Your App

Apple Developer program$99/year

Limited to 100 devices

Apple Enterprise distribution program$300/year, extra vetting by Apple

Unlimited distribution within your organization

AndroidDo whatever you want

Page 43: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Delivering Your App

Mobile Device Management systems can auto-deliver

TC Session: “Deploy and Enjoy”

Page 44: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Analytics in Your App

Track app usageDevice model, OS version, app version, session length, etc.

Actions taken inside the app

Your marketing team might already have a solution

Many options for “mobile analytics”Google Analytics

Amazon Mobile Analytics

Flurry (Yahoo)

Mixpanel

Localytics

Some can easily become Tableau Data Sources

Page 45: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Supporting Your App

Intercom for MobileIn-app user support

One-way messaging

Two-way interactions

Intercom.com

Page 46: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Testing

AWS Device Farm

Google Firebase

Microsoft App Center

Page 47: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Wrap Up

Page 48: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

What’s Next

BreadthMore languages: Swift

DepthOffline snapshots

Re-authentication

Debugging techniques

Authentication library

Page 49: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Your Role

You, customer, play an important roleDirect influence on our priorities

We often discover that a project is in progress only when there’s a problem/deadline/crisis

Let us know early in the process

We can save you some headaches

Contact your friendly neighborhood salesperson

Page 50: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Questions to Consider

How would our app connect and authenticate?

How important is custom branding?

Do our users mainly use a few known visualizations?

Do we have the resources for this?In-house programmers?

Third-party contractors?

Who would wrangle this long-term?

Page 51: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Please complete the

session survey from the My

Evaluations menu

in your TC18 app

Page 52: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

E M B E D D E D AN A LY T I C S R E L AT E D S E S S I O N S

Tableau JS API | The most delicious ingredient for custom appsOct-24 | 10:15 – 11:15 Oct-25 | 10:45 – 11:45

How to build a Tableau portal in 60 minutes or lessOct-24 | 10:15 – 11:15 Oct-25 | 14:15 – 15:15

Embedded analytics with the Tableau PlatformOct-23 | 12:30 – 13:30 Oct-24 | 13:45 – 14:45

Page 53: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

M O B I L E R E L AT E D S E S S I O N S

On the road again | Bring dashboards mobile with Device DesignerOct-24 | 10:15 – 11:15

Your journey to amazing mobile dashboardsOct-24 | 12:00 – 1:00Oct-23 | 10:45 – 11:45

Page 54: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

M O B I L E R E L AT E D S E S S I O N S

Tableau Mobile rising | You CAN take it with youOct-24 | 3:30 – 4:30

Deploy and Enjoy | Tableau Mobile at enterprise scaleOct-24 | 1:45 – 2:45

Page 55: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

#DataDev Resources

TC18 Developer Track Contenthttps://tabsoft.co/tcdevtrack

Tableau Developer Programhttps://tableau.com/developer

Free environment for development

Early access to info and APIs

Tableau on GitHubhttps://github.com/tableau

Page 56: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

Thank you!

#TC18

Ron Theis

[email protected]

Page 57: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned

#DataDev Resources

TC18 Developer Track Contenthttp://tabsoft.co/tcdevtrack

Tableau Developer Programhttp://tableau.com/developerFree environment for developmentEarly access to info and APIs

Tableau on GitHubhttp://github.com/tableau

Ron Theis: [email protected]

Page 58: Welcome [tc18.tableau.com] app... · Switching from UIWebView to WKWebView solves customer problems. Device and OS Compatibility What are your organization’s device needs? Organization-owned