Basics

Metro CLI tool



Introduction

Metro is a CLI tool that works under the hood of the Nylo framework. It provides a lot of helpful tools to speed up development.


Install

Mac guide

Run the below command from the terminal

echo "alias metro='dart run nylo_framework:main'" >>~/.bash_profile && source ~/.bash_profile

If you open a project that uses Nylo, try to run the following in the terminal.

metro

You should see an output similar to the below.

Usage: 
    command [options] [arguments]

Options
    -h

All commands:

 make
  make:controller
  make:model
  make:page
  make:stateless_widget
  make:stateful_widget
  make:theme
  make:event
  make:provider
  make:api_service
  make:theme
  make:route_guard


Make controller

Making a new controller

You can make a new controller by running the below in the terminal.

dart run nylo_framework:main make:controller profile_controller
# or with the alias metro
metro make:controller profile_controller

This will create a new controller if it doesn't exist within the lib/app/controllers/ directory.


Forcefully make a controller

Arguments:

Using the --force or -f flag will overwrite an existing controller if it already exists.

metro make:controller profile_controller --force


Make model

Making a new model

You can make a new model by running the below in the terminal.

dart run nylo_framework:main make:model product
# or with the alias metro
metro make:model product

It will place the newly created model in lib/app/models/.


Make a model from JSON

Arguments:

Using the --json or -j flag will create a new model from a JSON payload.

dart run nylo_framework:main make:model product --json
# or with the alias metro
metro make:model product --json

Then, you can paste your JSON into the terminal and it will generate a model for you.


Forcefully make a model

Arguments:

Using the --force or -f flag will overwrite an existing model if it already exists.

dart run nylo_framework:main make:model product --force
# or with the alias metro
metro make:model product --force


Make page


Making a new page

You can make a new page by running the below in the terminal.

dart run nylo_framework:main make:page product_page
# or with the alias metro
metro make:page product_page

This will create a new page if it doesn't exist within the lib/resources/pages/ directory.


Create a page with a controller

You can make a new page with a controller by running the below in the terminal.

Arguments:

Using the --controller or -c flag will create a new page with a controller.

dart run nylo_framework:main make:page product_page --controller
# or with the alias metro
metro make:page product_page -c


Create an auth page

You can make a new auth page by running the below in the terminal.

Arguments:

Using the --auth or -a flag will create a new auth page.

dart run nylo_framework:main make:page login_page --auth
# or with the alias metro
metro make:page login_page -a


Create an initial page

You can make a new initial page by running the below in the terminal.

Arguments:

Using the --initial or -i flag will create a new initial page.

dart run nylo_framework:main make:page home_page --initial
# or with the alias metro
metro make:page home_page -i


Create a bottom navigation page

You can make a new bottom navigation page by running the below in the terminal.

Arguments:

Using the --bottom-nav or -b flag will create a new bottom navigation page.

dart run nylo_framework:main make:page dashboard --bottom-nav
# or with the alias metro
metro make:page dashboard -b


Forcefully make a page

Arguments:

Using the --force or -f flag will overwrite an existing page if it already exists.

dart run nylo_framework:main make:page product_page --force
# or with the alias metro
metro make:page product_page --force


Make stateless widget

Making a new stateless widget

You can make a new stateless widget by running the below in the terminal.

dart run nylo_framework:main make:stateless_widget product_rating_widget
# or with the alias metro
metro make:stateless_widget product_rating_widget

The above will create a new widget if it doesn't exist within the lib/resources/widgets/ directory.


Forcefully make a stateless widget

Arguments:

Using the --force or -f flag will overwrite an existing widget if it already exists.

dart run nylo_framework:main make:stateless_widget product_rating_widget --force
# or with the alias metro
metro make:stateless_widget product_rating_widget --force


Make stateful widget


Making a new stateful widget

You can make a new stateful widget by running the below in the terminal.

dart run nylo_framework:main make:stateful_widget product_rating_widget
# or with the alias metro
metro make:stateful_widget product_rating_widget

The above will create a new widget if it doesn't exist within the lib/resources/widgets/ directory.


Forcefully make a stateful widget

Arguments:

Using the --force or -f flag will overwrite an existing widget if it already exists.

dart run nylo_framework:main make:stateful_widget product_rating_widget --force
# or with the alias metro
metro make:stateful_widget product_rating_widget --force


Make API Service


Making a new API Service

You can make a new API service by running the below in the terminal.

dart run nylo_framework:main make:api_service user
# or with the alias metro
metro make:api_service user_api_service

It will place the newly created API service in lib/app/networking/.


Making a new API Service with a model

You can make a new API service with a model by running the below in the terminal.

Arguments:

Using the --model or -m option will create a new API service with a model.

dart run nylo_framework:main make:api_service user --model="User"
# or with the alias metro
metro make:api_service user --model="User"

It will place the newly created API service in lib/app/networking/.


Use Postman to Make API Services

You can make new API services using Postman v2.1 collection files.

First, you must export your postman collection into a JSON file (using v2.1).

Copy the exported file into the public/assets/postman/collections directory.

After copying the file into the above directory, go to the terminal and run the following command.

Arguments:

Using the --postman or -p option will create a new API service using a Postman collection.

dart run nylo_framework:main make:api_service my_collection_name --postman
# or with the alias metro
metro make:api_service my_collection_name --postman

This will prompt you to select a collection from the public/assets/postman/collections directory.

Postman Environments

If your postman collection has an environment, export the file and add it to the public/assets/postman/environments directory.

Then, run the below command.

dart run nylo_framework:main make:api_service collection --postman
# or with the alias metro
metro make:api_service collection --postman

It will prompt you to select an environment from the public/assets/postman/environments directory.

What does it do?

It will also add Models to your project if your Postman collections have a saved response. You can check if your collection has saved responses by going to your Postman collection, then selecting a request. You should see a dropdown which will contain any saved responses.

The saved response name will be used for the Model name that Nylo will create.


Forcefully make an API Service

Arguments:

Using the --force or -f flag will overwrite an existing API Service if it already exists.

dart run nylo_framework:main make:api_service user --force
# or with the alias metro
metro make:api_service user --force


Make event


Making a new event

You can make a new event by running the below in the terminal.

dart run nylo_framework:main make:event login_event
# or with the alias metro
metro make:event login_event

This will create a new event in lib/app/events.


Forcefully make an event

Arguments:

Using the --force or -f flag will overwrite an existing event if it already exists.

dart run nylo_framework:main make:event login_event --force
# or with the alias metro
metro make:event login_event --force


Make provider


Making a new provider

Create new providers in your application using the below command.

dart run nylo_framework:main make:provider firebase_provider
# or with the alias metro
metro make:provider firebase_provider

It will place the newly created provider in lib/app/providers/.


Forcefully make a provider

Arguments:

Using the --force or -f flag will overwrite an existing provider if it already exists.

dart run nylo_framework:main make:provider firebase_provider --force
# or with the alias metro
metro make:provider firebase_provider --force


Make theme


Making a new theme

You can make themes by running the below in the terminal.

dart run nylo_framework:main make:theme bright_theme
# or with the alias metro
metro make:theme bright_theme

This will create a new theme in lib/app/themes.


Forcefully make a theme

Arguments:

Using the --force or -f flag will overwrite an existing theme if it already exists.

dart run nylo_framework:main make:theme bright_theme --force
# or with the alias metro
metro make:theme bright_theme --force


Make Route Guard


Making a new route guard

You can make a route guard by running the below in the terminal.

dart run nylo_framework:main make:route_guard premium_content
# or with the alias metro
metro make:route_guard premium_content

This will create a new route guard in lib/app/route_guards.


Forcefully make a route guard

Arguments:

Using the --force or -f flag will overwrite an existing route guard if it already exists.

dart run nylo_framework:main make:route_guard premium_content --force
# or with the alias metro
metro make:route_guard premium_content --force


Build App Icons

You can generate all the app icons for IOS and Android by running the below command.

dart run flutter_launcher_icons:main

This uses the flutter_icons configuration in your pubspec.yaml file.