SlideShare a Scribd company logo
1 of 31
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Michael Labieniec, Sr. Developer Advocate, AWS Mobile
January 25, 2018
Ionic and React Hybrid
Mobile Applications with Mobile Hub
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Native vs. Hybrid
Native Hybrid
Platform Specific Cross Platform
Compiled Language Scripting / Compiled
Access to Device Hardware Plugins / Native Modules
Platform Frameworks Web Frameworks
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Native vs. Hybrid
• Both Compile to a binary distribution (for an app store)
• With the exception of PWAs
• JavaScript execution is platform specific:
• iOS - JavaScriptCore
• Android - V8
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Ionic + Cordova (Hybrid)
• HTML, CSS, JavaScript
• Native Plugins
• Runs the app in a WebView
• Ionic
• UI Framework built on
Cordova using Angular
• AWS Amplify
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
React Native
• React, JavaScript, JSX
• Uses native components instead of
web components
• Same fundamental UI building
blocks as regular iOS and Android
apps
• AWS Amplify React Native
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Progressive Web Apps
• “Mobile Web”
• React, Angular, Ionic, Vue,
TypeScript, JavaScript/ES2015
• Progressive Web Applications
• Service/Web Workers
• Discoverable and installable
• Network Agnostic
• AWS Amplify
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Progressive Web Apps
Application shell Service worker Storage and cache
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Progressive Web Apps – App Shell
• Bundled HTML, CSS, and JavaScript
• Separates UI from data
• Downloaded once, immediately cached
• Loads from cache
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Progressive Web Apps – Service Worker
• A programmable network proxy
• Cannot access the DOM
• Responds to messages via postMessage
• Has access to IndexedDB APIs
Browser support: amzn.to/service-worker-status
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Progressive Web Apps – Storage
• Local storage is blocking and synchronous
• IndexedDB (idb) is indexed and asynchronous
• Transactional database system
• APIs are available in service workers
• Can be complex, wrappers available
Local Forage: amzn.to/local-forage
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Starter Apps
Native Hybrid Web/PWA
React Native Ionic React
iOS Cordova Ember
Android Angular
Xamarin Vue
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Amplify and Mobile CLI
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Amplify
• JavaScript Library for frontend
and mobile development
• JavaScript (frameworks)
• React + React Native
• Declarative interface across
different categories
• Open Source (Apache)
github.com/aws/aws-amplify
 Authentication
 Analytics
 API
 Storage
 Cache
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Mobile CLI
• Bootstrap new and existing projects with a single
command
• Easily enable and disable AWS services and integrate
them with AWS Amplify
• Publish changes to AWS environment
• Instant Web Hosting for your web apps
• Open Source (Apache)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Amplify
$ npm install –g awsmobile-cli
$ npm install –g create-react-app
$ create-react-app my-amplify-app
$ cd my-amplify-app
$ awsmobile init
// App.js
Import Amplify from ‘aws-amplify’
Import Config from ‘./aws-exports’
Amplify.configure(Config)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Amplify – React / React Native
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
withAuthenticator(App)
 React HOC
 100% Scaffold UI
 State Management
 MFA / SMS / Email
 Credential Management
Import {
withAuthenticator
} from ‘aws-amplify-react’
…
export default withAuthenticator(App);
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
<Authenticator />
 Scaffold UI
 Custom UI
 State Management
 MFA / SMS / Email
 Credential Management
import {
Authenticator
} from ‘aws-amplify-react’
import Config from ‘./aws-exports’
…
render(
<div>
<Authenticator>
<MyApp />
</Authenticator>
</div>
)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
<Authenticator />
 Scaffold UI
 Custom UI
 State Management
 MFA / SMS / Email
 Credential Management
render(
<Authenticator hideDefault={true}
onStateChange={this.handleAuthStateChange}>
<SignIn/>
<SignUp/>
<ConfirmSignUp/>
<Greetings/>
<AlwaysOn/>
</Authenticator>
)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
<PhotoPicker />
 Scaffold UI
 Customizable UI
 State Events
 Credential Management
