Skip to content

ales-dev-studio/flutter-portfolio-app

Repository files navigation

Flutter portfolio app

Demo image

Untitled

Installation

  1. Clone the repository:

    git clone https://github.com/ales-dev-studio/flutter-portfolio-app.git
  2. Change to the project directory:

    cd portfolio_app
  3. Install the dependencies:

    flutter pub get
  4. Run the app:

    flutter run

Structure

The app follows the Clean Architecture principles, with the following structure:

  • lib/
    • core/: Contains Core Utilities that used entire application
    • features/:
      • app: Initializes the app and sets up the dependency injection.
      • {features_a}:
        • data/: Contains the data layer responsible for handling data fetching and caching.
        • domain/: Defines the core business logic and entities of the app.
        • presentation/: Contains the UI layer of the app, including BLOCs, views, and widgets.
    • main.dart: Entry point of the application.

Dependencies

The app utilizes several Flutter packages:

  • bloc: Abstracts business logic from presentation and handles state management.
  • flutter_bloc: Implements the BLOC pattern for state management.
  • get_it: Provides dependency injection capabilities.
  • dio: Handles HTTP requests to fetch news articles.
  • cached_network_image: Caches images fetched from the network.
  • equatable: Simplifies equality comparisons for state management.
  • get_it: Provides dependency injection capabilities.
  • mockito: Used for mocking dependencies in unit tests.
  • flutter_test: Used for writing unit and widget tests.
  • shared_preferences: Handles caching fetched data from the network.
  • slang: Handles localization and multilingual support.
  • intl: Provides internationalization and localization facilities, including message translation, plurals/genders in messages, and date/number formatting based on the current Locale.

Some useful descriptions

BrickHub is a platform where developers can discover, install, and publish reusable templates called bricks.

See for more information: online documentation

To auto create clean architecture directories use mason:

mason make clean_architecture_folders --name home -o ~/AndroidStudioProjects/personal_portfolio/lib/features

online documentation A brick to create a feature and tests using best practices and your state management of choice:

mason make feature_brick

===============================

The multilingual structure of the app is implemented by slang package.

See for more information: online documentation

To use command-line tool run this command:

dart run slang

===============================

flutter_launcher_icons package is a command-line tool which simplifies updating launcher icons.

See for more information: online documentation

To use command-line tool run these commands:

flutter pub get flutter pub run flutter_launcher_icons -f flutter_launcher_icons.yaml

===============================

Formz package is a unified form representation in Dart. Formz aims to simplify form representation and validation in a generic way.

See for more information: online documentation online documentation

To use command-line tool run this command:

mason make formz_input -o ~/AndroidStudioProjects/personal_portfolio/lib/features --input_name PhoneNumber --input_type String --initial_value "''" --validate_empty_string true

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors