Flutter / Dart: связь между функциями в чистой архитектуре - PullRequest
0 голосов
/ 12 января 2020

Я новичок в изучении флаттера / дартса и пытаюсь создать небольшое приложение с использованием дизайна чистой архитектуры. Я прочитал несколько блогов и несколько презентаций о чистой архитектуре дяди Боба, прежде чем приступить к написанию кода, чтобы получить максимальную отдачу от него, и теперь пришло время его реализовать.

Я думаю, мое приложение можно разделить на 3 основных функции:

  • аутентификация
  • классы (получить доступ к урокам / викторинам по заданным c предметам)
  • admin (управление пользователем, создание уроков и т. д. c ..)

Я начал реализовывать функцию аутентификация по чистой схеме, то есть с доменом , данные и уровень представления, и я думаю, что я сделал это довольно хорошо. Он (почти) полностью протестирован (я пытаюсь сделать TDD) и, кажется, работает так, как я хотел.

Теперь возникает проблема. Я хочу реализовать функцию classes . Я sh может быть независимым от аутентификации , но это не так ... Функция classes должна получить аутентифицированного пользователя от аутентификации характерная черта. Я много искал по inte rnet, но не могу найти, как реализовать чистую архитектуру с несколькими функциями, которые должны обмениваться данными.

Итак, у меня есть 2 вопроса:

  • Как передать данные из функции в другую?
  • Как внедрить зависимость в функцию, которой нужны данные из другой функции? (я использовал get_it для аутентификация и внедрить все зависимости в методе main () перед сборкой приложения. Так как ему не нужны были какие-либо внешние данные, он работал хорошо. Теперь, похоже, сделать то же самое для классы , так как сначала нужно получить некоторые данные из аутентификации (*).

Заранее спасибо за ваши ответы.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Надеюсь, что вы все еще работаете над проектами Flutter после этого долгого времени.

Я возился с чистой архитектурой дяди Боба, и мне удалось внедрить ее во Flutter несколько месяцев go.

Он идеален, он разделяет ваш код на компоненты (модули, если вы выходите из собственной среды разработки Android) и изолирует ваши источники данных, поэтому если вы хотите изменить способ отправки запросов API для Например, вам нужно всего лишь изменить часть удаленного источника данных в вашем приложении, и все ваше приложение должно работать должным образом.

Я создал тестовое приложение с использованием чистой архитектуры, которое я только что загрузил на github и добавил Скромный файл readme, описывающий базовую c архитектуру и компоненты приложения, я буду работать над письменными статьями, описывающими код очень скоро.

На данный момент вы можете получить доступ к репо с здесь

0 голосов
/ 12 января 2020

Один из вариантов - если вы создаете экземпляры классов после того, как пользователь уже вошел в систему, вы можете передать эти данные в качестве параметра конструктора.

В общем, Provider, вероятно, лучший инструмент для внедрения зависимостей для флаттера. Если вы «предоставляете» класс аутентификации для дерева виджетов для остальной части приложения, вы можете в любой точке ниже указать «Provider.of» (контекст) для доступа к нему и к любому его полю publi c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...