import {
PhotoPicker
} from ‘aws-amplify-react’
render(
<PhotoPicker onPick={
data => doSomething(data)
} />
)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
<S3Album />
 Scaffold UI
 Customizable UI
 State Events
 Credential Management
import {
PhotoPicker
} from ‘aws-amplify-react’
render(
<PhotoPicker onPick={
data => doSomething(data)
} />
)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
<S3Image />
 Renders an Image
 Supports Public/Private
 Supports Upload
 Supports Picker
import {
S3Image,
S3Text
} from ‘aws-amplify-react’
render(
<div>
<S3Image level="private" path={path} />
<hr/>
<S3Text level="private" path={path} />
</div>
)
<S3Text />
 Renders Text from Amazon S3
 Supports Public/Private
 Supports Upload
 Supports Picker
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Mobile CLI
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Mobile CLI
 Open Source
 AWS Backend in seconds
 Enable/Disable AWS Features
 Instant Web Hosting
 API and Database
$ npm install –g awsmobile-cli
$ cd your-react-app
$ awsmobile init
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Features
 Amazon Cognito
 Amazon S3 / CloudFront
 Amazon API Gateway
 Amazon DynamoDB
 Amazon Pinpoint
$ awsmobile features
◉ user-signin
◉ user-files
◉ cloud-api
◉ database
◉ analytics
◉ hosting
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hosting and Streaming
• Publish your front-end using one simple command
$ awsmobile publish
• Automatically published to Amazon S3
• Automatically distributed to a global content delivery
network (CDN) with Amazon CloudFront
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Comparison
https://github.com/awslabs/aws-mobile-react-native-starter
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://github.com/awslabs/aws-mobile-react-sample
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://github.com/awslabs/aws-mobile-ionic-sample
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://github.com/ionic-team/ionic2-starter-aws
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Michael Labieniec, Sr. Developer Advocate, AWS Mobile

More Related Content

What's hot

SRV205 Architectures and Strategies for Building Modern Applications on AWS
 SRV205 Architectures and Strategies for Building Modern Applications on AWS SRV205 Architectures and Strategies for Building Modern Applications on AWS
SRV205 Architectures and Strategies for Building Modern Applications on AWSAmazon Web Services
 
SRV327 Replicate, Analyze, and Visualize Data Using Managed Database and Ser...
 SRV327 Replicate, Analyze, and Visualize Data Using Managed Database and Ser... SRV327 Replicate, Analyze, and Visualize Data Using Managed Database and Ser...
SRV327 Replicate, Analyze, and Visualize Data Using Managed Database and Ser...Amazon Web Services
 
SRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateSRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateAmazon Web Services
 
Migrazione di Database e Data Warehouse su AWS
Migrazione di Database e Data Warehouse su AWSMigrazione di Database e Data Warehouse su AWS
Migrazione di Database e Data Warehouse su AWSAmazon Web Services
 
SRV309 AWS Purpose-Built Database Strategy: The Right Tool for the Right Job
 SRV309 AWS Purpose-Built Database Strategy: The Right Tool for the Right Job SRV309 AWS Purpose-Built Database Strategy: The Right Tool for the Right Job
SRV309 AWS Purpose-Built Database Strategy: The Right Tool for the Right JobAmazon Web Services
 
Learn to Build a Cloud-Scale Website Powered by Amazon EFS - AWS Online Tech ...
Learn to Build a Cloud-Scale Website Powered by Amazon EFS - AWS Online Tech ...Learn to Build a Cloud-Scale Website Powered by Amazon EFS - AWS Online Tech ...
Learn to Build a Cloud-Scale Website Powered by Amazon EFS - AWS Online Tech ...Amazon Web Services
 
How a Major Australian University Brought Backup to the Cloud
 How a Major Australian University Brought Backup to the Cloud How a Major Australian University Brought Backup to the Cloud
