If you want to quickly build a web or React Native app that can scale,
Then stick around.
This episode is for you.
My guest for this episode, is Rene from Bernau, Germany.
Rene has been passionate about software engineering
since was a teenager.
Now, he wants to build an app that makes it easy for anyone in the world
to pitch their business idea
to an investor.
Let's hear from Rene.
Individuals want an easy way
to invest into projects they are passionate about.
And start-ups are always looking for financing.
So I want to create 1Pitch, a mobile application
where you can choose and invest into projects hassle-free.
Giving you the opportunity for your financial freedom.
Throughout this episode,
I'll also show you the pieces that you'll need to build your app
so it can handle the load when you go viral.
I've included links for all the services that I cover
in the description of this video.
Let's dive in.
You'll use AWS Amplify since it is the fastest
and easiest way to build web and mobile apps that scale.
Amplify has a CLI tool,
libraries, and a console
to help you build and deploy your app to the cloud.
If you haven't built an app in Amplify before,
Then I suggest you using the console
because it walks you through building out
all of the major back-end components
that you'll need for your app.
And if this is your first time building an AWS,
then Amplify is a great place to start.
Because abstracts you having to know names of AWS services
in order to add functionality to your app.
All of the services that I'll mention next,
will be provisioned using Amplify.
Every app needs secure user authentication and authorization.
Amazon Cognito let's you add user sign-up,
sign-in and access control
to your web and mobile apps quickly and easily.
You add authentication to your app
through the authentication library in Amplify.
With Cognito,
users can sign in using their existing
Amazon, Facebook, Google, or Apple credentials.
Amplify has a concept called, UI Component
that you can take advantage of
if you're building an app using React, React Native, Vue,
Angular, Ionic, or Next.js.
You can think of UI components as pieces of boiler-plate UI,
that you can use in your app,
that are connected to cloud services.
Amplify has a UI component for authentication with Cognito.
When you use this component,
you get your basic form for signing in,
signing out, and creating an account and resetting your password.
You still have to write the JavaScript code
to build out the authentication work-flow,
but at least this can save you time.
By default, the UI component will come with a specific theme.
But I've left a link to instructions below the video
on how to customize the CSS variables.
You can also use the Analytics library in Amplify
to understand who is using your app
and how they are using it.
This means knowing who's purchasing your products.
The country, or region where your users live.
And metrics that show how frequently your app is used.
For Rene, this means he can compare
the usage patterns of investors versus start-ups.
In Rene's app,
the one minute pitches will be stored in Amazon S3.
S3 is your go to service for cloud storage.
Just run Amplify add storage in the command line,
using the Amplify CLI.
And you've got cloud storage enabled.
And it's only seven more lines of code to add server side encryptions.
There's no excuses.
Rene will use Amazon CloudFront.
A content delivery network to ensure the video pitches load
as fast as possible.
Content delivery networks, also known as CDNs,
deliver data, videos, application and APIs
with low latency and high transfer speed.
With Amazon CloudFront, your application can leverage.
AWS's global private network.
And traffic is intelligently routed to your users closest AWS Edge location.
There are two ways to deploy your application to CloudFront.
If you don't want to spend time on the implementation details,
about setting up a CDN,
then follow the steps in the Amplify Console to host your app.
I've listed the link to instructions on how to host your app
in Amplify in the description below the video.
These steps will add CloudFront to your application.
If you want more control over how your CloudFront distribution is provisioned,
Then you'll run Amplify add hosting
in the AWS CLI.
The bar for web and mobile apps these days is high,
which means you need to handle scenarios
where your customer is offline and using your app.
This means you'll sync data between an on device data storage
and a database in the cloud.
You'll use the Amplify DataStore Library
to persist data locally on the device.
You'll write your data model and operations to access,
write, or query data using the DataStore API.
Here's where the magic happens.
When you initialize DataStore,
It'll guide you to provision a GraphQL API that can read,
write, and subscribe to the data to perform actions in real time.
This GraphQL API is built on AWS AppSync.
A fully managed service that makes it easy to develop GraphQL APIs.
Once you've provisioned your GraphQL API,
then you just need to add the code in the DataStore API that syncs data.
DataStore will take care of syncing your data to Amazon DynamoDB.
A NoSQL database in the cloud.
If you're still wrapping your head around how you can sync data.
Don't worry.
It took me a lot of time to really understand what was going on.
There's a link to the AWS documentation that explains how DataStore works.
In Rene's app,
an investor will probably want to contact the start-up
to ask questions before investing.
Rene can use the GraphQL API Library in Amplify.
This API will invoke an AWS Lambda function.
Lambda allows you to run code without thinking about servers.
You'll write your code in the Lambda function
to send an email using Amazon Simple Email Service.
Simple Email Service is a scalable email service.
Next, is payments.
Rene wants to allow investors to invest in start-ups directly in his app.
You'll use the GraphQL API Library in Amplify to record the transaction.
Make a call to your own payment processor, or a third-party processor.
My favorite part about this entire app,
is it's completely serverless.
Which means you don't have to manage servers.
You just run your code and you get the right amount of compute at any scale.
Now it's time for a recap.
Use AWS Amplify to build your app quickly.
Add sign-up and sign-in with Amazon Cognito.
Store videos in Amazon S3.
And serve them over Amazon CloudFront.
Sync data on the device
and to the cloud with Amplify DataStore,
AWS GraphQL and Amazon DynamoDB.
Email your customers with Amazon Simple Email Service.
All of your back-end application logic happens,
in AWS Lambda.
That's how you get your app to market as fast as possible.
Make sure you check out the links below the video before you get started.
It doesn't matter when you start as long as you just get started.
Thanks for hanging out with me.
See you soon.