# Your First Progressive Web App
Based on [Abdelrahman Omran PWA presentation](https://goo.gl/TbgI7d), and [Google PWA Codelab](https://goo.gl/AVsL6p)
___
[Step 1. Fast first load](https://gist.github.com/Omranic/c3c2c9c07d6f0d36e40c74f155bf5576)
[Step 2. Use service workers to pre-cache the App Shell](https://gist.github.com/Omranic/4e648fa38caab7b8207d3e237fde0c77)
[Step 3. Use service workers to cache the forecast data](https://gist.github.com/Omranic/1b97059b1527e1878fdc5c51ada3e057)
## Step 4. Support native integration & Deploy online
- [Create Manifest File](#create-manifest-file)
- [Call Manifest File](#call-manifest-file)
- [Add to Homescreen elements for Safari on iOS](#add-to-homescreen-elements-for-safari-on-ios)
- [Tile Icon for Windows](#tile-icon-for-windows)
- [Deploy to Firebase](#deploy-to-firebase)
___
### Create Manifest File
Inside your `work` directory, create a new file named `manifest.json`, and add the following code inside:
```json
{
"name": "Weather PWA",
"short_name": "Weather",
"icons": [{
"src": "images/icons/icon-128x128.png",
"sizes": "128x128",
"type": "image/png"
}, {
"src": "images/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image/png"
}, {
"src": "images/icons/icon-152x152.png",
"sizes": "152x152",
"type": "image/png"
}, {
"src": "images/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
}, {
"src": "images/icons/icon-256x256.png",
"sizes": "256x256",
"type": "image/png"
}],
"start_url": "/index.html",
"display": "standalone",
"background_color": "#3E4EB8",
"theme_color": "#2F3BA2"
}
```
### Call Manifest File
Open `index.html` and add the following line before the `` closing tag:
```javascript
```
### Add to Homescreen elements for Safari on iOS
In the same file `index.html` add the following code before the `` closing tag:
```
```
### Tile Icon for Windows
In the same file `index.html` add the following code before the `` closing tag:
```
```
### Deploy to Firebase
1. Create a Firebase account at https://firebase.google.com/console/ and then create a new project
2. Install the Firebase tools via npm: `npm install -g firebase-tools`
3. On your terminal, change current directory to `work`
4. Still on terminal, inside `work` directory execute this command `firebase login`
5. Once logged in from your terminal to your Firebase account, execute this command `firebase init`
6. Finally, you're ready to deploy online using this command `firebase deploy`
7. Congrats, you're done! You can access your Weather PWA on a link similar to this "https://YOUR-FIREBASE-APP.firebaseapp.com"