How a Major Australian University Brought Backup to the CloudAmazon Web Services
 
Module 2 - AWSome Day Online Conference 2018
Module 2 - AWSome Day Online Conference 2018Module 2 - AWSome Day Online Conference 2018
Module 2 - AWSome Day Online Conference 2018Amazon Web Services
 
SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
 SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDSAmazon Web Services
 
Deep Dive on AWS PrivateLink - AWS Online Tech Talks
Deep Dive on AWS PrivateLink - AWS Online Tech TalksDeep Dive on AWS PrivateLink - AWS Online Tech Talks
Deep Dive on AWS PrivateLink - AWS Online Tech TalksAmazon Web Services
 
Starting your cloud journey - AWSomeDay Israel
Starting your cloud journey - AWSomeDay IsraelStarting your cloud journey - AWSomeDay Israel
Starting your cloud journey - AWSomeDay IsraelBoaz Ziniman
 
Running Container on AWS - Builders Day Israel
Running Container on AWS - Builders Day IsraelRunning Container on AWS - Builders Day Israel
Running Container on AWS - Builders Day IsraelAmazon Web Services
 
Scaling Your Production Application with Amazon Lightsail - AWS Online Tech T...
Scaling Your Production Application with Amazon Lightsail - AWS Online Tech T...Scaling Your Production Application with Amazon Lightsail - AWS Online Tech T...
Scaling Your Production Application with Amazon Lightsail - AWS Online Tech T...Amazon Web Services
 
Develop Containerized Apps with AWS Fargate
Develop Containerized Apps with AWS Fargate Develop Containerized Apps with AWS Fargate
Develop Containerized Apps with AWS Fargate Amazon Web Services
 
SID304 Threat Detection and Remediation with Amazon GuardDuty
 SID304 Threat Detection and Remediation with Amazon GuardDuty SID304 Threat Detection and Remediation with Amazon GuardDuty
SID304 Threat Detection and Remediation with Amazon GuardDutyAmazon Web Services
 
Building a DevOps Pipeline on AWS (DEV326) - AWS re:Invent 2018
Building a DevOps Pipeline on AWS (DEV326) - AWS re:Invent 2018Building a DevOps Pipeline on AWS (DEV326) - AWS re:Invent 2018
Building a DevOps Pipeline on AWS (DEV326) - AWS re:Invent 2018Amazon Web Services
 
Operationalizing Microsoft Workloads (WIN320) - AWS re:Invent 2018
Operationalizing Microsoft Workloads (WIN320) - AWS re:Invent 2018Operationalizing Microsoft Workloads (WIN320) - AWS re:Invent 2018
Operationalizing Microsoft Workloads (WIN320) - AWS re:Invent 2018Amazon Web Services
 
Module 3 - AWSome Day Online Conference 2018
Module 3 - AWSome Day Online Conference 2018Module 3 - AWSome Day Online Conference 2018
Module 3 - AWSome Day Online Conference 2018Amazon Web Services
 
AWSome Day Online Conference 2018 - Module 2
AWSome Day Online Conference 2018 -  Module 2AWSome Day Online Conference 2018 -  Module 2
AWSome Day Online Conference 2018 - Module 2Amazon Web Services
 

What's hot (20)

SRV205 Architectures and Strategies for Building Modern Applications on AWS
 SRV205 Architectures and Strategies for Building Modern Applications on AWS SRV205 Architectures and Strategies for Building Modern Applications on AWS
SRV205 Architectures and Strategies for Building Modern Applications on AWS
 
SRV321 Deep Dive on Amazon EBS
 SRV321 Deep Dive on Amazon EBS SRV321 Deep Dive on Amazon EBS
SRV321 Deep Dive on Amazon EBS
 
