Обновить
10
0

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

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

Полтора года использую puro, полёт отличный. Опыт лучше, чем с fvm (может он сейчас и улучшился, но когда я делал о нём материал - дела были так себе). Быстрый вход:

Есть бенчмарки производительности стандартной вёрстки и mix-верстки?

Думаю, есть один существенный минус: обычно flutter-разработчики привыкли верстать в flutter-стиле. Поэтому новым разработчикам придётся учиться верстать с помощью mix, на что потребуется время и их большая мотивация ломать себе мозг новыми приколами.

Ещё: иногда чтобы сверстать что-то сложное (и может даже с вычурной анимацией) нужно немало времени и знаний. Mix действительно настолько классный, что позволит это сделать, или придётся от него отказываться в таких случаях? (в итоге получаем код вёрстки, в котором вот здесь mix, а здесь ваниль)

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

Однако, кое-что можно сделать своими золотыми. Я использую подобный рецепт:

  1. Заходим в Highlighter и в поведении клиппера указываем "ничего не делать" (вместо "заменять весь контент")

  2. Далее, заходим в шаблон (создаём отдельный для habr.com) и в самом низу в поле "Содержание заметки" мы добавляем:

    {{content}}
    
    ## Highlights
    
    {{highlights|map:item => item.text|join:"\n"}}

Идея состоит в том, что не все комментарии одинаково важны. И как правило их не так уж и много. Поэтому на целевой статье мы долистываем до раздела комментариев и быстрым сочетанием "Highlights this page" выделяем только области "Автор и дата" и "текст комментария". И позже "Add to obsidian".

Предлагаю попробовать прямо на этом комментарии :)

А так, есть ещё способ докапаться до селекторов и настроить это в автоматическом режиме. Правда, повторюсь, не все комментарии полезны.

К сожалению, буквально в 20 числах октября эта функция работала нормально. А потом ни с того, ни с сего резко перестала - теперь наблюдается каша в коде. Есть открытая задача (и вот недавняя) на эту тему.

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

Уже как почти месяц использую - отличная штука для быстрого сохранения важных материалов в базу знаний!

Хабы Flutter*, Dart* пожалуй лишние, а вот Creative Commons* весьма в тему. За материал - спасибо!

Монументально.

Спасибо! Сложно и подробно.

Можно рассмотреть slang, который позволяет разделить переводы на несколько файлов, используя namespace. Также там весьма годный консольный тулинг для работы с переводами.

Такой экземпляр не стыдно иметь на полочке :) Уже жду! Автору и издательству благодарность за проделанную работу ?

Очень классный материал с информативными скриншотами, проделана большая работа! Даже не подозревал, что всё настолько вариативно

Статья неконструктивна. Вы не можете сравнивать несопоставимые вещи. get - это огромный комбайн всего и вся сомнительного качества, пакет bloc предоставляет только стейт-менеджмент.

Далее, сквозь весь текст путаются понятия. Если коротко, BLoC != пакету bloc, MVC != GetX, BLoC != GetX .

Ещё кое-что. Признайтесь честно, вы смотрели исходный код get ? Подключите последнюю preview версию get: ^5.0.0-release-candidate-5 , которая есть на pub.dev и посмотрите. Посмотрите, что эта библиотека из себя представляет, что импортирует, из чего состоит, в особенности проверьте степень документации и комментирования, и обратите внимание на закомментированные участки кода. Вот, из прекрасного:

Оно вам точно нужно в проде или где-то ещё?
путь get-5.0.0-release-candidate-5/lib/get_navigation/src/routes/get_transition_mixin.dart
путь get-5.0.0-release-candidate-5/lib/get_navigation/src/routes/get_transition_mixin.dart
ниже в этом же файле
ниже в этом же файле

Не стройте иллюзий, этим нельзя пользоваться всерьёз.

Спасибо, изучал с удовольствием! Макросы появились во благо, но не весь спектр задач должен закрываться ими.

P.s. Riverpod на текущий момент (версия ^2.5.1 ) можно смело использовать без генерации. Плюшки вроде неограниченного числа family-параметров решаются с помощью Record или обычных моделек, для расширенной отладки можно добавить name-параметр, а stateful hot-reload доступен, если юзать Notifier-классы или же в обычных провайдерах воспользоваться глобальными приватными функциями. Да, плата есть - создание инстансов бойлерплейтно, особенно когда есть family параметры.

Кажется, вы ошиблись сабом: вместо Github (в статье ничего об этом нет), можно использовать Flutter :)

Серьёзно, это очень круто! Жаль, не хватает полноценной АПИшки, чтобы не тратить время на реверс-костыли ) Аналитика, к слову, в очень выгодном свете отличает твоё приложение от холодного и скучного "стока". Успехов!

Язык поддерживает ООП с классами и множественным наследованием

Множественного наследования здесь нет, это не c++

  • List: упорядоченная коллекция объектов одного типа.

Не обязательно одного типа

void printUserInfo({String name, int age}) { print('Name: $name, Age: $age');}void main() { // вызов printUserInfo(name: 'ivan', age: 30);}

Этот код даже не заведётся, поскольку параметры в функции должны быть помечены как обязательные. Тоже самое и в printUserInfoOptional

Функции высшего порядка принимают другие функции в качестве аргументов или возвращают их

???, не понимаю, на чём сделан акцент? Что функции это объекты на самом деле?

В Dart нет специального синтаксиса для объявления интерфейсов

Есть уже как год, появился в Dart 3, это модификатор interface

if(number % 2 == 0) {...}

Можно я просто побрюзжу и скажу, что уже пора использовать isEven или isOdd для этой цели

В Dart с включённым null safety переменные по умолчанию не могут быть null:

Передача данных между экранами обычно осуществляется через конструкторы и Navigator API:

SecondScreen({Key key, @required this.data})

Эта мысль преследовала меня сквозь весь текст. Теперь явно понятно, что весь материал представляет из себя простыню личных заметок, когда ещё использовался dart ~2 версии...

Напомню, что в рамках онлайн‑курсов OTUS вы можете изучить самые популярные ЯП, а также зарегистрироваться на ряд бесплатных мероприятий.

Поэтому спасибо, но нет.

Вы правда используете 4 пробела для отступа везде, даже в pubspec.yaml? Или это ошибка копирования (ну что-то подсказывает мне, что нет). Хотел бы я увидеть ту лапшу в виджетах при 4-ёх пробелах, когда бывает и при двух всё плохо вмещается))) А ещё ведь есть старообрядное (спорно, сам использую, но в контексте текущего примера это хороший вопрос) ограничение по длине строки в 80 символов. Ухх

Здорово, спасибо!

P.s. вместо неуклюжего StateNotifier с AsyncValue рассмотрите возможность использования AsyncNotifier (у него состояние уже завёрнуто в AsyncValue). Его также можно использовать без генерации кода. А что касается Provider и TextEditingController, то мне очень жаль, что выпилили вполне удобный ChangeNotifierProvider для этой цели. Но с другой стороны текстовые контроллеры можно класть в ConsumerStatefullWidget, либо использовать хуки (либо ваш способ). Ещё раз спасибо!

Спасибо, что-то новенькое! Изучу на досуге)

А в следующей статье мы рассмотрим ...

С учётом того, как здорово и достаточно легко к усвоению у вас получилось написать этот материал для новичков, спустя столько времени я всё ещё жду следующую часть ;) Просмотры это доказывают!

Так что можете считать это "спасибом" из будущего. Что удивительно, всё +- актуальным остаётся и по сей день.

Информация

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