Find study spaces at the University of Michigan, Ann Arbor
All images in images/buildings/
and images/areas
must be JPEG files.
images/buildings/*.jpeg
needs to be at least 200x200pximages/areas/*.jpeg
needs to be at least 600x400px
images/buildings/*.jpeg
needs an aspect ratio of 1:1 (square)images/areas/*.jpeg
needs an aspect ratio of 1.5:1 (width is 1.5 times longer than height)
If an image does not meet the above recommended aspect ratios, they will be scaled and cropped dynamically.
Run the generate_images.sh
to convert jpeg images in images/
folder to webp images.
The script then outputs the webp images to assets/
Icon tree shaking is still not supported in Flutter Web as of Apr 6, 2022. You can track this feature
on this Flutter GitHub issue.
Without tree shaking, the full MaterialIcons-Regular.otf
weighs 1.5MB without compression and still
weighs a whopping 515KB after compression by server. Downloading this full otf file slows down initial
page load speed so we need to manually package only those material icons used in this project.
We rely on fluttericon.com to generate the custom icon font for us. To add or change the list
of icons packaged:
- Go to fluttericon.com
- Drag and drop the
fluttericon_config.json
to the website - Search for new icons to include or drag and drop custom SVGs to the website.
- Download a zip from the website
- Replace the
fonts/MaterialIconsSelected.ttf
andlib/MaterialIconsSelected.dart
with the new files in the zip folder - Replace the old
fluttericon_config.json
with the new one in the downloaded zip
- fluttericon.com only accepts
<path>
in SVG, so newer versions of material icons may need manual conversion to work on fluttericon.com. - Reference this guide for more details: https://medium.com/codechai/how-to-use-custom-icons-in-flutter-834a079d977
Run ./generate_app_name.sh
to generate new app names for Android, iOS, and Web.
-
Install PNG compression tool pngquant
brew install pngquant
-
Install ImageMagick tool
brew install imagemagick
-
Put the new icons (must be 512x512) in as
assets/icon_512.png
andassets/icon_maskable_512.png
-
See this tutorial on maskable icons. You should also test your maskable icons using this online tool.
-
Run
generate_icons.sh
. You can only run this script once on the new icons! Running multiple times may increase the size of the icons because of repeated redundant compression.
See More
Icon location: web/icons/icon_192.png
and web/icons/icon_512.png
Tool: https://appiconmaker.co/Home
You can generate and download icon_192.png
and icon_512.png
under the Android section
Icon location: web/icons/icon_maskable_192.png
and web/icons/icon_maskable_512.png
Tool: https://maskable.app/
Tutorial: https://web.dev/maskable_icon/
Icon location: web/favicon.png
Tool: https://realfavicongenerator.net/
Icon location: assets/splash.png
Copy icon_512.png
to the above location and rename it to splash.png
.