SRV327 Replicate, Analyze, and Visualize Data Using Managed Database and Ser...
 SRV327 Replicate, Analyze, and Visualize Data Using Managed Database and Ser... SRV327 Replicate, Analyze, and Visualize Data Using Managed Database and Ser...
SRV327 Replicate, Analyze, and Visualize Data Using Managed Database and Ser...
 
SRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateSRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS Fargate
 
Migrazione di Database e Data Warehouse su AWS
Migrazione di Database e Data Warehouse su AWSMigrazione di Database e Data Warehouse su AWS
Migrazione di Database e Data Warehouse su AWS
 
SRV309 AWS Purpose-Built Database Strategy: The Right Tool for the Right Job
 SRV309 AWS Purpose-Built Database Strategy: The Right Tool for the Right Job SRV309 AWS Purpose-Built Database Strategy: The Right Tool for the Right Job
SRV309 AWS Purpose-Built Database Strategy: The Right Tool for the Right Job
 
Learn to Build a Cloud-Scale Website Powered by Amazon EFS - AWS Online Tech ...
Learn to Build a Cloud-Scale Website Powered by Amazon EFS - AWS Online Tech ...Learn to Build a Cloud-Scale Website Powered by Amazon EFS - AWS Online Tech ...
Learn to Build a Cloud-Scale Website Powered by Amazon EFS - AWS Online Tech ...
 
How a Major Australian University Brought Backup to the Cloud
 How a Major Australian University Brought Backup to the Cloud How a Major Australian University Brought Backup to the Cloud
How a Major Australian University Brought Backup to the Cloud
 
Module 2 - AWSome Day Online Conference 2018
Module 2 - AWSome Day Online Conference 2018Module 2 - AWSome Day Online Conference 2018
Module 2 - AWSome Day Online Conference 2018
 
SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
 SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
SRV310 Optimizing Relational Databases on AWS: Deep Dive on Amazon RDS
 
Deep Dive on AWS PrivateLink - AWS Online Tech Talks
Deep Dive on AWS PrivateLink - AWS Online Tech TalksDeep Dive on AWS PrivateLink - AWS Online Tech Talks
Deep Dive on AWS PrivateLink - AWS Online Tech Talks
 
Starting your cloud journey - AWSomeDay Israel
Starting your cloud journey - AWSomeDay IsraelStarting your cloud journey - AWSomeDay Israel
Starting your cloud journey - AWSomeDay Israel
 
Running Container on AWS - Builders Day Israel
Running Container on AWS - Builders Day IsraelRunning Container on AWS - Builders Day Israel
Running Container on AWS - Builders Day Israel
 
Scaling Your Production Application with Amazon Lightsail - AWS Online Tech T...
Scaling Your Production Application with Amazon Lightsail - AWS Online Tech T...Scaling Your Production Application with Amazon Lightsail - AWS Online Tech T...
Scaling Your Production Application with Amazon Lightsail - AWS Online Tech T...
 
Develop Containerized Apps with AWS Fargate
Develop Containerized Apps with AWS Fargate Develop Containerized Apps with AWS Fargate
Develop Containerized Apps with AWS Fargate
 
SID304 Threat Detection and Remediation with Amazon GuardDuty
 SID304 Threat Detection and Remediation with Amazon GuardDuty SID304 Threat Detection and Remediation with Amazon GuardDuty
SID304 Threat Detection and Remediation with Amazon GuardDuty
 
Building a DevOps Pipeline on AWS (DEV326) - AWS re:Invent 2018
Building a DevOps Pipeline on AWS (DEV326) - AWS re:Invent 2018Building a DevOps Pipeline on AWS (DEV326) - AWS re:Invent 2018
Building a DevOps Pipeline on AWS (DEV326) - AWS re:Invent 2018
 
Operationalizing Microsoft Workloads (WIN320) - AWS re:Invent 2018
Operationalizing Microsoft Workloads (WIN320) - AWS re:Invent 2018Operationalizing Microsoft Workloads (WIN320) - AWS re:Invent 2018
Operationalizing Microsoft Workloads (WIN320) - AWS re:Invent 2018
 
