Contributor Flutter
49 subscribers
53 photos
6 videos
1 file
52 links
Про Flutter и другое
Download Telegram
Блять, как же я кайфовал от написания этого пакета, для реактивности валидаций формачек.

Есть свой Builder который ограничивает ответственность твоей формачки.

Можно выбрать из двух вариантов отрисовки формы.

Знать, когда и что поменялось благодаря field-ам и валидны ли эти изменения

Короче блять скинхенд сделал валидацию формачки 🥃🧊🎉

Я кайфую, всем остальным удачи😉

#package, #fform
17👍2🔥1
COPILOT или GOD?💻

Просто и легко скажу, годнота, которая ускоряет твою работу на 30 - 50%.

Стоит ли она своих денег? ой бай, однозначно.

Это тот самый подпёздывающий трудяга, который типо знает весь проект на зубок, ещё и учавствовал в создание всего на свете.

🐝 Единственное он рабочая пчёлка, которой дали указания, и он со своим указанием справиться.

Улучшить качество кода он не сможет. Но поддерживать его в исходном состояние, как два пальца.

Вывод годный инструмент, в годных руках
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Сосать + лежать
1🔥1
Кто знает меня, наверное знает как я люблю слово multi.🗑

До этого был пакет multi_bloc_builder 👀. А теперь и мой любимый и прекрасный fform тоже поддерживает multi формачки.

1. Решает проблему с огромными формами. своей удобной реализацией.

2. Добавляет возможность валидировать динамические формы.

#package
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
Йоу снова залетаю c новым пакетом🔥.

Который мне за несколько часиков кодинга👨‍💻, помог отловить почти все моменты, которые стоит перевести

И туц* туц* туц* барабанная дробь

markup_analyzer

Вкратце, опишу ситуацию для полного понимая

- Ты забыл, перевести текст
- Отправляешь pull request на обработку
- Твоя крыша проверяет, что ты своими ручками сделал
- Ты светишься, сейчас тебя уже допроверят и можно приступать к новой таске
- Крыша рассердилась, на то что потратила на тебя время и отправила на хуй до переводить текст-а, которые ты так отчаянно копировал из фигмы и обещал себе же перевести попозже)

Я предлагаю уменьшить количество таких ситуаций, до минимума😇. Если подходить к переводу текста с полной серьёзностью

Первое что вы делаете, это в ваш список команд добавляете новую

dart run markup_analyzer


И если вы немного забывчивый, можете так же прокинуть эту команду в workflow 👩‍💻

Потом конечно жиииии есть, проходит workflow . Ждёте пока ваши комитики всплятутся в одно и кайфуете, что вам не нужно париться повторно по этому моменту

#package
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Придумал пример по лучше

- бля, на прод залил
🔥1
Наверное лучшее, что могли воссоздать из фронта на мобилке. Это story widgetbook.

- Реализация изменения компонентов через props-ы в реальном времени - есть
- Тестирование на разных устройствах - есть
- Изменение темы, локализации - есть
- Настроить workflow - уже ручками справишься)

Хоть этому open source проекту два года, но как я рад что есть люди, которые развивают сообщество и впринципе улучшают разработку

И грустно, что этим продуктом мало кто пользуются🥺

#package #respect
👍3🔥1
Когда-то мне зелёному очень помог этот пакет multi_value_listenable.
Думаю в маленьких проектах, он сможет услужить вам службу😉
2🔥1
По обновлениям

depend: Менеджер зависимостей, теперь ваши зависимости можно взять из context-а

multi_bloc_builder: MultiBlocBuilder поможет, еcли есть большая вложенность BlocBuilder-ов и надо как-то упросить вашу верстку. Появился метод .get<BlocBase> который без привязки типов и index-ов вытаскивает нужный Bloc

multi_value_listenable: — ValueListenableBuilder-ов вложенности. Честно, не использовал бы этот пакет в больших проектах. Но как быстрая реализация, вай нот.

fform: Подвергся тоже некоторым изменениям, теперь каждый наследник FFormField-ов имеет свой ключ, который можно привязать к любому виджету, для дальнейших взаимодействий.
Хороший пример, если большая Форма то она скролит до нужного field-а. Что повышает пользовательский опыт)

В планах

1. Добить все пакеты до 160 pub point-ов
2. Улучшить читку markup_analyzer
3. Улучшить документации для всех этих пакетов, потому что где-то желает лучшего
4. Пополнить коллекцию пакетов fform-validator-ом. Хотелось бы собрать стабильную комбу на долгие годы

🐚*звук моря*
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
markup_analyzer + easy I18n plugin = 💥

Либа проверяет не переведённые строки (командной строкой)

Плагин проверяет на не переведённые языки или дубликаты переводов

Гармония, одним словом)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
depend, извиняюсь, руки не крюки можешь сам по ссылке прочитать
🔥2
С днём разработчика, всех душнил и pro юзеров компа🔥

Так выпьем же за настройку принтеров и перезапуск роутера🍾
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🔠🔠🅰️🔠🔠🔠❗️

