Building Real-time Offline-ready Mobile Applications with React Native & AWS

Nader Dabit

Developer Advocate - AWS Mobile

@dabit3

twitter / github / medium

Developer Velocity

JavaScript

Build Mobile, Web, Desktop, Machine Learning, Server-side applications

React / Native

Use existing skillset to build across multiple platforms

GraphQL

Consistent self-documenting API for multiple data sources & microservices

Real-time out of the box

Type Safety

AWS Mobile

Developer Velocity

Developer Velocity

AWS Amplify

AWS AppSync

Full-stack for Front End Developers

Use your existing skillset to build robust full-stack web & mobile applications

Serverless

- No servers to manage

- Continuous scaling and balancing

- Pay only for used, not reserved time

- Less code to manage

Instead of a collection of functions calling each other, the best serverless applications are:

  • Thick client code handling all interaction logic
  • Heavy use of managed services (e.g., AppSync, @Auth0, @Algolia, @Cloudinary)
  • Small glue functions.

- JoeEmison (@joeemison)

The key benefit of serverless is not "no servers to manage". It's "almost no backend code".

- JoeEmison (@joeemison)

Serverless

==

Serviceful Serverless

No server operations

Scales seamlessly

Codeless

No need to manage uptime

Assumes responsibility for providing a defined set of services

Serviceful Serverless

// Variable Expense

⚡️💡

 Think of managed services like the electricity that runs through your home.

// Less Code

Go for an application that any idiot can maintain - because sooner or later, any idiot probably is going to maintain it.

// Experimentation

Features

AWS AppSync

- Managed GraphQL Service

AWS AppSync

- Subscriptions & offline built-in

- Enterprise security & fine-grained access control built-in

Features

AWS Amplify

- CLI Toolchain

AWS Amplify

- Client Library

- Hosting / Deployment

Client Library

AWS Amplify

Connect to & interact with Cloud Services

Preconfigured components for popular front-end libraries

Open Source

AWS Amplify - Native Support

AWS Amplify - Framework Support

CLI Toolchain

AWS Amplify

Create, Update & Delete Cloud Services

Toolchain - GraphQL CodeGen ++

Manage multiple serverless environments

Authentication

Analytics

GraphQL API

Lamdba Functions

​AR / VR

AWS Amplify

Chat Bots

REST API

Storage

Internationalization

Push Notifications
 

Example Application

User Mgmt

Back end

Search

Reporting

AWS AppSync

Amazon Cognito

AWS AppSync

Amazon Pinpoint

docs.aws.amazon.com/appsync

aws-amplify.github.io

Awesome AWS Amplify (GitHub)

Awesome AWS AppSync (GitHub)

Egghead.io

@dabit3

twitter / github / medium

Building Real-time Offline-ready Mobile Applications with React Native & AWS

By Nader Dabit

Building Real-time Offline-ready Mobile Applications with React Native & AWS

Leveraging Serverless GraphQL for Your Next Mobile Application

  • 1,888