Module 3 - AWSome Day Online Conference 2018
Module 3 - AWSome Day Online Conference 2018Module 3 - AWSome Day Online Conference 2018
Module 3 - AWSome Day Online Conference 2018
 
AWSome Day Online Conference 2018 - Module 2
AWSome Day Online Conference 2018 -  Module 2AWSome Day Online Conference 2018 -  Module 2
AWSome Day Online Conference 2018 - Module 2
 

Similar to Ionic and React Hybrid Web/Native Mobile Applications with Mobile Hub - AWS Online Tech Talks

SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...Amazon Web Services
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Amazon Web Services
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Amazon Web Services
 
MBL310_Building Hybrid and Web Apps with AWS Mobile CLI
MBL310_Building Hybrid and Web Apps with AWS Mobile CLIMBL310_Building Hybrid and Web Apps with AWS Mobile CLI
MBL310_Building Hybrid and Web Apps with AWS Mobile CLIAmazon Web Services
 
Serverless in Action on AWS
Serverless in Action on AWSServerless in Action on AWS
Serverless in Action on AWSAdrian Hornsby
 
You Don’t Need A Mobile App! Responsive Web Apps Using AWS
You Don’t Need A Mobile App! Responsive Web Apps Using AWSYou Don’t Need A Mobile App! Responsive Web Apps Using AWS
You Don’t Need A Mobile App! Responsive Web Apps Using AWSAmazon Web Services
 
Build a Serverless Web Application in One Day
Build a Serverless Web Application in One DayBuild a Serverless Web Application in One Day
Build a Serverless Web Application in One DayAmazon Web Services
 
Build Cloud-Connected Apps in React Native for iOS & Android.pdf
Build Cloud-Connected Apps in React Native for iOS & Android.pdfBuild Cloud-Connected Apps in React Native for iOS & Android.pdf
Build Cloud-Connected Apps in React Native for iOS & Android.pdfAmazon Web Services
 
Reactive Architectures with Microservices
Reactive Architectures with MicroservicesReactive Architectures with Microservices
Reactive Architectures with MicroservicesAWS Germany
 
Building secure and scalable mobile applications on AWS - AWS Summit Cape Tow...
Building secure and scalable mobile applications on AWS - AWS Summit Cape Tow...Building secure and scalable mobile applications on AWS - AWS Summit Cape Tow...
Building secure and scalable mobile applications on AWS - AWS Summit Cape Tow...Amazon Web Services
 
Build a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideBuild a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideAmazon Web Services
 
Build a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideBuild a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideAmazon Web Services
 
End-User Computing on AWS with Amazon WorkSpaces and Amazon AppStream 2.0 - E...
End-User Computing on AWS with Amazon WorkSpaces and Amazon AppStream 2.0 - E...End-User Computing on AWS with Amazon WorkSpaces and Amazon AppStream 2.0 - E...
End-User Computing on AWS with Amazon WorkSpaces and Amazon AppStream 2.0 - E...Amazon Web Services
 
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech TalksAWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech TalksAmazon Web Services
 
DEV203_Launch Applications the Amazon Way
DEV203_Launch Applications the Amazon WayDEV203_Launch Applications the Amazon Way
DEV203_Launch Applications the Amazon WayAmazon Web Services
 
SRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeSRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeAmazon Web Services
 
Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Web Services
 
CON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSCON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSAmazon Web Services
 

Similar to Ionic and React Hybrid Web/Native Mobile Applications with Mobile Hub - AWS Online Tech Talks (20)

React Native Workshop
React Native WorkshopReact Native Workshop
React Native Workshop
 
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
 
MBL310_Building Hybrid and Web Apps with AWS Mobile CLI
MBL310_Building Hybrid and Web Apps with AWS Mobile CLIMBL310_Building Hybrid and Web Apps with AWS Mobile CLI
MBL310_Building Hybrid and Web Apps with AWS Mobile CLI
 
Serverless in Action on AWS
Serverless in Action on AWSServerless in Action on AWS
Serverless in Action on AWS
 
You Don’t Need A Mobile App! Responsive Web Apps Using AWS
You Don’t Need A Mobile App! Responsive Web Apps Using AWSYou Don’t Need A Mobile App! Responsive Web Apps Using AWS
You Don’t Need A Mobile App! Responsive Web Apps Using AWS
 
Build a Serverless Web Application in One Day
Build a Serverless Web Application in One DayBuild a Serverless Web Application in One Day
Build a Serverless Web Application in One Day
 
Build Cloud-Connected Apps in React Native for iOS & Android.pdf
Build Cloud-Connected Apps in React Native for iOS & Android.pdfBuild Cloud-Connected Apps in React Native for iOS & Android.pdf
Build Cloud-Connected Apps in React Native for iOS & Android.pdf
 
Reactive Architectures with Microservices
Reactive Architectures with MicroservicesReactive Architectures with Microservices
Reactive Architectures with Microservices
 
Building secure and scalable mobile applications on AWS - AWS Summit Cape Tow...
Building secure and scalable mobile applications on AWS - AWS Summit Cape Tow...Building secure and scalable mobile applications on AWS - AWS Summit Cape Tow...
Building secure and scalable mobile applications on AWS - AWS Summit Cape Tow...
 
Build a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideBuild a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a Ride
 
Build a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideBuild a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a Ride
 
End-User Computing on AWS with Amazon WorkSpaces and Amazon AppStream 2.0 - E...
End-User Computing on AWS with Amazon WorkSpaces and Amazon AppStream 2.0 - E...End-User Computing on AWS with Amazon WorkSpaces and Amazon AppStream 2.0 - E...
End-User Computing on AWS with Amazon WorkSpaces and Amazon AppStream 2.0 - E...
 
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech TalksAWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
 
DEV203_Launch Applications the Amazon Way
DEV203_Launch Applications the Amazon WayDEV203_Launch Applications the Amazon Way
DEV203_Launch Applications the Amazon Way
 
SRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeSRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the Edge
 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
 
Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)
 
