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.

// Elasticity

// 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 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

Pluggable, works with other cloud providers

Open Source

AWS Amplify - Native Support

AWS Amplify - Framework Support

CLI Toolchain

AWS Amplify

Create cloud services

Update & delete cloud services

Toolchain - GraphQL CodeGen ++

Amplify Console

AWS Amplify

Continuous deployment and hosting service for mobile web applications

Git integration (GitHub, GitLab, BitBucket)

Multi-environment support with feature-branch deploys

Password-protected deployments

Authentication

Analytics

GraphQL API

Lamdba Functions

​AR / VR

AWS Amplify

Chat Bots

REST API

Storage

Internationalization

Push Notifications
 

Amplify Workflow

1. Install the CLI

2. Configure the CLI

Amplify Workflow

3. Create a new Amplify project

Amplify Workflow

4. Use amplify add to initialize a service

Amplify Workflow

5. Create service in your account

Amplify Workflow

Example Application

User Mgmt

Back end

Search

Reporting

AWS AppSync

Amazon Cognito

AWS AppSync

Amazon Pinpoint

aws-amplify.github.io

Awesome AWS Amplify (GitHub)

Awesome AWS AppSync (GitHub)

Egghead.io

@dabit3

twitter / github / medium

GDG Lisbon - Moving Up the Stack

By Nader Dabit

GDG Lisbon - Moving Up the Stack

Leveraging Serverless GraphQL for Your Next Mobile Application

  • 1,853