Skip to content

Commit

Permalink
(infra, docs) Incorporate only-if-cached into builds
Browse files Browse the repository at this point in the history
  • Loading branch information
addyosmani committed Aug 28, 2019
1 parent fdeb135 commit 91428e2
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 78 deletions.
39 changes: 22 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,28 @@
# Environment-aware Components
# Adaptive Loading

An exploration into loading and rendering the most suitable version of a component based on signals exposed to the web (network, CPU, memory etc).

## Source & Components

This repo contains several different pieces for the Adaptive Loading project: React Hooks, patterns for adaptive loading with different Web Platform signals and full applications.

### Adaptive Loading patterns

* [Network-aware loading](https://github.com/GoogleChromeLabs/network-aware-components/tree/master/cra-network-aware-loading) with create-react-app ([demo](https://adaptive-loading.web.app/cra-network-aware-loading/))
* [Network-aware only-if-cached loading](https://github.com/GoogleChromeLabs/network-aware-components/tree/master/cra-network-aware-only-if-cached-loading) with create-react-app ([demo](https://adaptive-loading.web.app/cra-network-aware-only-if-cached-loading/))
* [Network-aware code-splitting](https://github.com/GoogleChromeLabs/network-aware-components/tree/master/cra-network-aware-code-splitting) with create-react-app ([demo](https://adaptive-loading.web.app/cra-network-aware-code-splitting/))
* [Network-aware data-fetching](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-network-aware-data-fetching) with create-react-app ([demo](https://adaptive-loading.web.app/cra-network-aware-data-fetching/))
* [Battery considerate loading](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-battery-considerate-loading) with create-react-app ([demo](https://adaptive-loading.web.app/cra-battery-considerate-loading/))
* [Memory considerate loading](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-memory-considerate-loading) with create-react-app ([demo](https://adaptive-loading.web.app/cra-memory-considerate-loading/))
* [Memory considerate loading (SketchFab version)](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-memory-considerate-loading-sketchfab) with create-react-app ([demo](https://adaptive-loading.web.app/cra-memory-considerate-loading-sketchfab/))
* [Device-class aware loading](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-device-class-aware-loading) ([demo](https://adaptive-loading.web.app/cra-device-class-aware-loading/))
* [UA-aware code-splitting](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-ua-aware-code-splitting) with create-react-app ([demo](https://adaptive-loading.web.app/cra-ua-aware-code-splitting/))

### Full applications

* [React Movie - network-aware components](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/react-movie-network-aware-loading) ([demo](https://adaptive-loading.web.app/react-movie-network-aware-loading/))
* [React Shrine - network-aware code-splitting](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/react-shrine-network-aware-code-splitting) ([demo](https://adaptive-loading.web.app/react-shrine-network-aware-code-splitting/))

## Deployment
Create Firebase Project by logging in to [console.firebase.google.com](https://console.firebase.google.com) and replace the default value in `/.firebaserc` and `/functions/.firebaserc` with the created Project ID.
Or simply copy the default value from `/.firebaserc` or `/functions/.firebaserc` and paste as the Project ID when creating the Firebase Project.
Expand All @@ -21,22 +42,6 @@ npm run build
npm run deploy
```

## Demos

### Simpler
* [Network-aware loading](https://github.com/GoogleChromeLabs/network-aware-components/tree/master/cra-network-aware-component) with create-react-app ([demo](https://us-central1-adaptive-loading.cloudfunctions.net/app/cra-network-aware-component/))
* [Network-aware code-splitting](https://github.com/GoogleChromeLabs/network-aware-components/tree/master/cra-network-aware-code-splitting) with create-react-app ([demo](https://us-central1-adaptive-loading.cloudfunctions.net/app/cra-network-aware-code-splitting/))
* [Network-aware data-fetching](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-network-aware-data-fetching) with create-react-app ([demo](https://us-central1-adaptive-loading.cloudfunctions.net/app/cra-network-aware-data-fetching/))
* [Battery considerate loading](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-battery-considerate-loading) with create-react-app ([demo](https://us-central1-adaptive-loading.cloudfunctions.net/app/cra-battery-considerate-loading/))
* [Memory considerate loading](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-memory-considerate-loading) with create-react-app ([demo](https://us-central1-adaptive-loading.cloudfunctions.net/app/cra-memory-considerate-loading/))
* [Memory considerate loading (SketchFab version)](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-memory-considerate-loading-sketchfab) with create-react-app ([demo](https://us-central1-adaptive-loading.cloudfunctions.net/app/cra-memory-considerate-loading-sketchfab/))
* [Device-class aware loading](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-device-class-aware-loading) ([demo](https://us-central1-adaptive-loading.cloudfunctions.net/app/cra-device-class-aware-loading/))
* [UA-aware code-splitting](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/cra-ua-aware-code-splitting) with create-react-app ([demo](https://us-central1-adaptive-loading.cloudfunctions.net/app/cra-ua-aware-code-splitting/))

### Advanced
* [React Movie - network-aware components](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/react-movie-network-aware-loading)
* [React Shrine - network-aware code-splitting](https://github.com/GoogleChromeLabs/environment-aware-components/tree/master/react-shrine-network-aware-code-splitting)

## Team

This project is brought to you by [Addy Osmani](https://github.com/addyosmani) and [Anton Karlovskiy](https://github.com/anton-karlovskiy).
9 changes: 9 additions & 0 deletions build.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ craMemoryConsiderateLoading="cra-memory-considerate-loading"
craMemoryConsiderateLoadingSketchfab="cra-memory-considerate-loading-sketchfab"
craNetworkAwareCodeSplitting="cra-network-aware-code-splitting"
craNetworkAwareComponent="cra-network-aware-loading"
craNetworkAwareOnlyIfCachedComponent="cra-network-aware-only-if-cached-loading"
craNetworkAwareDataFetching="cra-network-aware-data-fetching"
craUaAwareCodeSplitting="cra-ua-aware-code-splitting"
reactMovieNetworkAwareComponents="react-movie-network-aware-loading"
Expand Down Expand Up @@ -64,6 +65,14 @@ mkdir -p "${multipleBuildsPath}${craNetworkAwareComponent}"
cp -r $individualBuildAllFiles "${multipleBuildsPath}${craNetworkAwareComponent}"
cd ..

cd $craNetworkAwareOnlyIfCachedComponent
rm -rf node_modules build
npm install
npm run build
mkdir -p "${multipleBuildsPath}${craNetworkAwareOnlyIfCachedComponent}"
cp -r $individualBuildAllFiles "${multipleBuildsPath}${craNetworkAwareOnlyIfCachedComponent}"
cd ..

cd $craNetworkAwareDataFetching
rm -rf node_modules build
npm install
Expand Down
84 changes: 23 additions & 61 deletions cra-network-aware-only-if-cached-loading/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 91428e2

Please sign in to comment.