CON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSCON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWS
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Ionic and React Hybrid Web/Native Mobile Applications with Mobile Hub - AWS Online Tech Talks

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Michael Labieniec, Sr. Developer Advocate, AWS Mobile January 25, 2018 Ionic and React Hybrid Mobile Applications with Mobile Hub
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Native vs. Hybrid Native Hybrid Platform Specific Cross Platform Compiled Language Scripting / Compiled Access to Device Hardware Plugins / Native Modules Platform Frameworks Web Frameworks
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Native vs. Hybrid • Both Compile to a binary distribution (for an app store) • With the exception of PWAs • JavaScript execution is platform specific: • iOS - JavaScriptCore • Android - V8
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Ionic + Cordova (Hybrid) • HTML, CSS, JavaScript • Native Plugins • Runs the app in a WebView • Ionic • UI Framework built on Cordova using Angular • AWS Amplify
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. React Native • React, JavaScript, JSX • Uses native components instead of web components • Same fundamental UI building blocks as regular iOS and Android apps • AWS Amplify React Native
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Progressive Web Apps • “Mobile Web” • React, Angular, Ionic, Vue, TypeScript, JavaScript/ES2015 • Progressive Web Applications • Service/Web Workers • Discoverable and installable • Network Agnostic • AWS Amplify
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Progressive Web Apps Application shell Service worker Storage and cache
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Progressive Web Apps – App Shell • Bundled HTML, CSS, and JavaScript • Separates UI from data • Downloaded once, immediately cached • Loads from cache
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Progressive Web Apps – Service Worker • A programmable network proxy • Cannot access the DOM • Responds to messages via postMessage • Has access to IndexedDB APIs Browser support: amzn.to/service-worker-status
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Progressive Web Apps – Storage • Local storage is blocking and synchronous • IndexedDB (idb) is indexed and asynchronous • Transactional database system • APIs are available in service workers • Can be complex, wrappers available Local Forage: amzn.to/local-forage
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Starter Apps Native Hybrid Web/PWA React Native Ionic React iOS Cordova Ember Android Angular Xamarin Vue
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Amplify and Mobile CLI
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Amplify • JavaScript Library for frontend and mobile development • JavaScript (frameworks) • React + React Native • Declarative interface across different categories • Open Source (Apache) github.com/aws/aws-amplify  Authentication  Analytics  API  Storage  Cache
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Mobile CLI • Bootstrap new and existing projects with a single command • Easily enable and disable AWS services and integrate them with AWS Amplify • Publish changes to AWS environment • Instant Web Hosting for your web apps • Open Source (Apache)
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Amplify $ npm install –g awsmobile-cli $ npm install –g create-react-app $ create-react-app my-amplify-app $ cd my-amplify-app $ awsmobile init // App.js Import Amplify from ‘aws-amplify’ Import Config from ‘./aws-exports’ Amplify.configure(Config)
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Amplify – React / React Native
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. withAuthenticator(App)  React HOC  100% Scaffold UI  State Management  MFA / SMS / Email  Credential Management Import { withAuthenticator } from ‘aws-amplify-react’ … export default withAuthenticator(App);
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. <Authenticator />  Scaffold UI  Custom UI  State Management  MFA / SMS / Email  Credential Management import { Authenticator } from ‘aws-amplify-react’ import Config from ‘./aws-exports’ … render( <div> <Authenticator> <MyApp /> </Authenticator> </div> )
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. <Authenticator />  Scaffold UI  Custom UI  State Management  MFA / SMS / Email  Credential Management render( <Authenticator hideDefault={true} onStateChange={this.handleAuthStateChange}> <SignIn/> <SignUp/> <ConfirmSignUp/> <Greetings/> <AlwaysOn/> </Authenticator> )
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. <PhotoPicker />  Scaffold UI  Customizable UI  State Events  Credential Management import { PhotoPicker } from ‘aws-amplify-react’ render( <PhotoPicker onPick={ data => doSomething(data) } /> )
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. <S3Album />  Scaffold UI  Customizable UI  State Events  Credential Management import { PhotoPicker } from ‘aws-amplify-react’ render( <PhotoPicker onPick={ data => doSomething(data) } /> )
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. <S3Image />  Renders an Image  Supports Public/Private  Supports Upload  Supports Picker import { S3Image, S3Text } from ‘aws-amplify-react’ render( <div> <S3Image level="private" path={path} /> <hr/> <S3Text level="private" path={path} /> </div> ) <S3Text />  Renders Text from Amazon S3  Supports Public/Private  Supports Upload  Supports Picker
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Mobile CLI
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Mobile CLI  Open Source  AWS Backend in seconds  Enable/Disable AWS Features  Instant Web Hosting  API and Database $ npm install –g awsmobile-cli $ cd your-react-app $ awsmobile init
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Features  Amazon Cognito  Amazon S3 / CloudFront  Amazon API Gateway  Amazon DynamoDB  Amazon Pinpoint $ awsmobile features ◉ user-signin ◉ user-files ◉ cloud-api ◉ database ◉ analytics ◉ hosting
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Hosting and Streaming • Publish your front-end using one simple command $ awsmobile publish • Automatically published to Amazon S3 • Automatically distributed to a global content delivery network (CDN) with Amazon CloudFront
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Comparison https://github.com/awslabs/aws-mobile-react-native-starter
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. https://github.com/awslabs/aws-mobile-react-sample
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. https://github.com/awslabs/aws-mobile-ionic-sample
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. https://github.com/ionic-team/ionic2-starter-aws
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Michael Labieniec, Sr. Developer Advocate, AWS Mobile