Comments 19
Backend-driven UI для мобильного разработчика - абсолютное зло, которое превращает нативщика, учитывающего тонкие детали и отличия платформы в создателя очередного парсера.
Некоторые BDUI даже с сервера получают layout и реализуют свой декларативный велосипед для его отображения, собирая те же грабли, что html, RelativeLayout, autoresizing masks и другие достижения UI-рендеринга прошедших десятилетий.
Зло, конечно же, необходимое, но для меня скучнее работы, чем описанная в статье, придумать сложно. Завлечь разработчика такой, по-моему, будет трудно.
Не знаю насколько это зло, но для бизнеса это довольно крутая штука позволяющая быстро что-то внедрять / обновлять. Насчет разработчиков согласен, лично я бы не стал долго таким заниматься, очень скучно )
на вкус и цвет все фломастеры разные, мне лично нравится учавствовать в разработке такого фреймворка, там и нативных штук много и сложных инженерных решений
зло - это каждый день красить кнопки и строки исправлять) задача нетривиальная и сложная - внедрение BDUI в проект, и чем больше проект тем сложнее это реализовать
Я про нетривиальность и сложность ничего не писал. Я писал про скучность.
Разрабатывать браузер тоже нетривиально и сложно (для мобильного разработчика), но ужасно скучно (по крайней мере для меня). А BDUI - это по сути и есть браузер.
А ещё красить кнопки и менять строки тоже может быть нетривиальной и сложной задачей, особенно "чем больше проект". Например, сделать нормальную дизайн-систему, способную пережить редизайн, или изобрести палитру, работающую со всеми кнопками, которые ей нужно покрасить, во всем многообразии экранов и настроек accessibility.
Только разрабатывая дизайн-систему, ты все-таки больше iOS-разработчик, а разрабатывая BDUI, ты больше разработчик движка рендеринга своего нигде больше не используемого языка. Для меня выбор очевиден.
Отличная статья, было интересно !)
О, мы такое в Сберсервисе делали в 20 году, даже и не знал что это какой-то устоявшийся паттерн)
Узнал много нового! Круть!! )))
Очень интересно!
Спасибо за статью, было интересно почитать о таком подходе
Вот этим мусором вы превращаете пост во что-то среднее между отзывами на алиэкспрессе и каким-то виси.
Jug.ru, вы-то как это одобрили, у вас обычно максимально техничные и вылизанные (в хорошем смысле) посты :(
Поставил свой первый минус к посту с момента регистрации на Хабре.
Здравствуйте! Приносим извинения за такой казус. Мы не просили специально забивать комментарии, пара человек хотели поддержать Анну и ее статью. Наша вина, что мы забыли предупредить, что так делать не стоит и можно поддержать другими способами. Мы бы и предупредили, если бы специально нагоняли комментарии. Мы же понимаем, что такой способ добавлять комментарии не самый эффективный, кринжовый можно сказать, и он не работает, и делали бы иначе, если бы специально действовали по такой стратегии. В данном случае, как уже говорили, специально не нагоняли комментарии, поэтому и получилась такая ситуация.
Jug.ru, вы-то как это одобрили, у вас обычно максимально техничные и вылизанные посты :(
Привет, я редактор JUG Ru Group. Ну, мы сам пост до публикации ревьюили, но комментаторы-то не присылают нам свои комментарии заранее на ревью :) Ещё до вашей реплики обсудили появившиеся комментарии с@AlfaTeam, и все согласились, что в будущем стоит доносить до сотрудников «Хабр место для содержательных конструктивных комментариев, а не бессодержательной похвалы».
Хехе, в результате вы в JSON-е описываете "условия" (EQUALS / NOT / AND / OR / LESS) и "операции" (HIDE_FIELDS / SET_VALUE / ...) и у вас там получается по сути описано синтаксическое дерево, которое вам надо на фронте парсить, обходить и все эти условия проверять, а операции выполнять. Можно под это дело сразу маленький диалект LISP-а запилить, или вообще присылать с бэка не JSON, а сразу Javascript :) Ещё можно сразу на WebView делать, но там UI, к сожалению, не даёт той отзывчивости, как нативные компоненты.
А так этот паттерн постоянно все переизобретают (что я и сам делал тоже). Видимо, все существующие "велосипеды", включая из них самый грандиозный (я имею в виду HTML + JS + CSS) где-то чем-то не устраивают.
Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг