Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mobile performance project #432

Open
1 of 13 tasks
mwpark2014 opened this issue Feb 2, 2023 · 4 comments
Open
1 of 13 tasks

Mobile performance project #432

mwpark2014 opened this issue Feb 2, 2023 · 4 comments
Labels
epic Large body of work that can be broken down into a number of smaller issues help wanted Extra attention is needed

Comments

@mwpark2014
Copy link
Contributor

mwpark2014 commented Feb 2, 2023

Summary

https://waterthetrees.com/ works fairly performantly on modern devices. How does it fare with low-end devices? We care particularly about tree planting organizations that might be using this web app on low-end mobile devices out in the field.

Let's audit the current performance by adding telemetry and performing an analysis on the current performance of the app. Then, we can prioritize investigations into possible resolutions.

Audit current performance

There are a number of metrics we can try to generate. I recommend Google Core Web Vitals as a good overall metric of user- perceived performance.

Improve performance for low-end mobile devices

Note: Likely to get performance improvements once clustering (ongoing project) is implemented.

@mwpark2014 mwpark2014 added the epic Large body of work that can be broken down into a number of smaller issues label Feb 2, 2023
@mwpark2014
Copy link
Contributor Author

Google Lighthouse audit for windows 10 laptop w/ i7 7th gen, integrated graphics, 8gb ram:
image
image
image
image

Google Lighthouse audit for same laptop and with Moto G4 mobile emulator w/ throttled 4G connection:
image
image
image
image
image

@zoobot if you're interested

@mwpark2014 mwpark2014 added the help wanted Extra attention is needed label Feb 4, 2023
@zoobot
Copy link
Member

zoobot commented Feb 4, 2023

Arggggg 26% is very bad, 59% is bad too.
Performance needs fixing.

What can potentially be done to help:

  • Double check lazy loading
  • Can menu load first, Is header font slowing it down a ton? Custom header font is larges first load
  • Default flat map on slower devices instead of globe
  • Instead of loading all vector layers with globe load, on zoomed out level, load city names with tree counts
  • Minify js
  • Moving to WebP worth it? This is huge: https://waterthetrees.com/0bcdd304fd12eaeb32cf.jpg

More ideas?

@zoobot
Copy link
Member

zoobot commented Feb 4, 2023

We should also bring accessibility up to 100%.

Geolocate and plant buttons need type="button"

Remove this [user-scalable="no"]

@mwpark2014
Copy link
Contributor Author

Arggggg 26% is very bad, 59% is bad too.
Performance needs fixing.

We need to keep in mind that these tests were conducted on a relatively low power machine. It'll be a much better picture to gather metrics from real users and prioritize accordingly. I would be very curious as to the characteristics of the population of user devices that are used in planting tree projects. I imagine they would be older low-powered devices with spotty data connections due to being outdoors. The tasks within Audit current performance will be very important to gain the missing information we need on how good/bad performance really is!

Once we get better telemetry, that will empower a better analysis on what the bottlenecks of our app are. I have a strong hunch that mapbox itself is the biggest obstacle we'll have to tackle, since that's vast majority of our JS and it requires hardware acceleration to even run (does a bunch of 3d projections).

Great suggestions though. I'll add them to the project list. Anyone can work on them as they please or drive the project as a whole!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic Large body of work that can be broken down into a number of smaller issues help wanted Extra attention is needed
Projects
Status: Help Wanted
Development

No branches or pull requests

2 participants