Как стать автором
Обновить
10
0

Моя литера Т стремится к равнозначности линий

Отправить сообщение

С радостью прочёл бы статью о применяемой связке. Она в целом очевидна, за исключением Riverpod + DI. Спасибо за материал!

Спасибо за развёрнутый комментарий! Все ответы крайне полезны для меня. Слово "функционал" - это то, что я искал :)

Прошу совета людей, профессионально занимающихся переводом
  1. Как грамотней (и доступней для понимания) переводить слово "feature", которое используется в контексте "дополнительной опции/возможности программы"? Слово "фича" хотя и резко понятное, однако при его использовании текут слёзы. А слово "функция" очень сильно ассоциируется с "function" и тем самым сильно искажает смысл предложения.

  2. Иногда подопытный материал может содержать очень странную композицию. Например, в оригинальном тексте данной статьи много предложений не объединены в абзацы. Я рассматриваю понятие "абзац" как группировку однородных единиц изложения и в данном случае испытываю сильное желания в объединении предложений. Я что-то нарушаю, если сгруппирую предложения?

  3. Исходя из предыдущего вопроса, насколько сильно можно модифицировать материал в целом? Часто я вижу, что некоторые аспекты можно видоизменить для более легкого восприятия материала: что-то убрать, где-то приписать, но при всём этом сохраняя общую структуру мысли. Однако, я обязательно буду сохранять логику и стиль автора и не посягать на что либо. Где грань модификаций?

  4. Часто, материалы поставляются с очень сильной (и обильной) рекламой всего и вся. Я считаю, что сохранять данную информацию обязательно. При этом, если рекламных материалов слишком много (хотя информация всё равно качественная) или же они не соответствуют моральным (и прочим) личным ориентирам, то я просто не буду переводить такой материал. Как поступаете вы?

  5. Какие права можно нарушить, переводя материалы из открытых источников (например, medium)? Обязательно ли получать личное разрешение автора на перевод?

Видимо, данной реплики было достаточно:

Оргами было предложено взять за основу любой доступный медиаплеер с открытым исходным кодом. Поэтому мы решили взять популярный плагин от флаттеровой команды с пабдева.

А так у товарища ui на flutter (предпоследний скриншот). Однако, конечно, этого явно недостаточно, чтобы приклеить одноименную плашку к материалу...@smthshere,есть что-либо интересное по dart-коду?

В предыдущем таком посте я имел корзину с продуктами (а не просто с кругляшками, как здесь), что было более оправдано :) На мой взгляд, так намного легче и быстрей понимать, что происходит.
А ещё, я краем ? слышал, что можно переменные смайликами именовать...

Отличие UnmodifiableListView от List.unmodifiable заключается в том, что первый представляет лишь обертку (wrapper или view - представление) над оригинальным List. А второй создает новый объект списка, его неизменяемую копию. Это означает, что изменение первоначального списка colors приведёт к изменению в UnmodifiableListView. Проверяем:

  List<String> colors = ['?', '?', '?', '?'];

  final colorsCopy = List.unmodifiable(colors);
  final colorsView = UnmodifiableListView(colors);
  
  colors[0] = '?';

  print(colorsCopy); // ['?', '?', '?', '?']
  print(colorsView); // ['?', '?', '?', '?']

При создании коллекции с помощью List.unmodifiable мы проходим по каждому элементу списка, чтобы скопировать его, поэтому сложность составляет O(n). Данное поведение распространяется и на другие коллекции, такие как Map и Set, которые имеют соответствующие реализации неизменяемости.

Очень любопытные вещи рассказываете, но, кажется, уровень моего MVx восприятия не может обуздать данный материал. С нетерпением жду статью о волшебной таблетке :)

Поток мыслей в оригинальной статье порядком сумбурный, однако это не отменяет практической значимости статьи :) Пишите/переводите ещё, материал интересный ?

Господа, я честно пытался вместить в 1500 максимум полезной информации :)

А теперь представьте, что корзина повреждена (список равен null), и совсем не ясно, есть ли в ней продукты. Используйте null-aware spread оператор – ...?

List<String>? brokenBasket;

final myBasket = <String>['?', ...?brokenBasket, '?'];

Поддерживаются и другие коллекции, такие как List, Set, и Map. А ещё, мы можем ожидать (await) выполнения Future прямо в коллекции! Живой пример: я очень люблю свеженарезанный хлеб ?. В некоторых магазинах есть специальный инструмент для его нарезания. Остается только положить продукт в хлеборезку и подождать минутку, пока не появятся слайсы, которые после будут украшать пустующее место в корзине:

() async {
  final breadslicer = Future.value({'?': 12});

  Map<String, int> myBasket = {'?': 3, ...await breadslicer, '?': 2};
};

Используйте spread с пользой и ваш код станет восхитительным.

---

final trunkOfMyCar = <String>[
  ...['?', '?'],
  '?',
  ...[...['?', '?', '?', '?'], ...['?', '?']],
  ...['?', ...['?', '?', '?']],
  ...['⚽️', '?', '?'],
];

И всё-таки, остаётся открытым вопрос: как на сильно-айтишном ресурсе новый редактор "такого" качества и почему баги, начиная от исчезновений кдпв и опросов в статьях и заканчивая полуживым трекером, живут и здравствуют?

P.s. и это я ничего ещё не говорю про мобильную версию (pwa), где с трудом можно комментарий написать.

Здорово, нужно будет попробовать сделать также. Спасибо за подробный материал ?

После hive и их офигенных бенчмарков (а также способа записи файлов –> большой вероятности, что мы потеряем все данные в момент exception), я даже не знаю, можно ли доверять isar. У меня нет времени и желания уличать в чём-либо isar, но нарочито написано

это действительно правда? (про web)

ошибся с веткой ответа, никак не могу привыкнуть к комментариям на Хабре :) С использованием Markdown не могу расширить поле для ввода текста и не знаю, как закрепить картинку. А когда пытаюсь переключиться обратно – сбрасывается ответ с ветки

Постараюсь аргументировать свой выбор. Функция sameTypes() это "улучшенный" вариант value is bool. Если вы попробуете сделать что-то такое value is List<String>, то потерпите фиаско. Определение sameTypes() в настоящее время тоже самое, что и взаимная подтипизация (mutual sub-typing). Повторюсь, как это выглядит:

bool sameTypes<S, V>() {
  void func<X extends S>() {}
  // В спецификации Dart говорится, что это верно только в том случае, 
  // если S и V одного типа.
  return func is void Function<X extends V>();
}

По поводу get. Так как всё завернуто в try-catch, всё вполне безопасно. SP может выдать только известные заранее типы. Если мы укажем неправильный тип значения по-умолчанию (второй аргумент), то так или иначе получим ошибку (и вернем этот тип).
Замечу, что под капотом у SP все эти "безопасные" getBool, getInt и т.д. это тот же самый каст через as.

Смотрите

Если учитывать реализацию для Yandex, то да. А так, для OpenWeather есть реализация геокодирования (прямого и обратного) в пакете weather_pack (под моим руководством ?)

Спасибо, даже не знал о существовании данных пакетов. За MIT отдельное уважение :) App Runner прям маст-хэв, уже устал копировать код из проекта в проект ?

Крутой материал, спасибо! Как думаете, dart 3.0 может нас отдалить от кодогенерации хоть ненадолго? :)

Спасибо за проверку. Ведь это и в самом деле далеко не 30мб, а вдвое меньше (-44%). И опять же, на чём там популярные сейчас приложухи написаны? Пол гига веса – тут хоть на нативе, хоть на креативе, результат удручающий (как и работа таких чудо приложений на неплохих устройствах)

Вы не используете команду --split-per-abi? Откуда такой размер для flutter приложения в 30мб? Да даже толстый апк не выйдет весом более 30мб...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность