Pull to refresh
1
0
Send message

И чем он отличается от известного и уже существующего get_it?

Из текста складывается впечатление, что ничем.

Хорошая и недооцененная штука. Я по ней делал доклад год назад https://www.youtube.com/watch?v=hIVirQHx1nk (надеюсь, тут можно указывать ссылку).

Автор тот же, который делал MobX для React (это порт с веба), есть коммьюнити с несколькими активными чуваками и спонсорами, что позволяет предположить, что он не загнется в ближайшее время. Бойлерплейта значительно меньше, чем в Bloc.

Два минуса я бы все-таки упомянул:

  1. В документации модели делают как сторы - не согласен с этим. Модели надо делать как обычные классы с final переменными, а обсерваблы как final Observable<T>.

  2. Не всегда очевидно, на какую именно переменную триггерится Observer. Он реагирует на любые обсерваблы внутри себя. Сейчас в issues идет обсуждение, не сделать ли дополнительно обсерверы с ручным (явным) подписанием на обсерваблы (как Selector в провайдере).

Опишем конструктивно. Использовать GetX - очень плохая идея. В нем проблема именно в том, что он является одновременно всем: и стейт-менеджер, и сервис-локатор, и роутер, и локализации, и разные утилитки - и всё это работает из рук вон плохо, с огромным количеством багов.
Очень много функционала, копирующего встроенный функционал Флаттера (напр., update - это ChangeNotifier, показ диалогов). Весь код краденный или плохо переписанный с других пакетов (без указания авторства). obs-переменные - списаны с пакета observabl_ish. Локализация основана на устаревшем easy_localization, и так далее.
Автор забил на своё творение и уже года 2 его не поддерживает.
Я поначалу интересовался им (хотя и не рискнул тянуть в прод), но когда вышел Navigator 2.0, а GetX его спустя полгода так и не поддержал, понял, что можно забыть про эту игрушку.

По своей сути, это усовершенствованный Server Locator 2.0, который дает возможность не использовать Context.

А что, простите, плохого, в Context? Это очень важная концепция во Флаттере, без которой не обойтись. Если вы не понимаете его, рекомендую разобраться. Насколько я помню, в GetX из-за отсутствия контекста были баги с неправильной отрисовкой диалогов.

Горячо рекомендую взглянуть на MobX - тот же принцип с реактивным точечным обновлением UI, но активно мэйнтейнится, и всё работает идеально. Я туда контрибьютил немного. GetX в сравнении с ним - отсутствует необходимая оптимизация (компьютеды и экшены).
Мы на своем проекте используем связку MobX + get_it + go_router + slang - в итоге имеем тот же тулсет, что и GetX, но все пакеты регулярно обновляются и поддерживаются.

Information

Rating
5,194-th
Registered
Activity

Specialization

Specialist
Dart
Flutter
MobX
Flutter Provider
Material Design
Разработка мобильных приложений
Unity3d
Разработка под AR и VR