
Widlet — pet-проект про Server-Driven UI на Dart
nogipx 17 минут назад Widlet — pet-проект про Server-Driven UI на Dart Простой 5 мин 206 Flutter * Dart * Разработка мобильных приложений * React Native * Кейс Привет, Хабр. Меня зовут Карим, я Flutter разработчик уже 7...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. nogipx 17 минут назад Widlet — pet-проект про Server-Driven UI на Dart Простой 5 мин 206 Flutter * Dart * Разработка мобильных приложений * React Native * Кейс Привет, Хабр. Меня зовут Карим, я Flutter разработчик уже 7 лет и последний месяц я делаю фреймворк для server-driven UI на Dart. Репозиторий пока закрыт, но проект дошел до состояния, когда о нем можно рассказать.
Зачем еще один SDUIServer-Driven UI решает известную проблему: бэкенд деплоится за минуты, а чтобы поправить UI в мобильном приложении - полный релизный цикл и ожидание App Store Review. SDUI это убирает: сервер описывает интерфейс, клиент рисует. Но у всех реализаций, которые попадались мне на глаза, есть общая черта - собственный DSL.
Технические детали
JSON-схемы, кастомные конфиги, проприетарные форматы описания виджетов. Для каждого решения приходится учить новый язык. При этом Flutter-разработчики уже знают хороший язык описания UI.
Он называется Flutter. Отсюда идея Widlet: а что если DSL не нужен? Название - widget + applet.
Маленькое приложение из виджетов, которое запускается внутри хоста. Flutter API как протоколПубличный API Widlet идентичен Flutter. Не “вдохновлен”, не “похож” - идентичен, насколько это вообще возможно для кода, который выполняется не на клиенте.
Отраслевые последствия
Выполняется на сервере. Scaffold( appBar: AppBar( title: Text('Каталог backgroundColor: Color(0xFF1976D2), ), body: ListView( children: , ), ) Scaffold, AppBar, ListView, ListTile - те же виджеты. TextStyle, EdgeInsets, Color - те же типы, те же имена параметров.
Flutter-разработчик, глядя на этот код, не должен замечать разницы. Разница в том, где он выполняется. Этот код работает на сервере.
Клиент получает данные - какие виджеты построить, с какими свойствами, в каком порядке - и рисует. Отклонения от Flutter API допускаются в одном случае: когда концепция физически невозможна вне клиентского runtime. AnimationController привязан к frame scheduler - его нет на сервере.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