Мне из каких то дней подчиненный скинул ссылку на sealed class, я просто ответил что это почти тоже самое, что и freezed. Но попробовал один раз sealed class понял, что я сяду и стану переписывать все Bloc-и на них.

Потом через какое-то время появился, апдейт для плагина Bloc-ов. Где уже по деволту сетались sealed.

Ещё через какое-то время dart и flutter начал переписывать нативные вещи на sealed.

И моему счастью не было предела

I love sealed❤️ Realy

#respect
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
JS/TS, как же люблю этого парня, люблю за его свободу, но как раз таки за это не люблю.

Когда типы могут быть "s" | "m" | "xl", но могут и не быть.

+ #respect JS

Кстати недавно сел за фронт, а именно за Nuxt.
Как поняли ощущения противоречивые.

И вам не хворать, stackoverflow в помощь
🔥 Mix — ребята уже 3 года строят систему стилизации для Flutter.

Как же давно я их заметил и каждый раз думаю: ГРАМОТНО. СМЕЛО. Они, безусловно, идут своим путём, создавая что-то действительно стоящее для Flutter-сообщества.

Сам строил похожую систему на основе нашего ui-kit-а, конечно, не в таком масштабе и более нативно, но best practices у нас действительно схожи.

Каждый раз, когда смотрю на этот пакет, хочется попробовать его в реальном проекте.

#package #respect
FlutterMapp - Канал для того, чтобы узнать фишки о которых возможно не подозревал.

35 Flutter Tips That Will Change Your Life
- Полезно👍🏻
10x Your Speed With Flutter - Полезно👍🏻

Не все plugin-ы из видео есть в Android Studio, но не значит, что нет аналогов ( yдачи в поиске ).
🔥1
Gap (Package of the Week) 10 months ago

Вообще без понятия, как я прошёл этот пакет.
Ну он просто стоит того, чтобы быть недельным🫡

Фронты🫵 ловите кайф

Как алтернатива SizedBox-ам👍🏻 но конечно не сравниться с gap на вебе.

Но чтобы это был настоящий gap:
1. Нужно создавать наследника над Flex-ом и реализовывать свои Column и Row.
2. Либо допинать с gap-ами Flex Widget, а потом закинуть pull request на Flutter.

Для остальных виджетов, которые реализуют функционал пакета gap. Тоже по тому же принципу, а то это просто замена SizedBox в разных его реализациях.

Моя реализация - 1 вариант реализации, который демонстрирует. Что такое gap в вебе +-

#package
🔥1
Снова насчёт Mix,

Он как минимум два раза появлялся на official channel Flutter in Youtube. Так что сто процентов стоит заценить.

Чек видюхи:

- Mix (Package of the Week): 1:37
- Observable Flutter #45: Universal styling with Mix: 1:44:49
🔥2
Дело сделано, fform_validator есть.

Решил не создавать цепочные функции для валидации, которые как раз таки часто используются в validator-ах и ORM-ках. Больше похоже на утилиты, чем на полноценный пакет)

Но как он хорошо встал, под fform. Check this!

import 'package:fform/fform.dart';
import 'package:fform_validator/fform_validator.dart';

class PasswordValidationException extends FFormException {
final bool isMinLengthValid;
final bool isSpecialCharValid;
final bool isNumberValid;

PasswordValidationException({
required this.isMinLengthValid,
required this.isSpecialCharValid,
required this.isNumberValid,
});

bool get isValid => isMinLengthValid && isSpecialCharValid && isNumberValid;
}

class PasswordField extends FFormField<String, PasswordValidationException> {
PasswordField(String value) : super(value);

@override
PasswordValidationException? validator(String value) {
final validator = FFormValidator(value);
return PasswordValidationException(
isMinLengthValid: validator.isMinLength(8),
isSpecialCharValid: validator.isHaveSpecialChar,
isNumberValid: validator.isHaveNumber,
);
}
}


#package
🔥1
Contributors - это проект, который я запускаю для продвижение своих и чужих OpenSource - пакетов, языков и технологий. Для тех кто горит любовью к кодингу и желает поделиться своими инструментами с другими. Будет запущено спонсорство, для вознаграждения контрибьюторов проекта.

Чтобы попасть в этот проект:
- Нужно доказать и показать на практике, что ваш os может быть полезен любому сообществу программистов, от Basic-а до Dart
- 1 пункт это единственный пункт, для вступления.


Причины для отмены поддержания вашего os, проектом:
- Устаревание вашего os, для сообщества

#contributors
🔥1
fluttergems.dev - сайт сказка

Наверное лучший сайт, чтобы найти подходящий пакет по категориям.

Заходишь, выбираешь категорию и вот тебе список. Было бы классно, если была бы такая же категоризация для нашего любимо pub.dev

Кстати можно зайти, посмотреть проблемные участки твоего проекта и найти алтернативу. Или же написать свою, если не устраивают все остальные)

#respect
🔥1