Connect with us

GitHub

Valdi — кроссплатформенный UI фреймворк от Snap

Опубликовано

/

     
     

Valdi — это кроссплатформенный UI фреймворк, обеспечивающий нативную производительность без ущерба для скорости разработки. Один раз напишите свой пользовательский интерфейс на декларативном TypeScript, и он сразу же скомпилируется в нативные (Kotlin, Objective-C и Swift ) представления на iOS, Android и macOS — без веб-представлений и JavaScript-бриджей.

Пример:

import { Component } from 'valdi_core/src/Component';

class HelloWorld extends Component {
  onRender() {
    const message = 'Hello World! ';
    <view backgroundColor='#FFFC00' padding={30}>
      <label color='black' value={message} />
    </view>;
  }
}

Настоящая нативная производительность

В отличие от фреймворков, использующих веб-представления или JavaScript-мосты, Valdi компилирует декларативно отрисованные компоненты TypeScript в платформенно-зависимые представления. Valdi также обладает рядом других преимуществ в плане производительности:

  • Автоматическое переиспользование представлений — глобальная система пула представлений повторно использует нативные представления на всех экранах, значительно сокращая задержки.
  • Оптимизированный рендеринг компонентов — компоненты перерисовываются независимо, не запуская повторную визуализацию родительских элементов, что обеспечивает быстрые инкрементальные обновления.
  • Оптимизированный движок компоновки — движок компоновки C++ работает в основном потоке с минимальными затратами на маршалинг.
  • Рендеринг с учётом области просмотра — он выполняется только видимых представлений, что делает бесконечную прокрутку производительной по умолчанию.

Опыт для разработчиков

Valdi устраняет традиционный цикл компиляция-тестирование-отладка, замедляющий разработку нативных приложений:

  • Мгновенная горячая перезагрузка — отслеживайте изменения за миллисекунды на iOS, Android или настольных компьютерах без перекомпиляции.
  • Полноценная отладка VSCode — устанавливайте точки останова, проверяйте переменные, профилируйте производительность и создавайте дампы кучи прямо в VSCode.
  • Привычный синтаксис — компоненты TSX с TypeScript для обеспечения типобезопасности.

Глубокая нативная интеграция

Valdi генерирует типобезопасные биндинги между TypeScript и нативными платформами:

  • Автоматическая генерация кода — интерфейсы TypeScript компилируются в биндинги Kotlin, Objective-C и Swift.
  • Доступ к нативному API — прямой доступ к API платформы и сторонним нативным библиотекам через многоязычные модули.
  • Двунаправленная связь — безопасная передача сложных структур данных и колбеков между TypeScript и нативным кодом.
  • Встроенная поддержка Protobuf — бесшовная интеграция с Protobuf для эффективной сериализации данных.
  • Поддерживает продвинутую анимацию, рендеринг в реальном времени и сложные системы жестов.

Valdi широко используется в приложениях Snap уже 8 лет. В компании называют это бета-версией, поскольку инструменты и документация требуют более тщательного тестирования в среде открытого исходного кода. Valdi выйдет из стадии бета-тестирования, когда в компании будут довольны опытом разработчиков.

Valdi на GitHub: https://github.com/Snapchat/Valdi
Платформа: кроссплатформа
⭐️: 4K
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: