И не подумаю смириться. Я передаю именно данные таблицы. А вы же ставите в упрек что любые данные JSON uniGUI автоматом не сконвертит в нормальный вид. Отображение ваших данных в данные таблицы — это дело ваше личное. Любой JSON сконвертить в редактируемое GUI представление — ноу проблем (делал такое). Но здесь речь идет о нормальном app GUI. и для этого нужны минимально необходимые данные описания элемента(ов). повторюсь — потомки нас рассудят.
назначение uniGUI — избавить программиста от знания любых деталей o GUI, отдав ему минимальное описание своих данных. проще говоря — не думать o GUI и не программить GUI. только реакция на изменение юзером данных.
у меня сложные Gui. Скрин с редактора мед. знаний. весьма богатый на деревья, таблицы, doc viewers…
Любой блок должен влазить на экран. если не влазит — обрезается. если блоков много и их всех можно задизайнить/отрисовать на экране — будет сделано.
по вашему получется что все есть разметка. я же утверждаю, что таблица, список и остальное описаны как их данные без всякой разметки. впрочем, потомки нас рассудят.
Никакой разметки нет. Только чистые, ничем не замутненные данные. Конструкция Block нужна для логической группировки, чтобы данные шли в том порядке, в котором вы ожидаете их увидеть. Стили — это дело uniGUI и пользователя, не меня, как программиста. две прошитых темы для бизнес-app, соотвествующих Google MD по мне так достаточно. Вся логика на сервере, на одном языке. Сделал, чтобы не тратить время на GUI. Уже не трачу.
Написал такой для своих задач.) В общем по силам одному человеку, если ограничить а-ля бизнес/саенс приложениями. Соберусь написать статью, насколько удобно жить без js/chrome/css и иметь GUI работающий везде одинаково. с любыми языками сервера. Под капотом использован flutter.
Nim не первый и не лучший(ИМХО)кто пытается сделать ядреный сплав простоты и эффективности (Pythonic-like, macros, compiled,..). Был такой Boo (остановился в 2010 из-за перехода автора в Unity), имел на 25% короче синтаксис, макросы, работал на .Net. Все было круто до 2010, поддержка со стороны SharpDevelop лучше чем у Nim сейчас. Был Nererle c директивой pragma=indent программы были размером равны аналогу на Python, царь метапрограммирования. Убит Microsoftом ввиду опасности для С# и F# и прочих его унылых языков. Авторы взяты на работу в MS на левые проекты за мешок денег. Cobra,… все ушли. Слишком инертный мир в программинге. Слишком.
Идея заменить Python быстрым языком правильная, но зачем вводить в язык архидревние конструкции типа END в конце блоков? Неужели нельзя обойтись без таких лютых загонов — отсутствием ООП и корявым синтаксисом (местами). Хочешь заменить Python — делай совместимый синтаксис и расширяй во все стороны. Нет же — хоть одно колесо в велике сделаем треугольным.
Человек не может принять правильного решения на основании описания флюорограммы/мамограммы и.т.д.
Программа на основе анализа снимка может дать решение что делать дальше. Один и из советов — посещение врача с объяснением зачем и какие последствия за игнор. Правда такими серьезными системами никто кроме IBM не заморачивается, да и они со скромным успехом. Но никаких теоретический препятствий к разработке этого нет кроме одной — трудоемко.
Люди предпочитают людей однозначно.
Это инерция пройдет когда правильные проги появятся. Получить лучший совет задешево и дураку захочется.
Нет. внутренние оптимизации Flutter продолжают работать. команда на отрисовку(обновление) приводит к пересчету кодопредствления в build. обновляется графика только там (в тех частях) где код перестал совпадать с пред. состоянием от build.
Мне пофиг на то что там думают. в моей схеме я обновляю именно те виджеты/области, которые должны обновится и автоматом. для этого написал два класса сверху и все мои виждеты/состояния наследуются от них и все становится прозрачно и доступно.
abstract class UpdateWidget extends StatefulWidget with SizeInfo{
UpdateWidget(this.data);
final dynamic data;
String get name{ return data['name'];}
}
abstract class UpdateState<T extends UpdateWidget> extends State<T>{
String get name{ return widget.data['name'];}
void updateData(dynamic data)
{
setState(() => data.forEach((k,v) => widget.data[k] = v));
}
@override
void initState() {
registerState(this);
super.initState();
}
@override
void dispose(){
unregisterState(this);
super.dispose();
}
@override
void didUpdateWidget (covariant T oldWidget){
super.didUpdateWidget(oldWidget);
unregisterState(this);
registerState(this);
}
}
Все эту с прокидыванием через провайдеры, GlobalStates,… не использую, ибо с ней все становится мутно для меня.
Любой блок должен влазить на экран. если не влазит — обрезается. если блоков много и их всех можно задизайнить/отрисовать на экране — будет сделано.
Написал такой для своих задач.) В общем по силам одному человеку, если ограничить а-ля бизнес/саенс приложениями. Соберусь написать статью, насколько удобно жить без js/chrome/css и иметь GUI работающий везде одинаково. с любыми языками сервера. Под капотом использован flutter.
Это в какой реализации?
Все эту с прокидыванием через провайдеры, GlobalStates,… не использую, ибо с ней все становится мутно для меня.
из коробки не могу. надстройку сделал — все могу. фрагмент: