Skip to content

luiz158/activity_app

 
 

Repository files navigation

Activity app

image image image

Приложение на основе surf-flutter-app-template и открытого api http://www.boredapi.com/documentation Версия flutter >= 2.5.0

Структура

  • assets
    • fonts
    • icons
    • images
  • lib
    • api
      • data
      • service
        • {name}
    • assets
      • res
      • themes
      • colors
      • strings
    • config
    • features
      • {name/common}
        • di
        • domain
          • entity
          • repository
          • mappers
        • service
        • screens
          • {screen_name}
            • widget
            • wm
            • model
        • widgets
    • utils
  • scripts
  • test
  • tools

lib - кодовая часть проекта, в ней есть такие папки как:

  • api - слой данных и взаимодействия с Rest API. В ней находятся файлы сгенерированные при помощи SurfGen.
  • assets - строковое представление необходимых ресурсов, темы, цвета, строки.
  • config - конфигурации проекта, например окружение(environment).
  • features - фичи используемые или реализуемые в проекте. В ней создаются папки с названиями фич, в которых находятся все, что к этой фиче относится. В папке common находятся сущности расшаренные между несколькими фичами или нужные всему приложению, старайтесь избегать добавления туда файлов без четкой необходимости, добавляйте в нее файлы только тогда, когда это действительно нужно. Структура фич:
    • di - контейнеры внедрения зависимостей.
    • domain - содержит:
      • entity - бизнес модели данных.
      • repository - репозитории, относящиеся к фиче.
      • mappers - мапперы данные-модель и обратно.
    • service - бизнес логика.
    • screens - экраны, относящиеся к фиче, каждый экран добавляется в отдельную папку с названием экрана, в которой отдельными файлами лежат:
      • widget - ElementaryWidget.
      • wm - WidgetModel.
      • model - ElementaryModel.
    • widgets - виджеты, относящиеся к фиче.
  • utils - необходимые утилиты.

scripts

Скрипты, необходимые для сборки артефакта проекта. Часть скриптов уже добавлена.

test

Тесты приложения.

tools

Скрипты и туллинг для разработки(например, api_generator).

Аналитика

Подключены:

Архитектура

Используем Elementary.

ApiGen

По умолчанию используем SurfGen.

Руководство по инициализации SurfGen на проекте(часть пунктов уже сделаны, проверьте их актуальность и соберите исполняемый файл(пункт 4)).

Руководство по использованию SurfGen на проекте.

DI

В качестве DI используем Provider.

Зависимости группируются в сущности-контейнеры с интерфейсом, описывающим набор поставляемых зависимостей. Эта сущность поставляется функционалу при помощи виджета DiScope, в который оборачивается соответствующий функционал.

Например, AppScope - базовая сущность всего приложения, которая содержит зависимости, живущие все время, все приложение мы оборачиваем в DiScope и передаем фабрику возвращающую AppScope.

Если какому-то функционалу нужны зависимости, требующиеся только ему, они выносятся в отдельную сущность, которая будет оборачивать этот функционал.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 85.5%
  • Ruby 7.5%
  • Makefile 2.3%
  • Shell 2.2%
  • Objective-C 0.9%
  • Kotlin 0.8%
  • Swift 0.8%