# Google Cloud Platform and Flutter Mini-Course released

Becoming a full-stack developer requires a hand in all layers of the application development stack. This includes Frontend, Backend, Database and Infrastructure.

Google Cloud Platform is a suite of cloud computing services used by Google and external business for running various kinds of software. This platform contains relevant services allowing us to be effective in building full-stack applications.

In this mini course we will build an Image Upload Mobile App using a couple of Dart packages primarily [gcloud](https://pub.dev/packages/gcloud) and [googleapis\_auth](https://pub.dev/packages/googleapis_auth). These packages provide a set of helper classes for connecting to Google Cloud Platform services.

We will be using the [Flutter SDK](https://flutter.dev/) to build our mobile app since it provides a great set of features and tools for building cross-platform mobile applications. It also makes sense to be using Flutter as it’s also written in Dart :)

## Watch full Mini course

%[https://youtu.be/CV0vGWDtCR0] 

[Get the source code](https://github.com/graphicbeacon/gcloud_flutter_image_upload)

## **Getting started**

We need to set up a [Google Cloud Platform](https://cloud.google.com/) account. It’s free to set up and they’re currently offering $300 credit for 90 days. This will allow you enough time to use the Cloud Storage service for uploading images to.

The contents of the mini course below are as follows:

* [00:00](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=0s) Intro
    
* [00:19](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=19s) App demo
    
* [00:57](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=57s) Create a Google Cloud Project
    
* [01:32](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=92s) Create a Cloud Storage bucket
    
* [02:11](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=131s) Setup dependencies
    
* [02:43](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=163s) Implement image picker
    
* [06:31](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=391s) Create your IAM Service Account
    
* [07:51](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=471s) Implement CloudApi Service class
    
* [09:34](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=574s) Load IAM credentials into CloudApi Service
    
* [11:01](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=661s) Make request to Google Cloud Storage
    
* [12:10](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=730s) Set correct content type for image
    
* [14:31](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=871s) Set custom metadata on image
    
* [15:08](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=908s) Implement loading and uploaded state
    
* [16:59](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=1019s) Set bucket access permissions
    
* [17:46](https://www.youtube.com/watch?v=CV0vGWDtCR0&t=1066s) Outro
    

Once you’ve set up a Google Cloud Platform account, create a Flutter project by running the following command:

```bash
$ flutter create new_project
```

Add the following packages under the `dependencies` key of your **pubspec.yaml** file:

```yaml
dependencies: 
  gcloud: ^0.7.3
  googleapis_auth: ^0.2.12
  image_picker: ^0.6.7+10
  mime: ^0.9.7
```

Then run `pub get` to update your packages. Once you are setup, see the course for the full demonstration.

[Watch on YouTube](https://youtu.be/CV0vGWDtCR0)

[Get the source code](https://github.com/graphicbeacon/gcloud_flutter_image_upload)
