Directory Structure
Introduction
Keeping projects organized can be difficult when there are a lot of moving parts.
Nylo tries to solve this with a simple project structure.
App Directories
All the app directories are listed inside the lib
directory where your main.dart file runs.
-
app
this folder includes any files relating to models, controllers and networking.-
controllers
Include your controllers here for your Widget pages. -
models
Create your model classes here. -
networking
Add any networking classes here for managing APIs or fetching data from the internet.
-
-
config
this folder includes configuration files like for the theme or anything else you need. -
resources
this folder includes any files that are key components for your users UI experience like pages, widgets and themes.-
pages
Include your Widgets here that you will use as Page's in your project. E.g. home_page.dart. -
themes
By default we include two themes here but you can add more if your project needs to support more. -
widgets
Any widgets you need to create can be inserted here like a date_picker_widget.dart file.
-
-
routes
this folder includes any files relating to models, controllers and networking.- router.dart contains the router for your application.
Public assets
All public assets can be found in public/assets
. This directory is commonly used for images, fonts and more files that you may want to include in your project.
It's important to add any new files into the
pubspec.yaml
file too.
-
app_icon
This is used for generating app_icons for the project. -
images
Include any images here in this directory. -
fonts
Add any custom fonts here.
Retrieving an image asset
To get a image asset you can use getImageAsset(String key)
Image.asset(
getImageAsset("nylo_logo.png"),
height: 50,
width: 50,
),
In this example, our public/assets/images/
directory has one file nylo_logo.png
.
- public/assets/images/nylo_logo.png
Retrieving a public asset
You can get any public asset using getPublicAsset(String key)
_controller = VideoPlayerController.asset(
getPublicAsset('videos/intro.mp4'))
..initialize().then((_) {
setState(() {});
});
In this example, our public/assets/videos/
directory has one file intro.mp4
.
- public/assets/images/intro.mp4