LINUX.ORG.RU

Rust нормальный GUI

 , ,


1

4

Подскажите тогда пожалуйста на чём в андроид писать на расте? Какие вообще варианты есть? rust-webview(HTML5), react-native, sciter, rust-qml или вообще поднять веб-сервер на телефоне и хреначить на rocket.rs? Главное условие - поменьше еботни с отладкой.

Скажите пожалуйста вот эту штуку https://azul.rs/index.html под андроид можно завести? Уж очень понравилось.

Cross-platform GUI toolkit (Windows, Linux, Mac)

У тебя настолько плохо с английским? Покажи, где здесь упоминается «Android»?

Virtuos86 ★★★★★ ()
impl Layout for DataModel {
    fn layout(&self, _info: WindowInfo<Self>) -> Dom<Self> {
            Dom::new(NodeType::Div).with_id("email-container")
                .with_child(self.emails.iter().map(layout_email_component).collect())
    }
}

collect

если в списке 100500 имейлов, то при каждой отрисовке будет целый список пересоздавать в куче?

MyTrooName ★★★★★ ()
Последнее исправление: MyTrooName (всего исправлений: 1)

imgui ктото запрещает использовать?

или написать биндинги к <любому(С/С++) ГУЮ> тоже нельзя?

anonymous ()
Ответ на: комментарий от MyTrooName

если в списке 100500 имейлов, то при каждой отрисовке будет целый список пересоздавать в куче?

добро пожаловать в мир гуе-писателей

(все эти гуи пишутся для вывода двух слов хелло+ворд об остальном подумают когда получат финансирование гугла)

anonymous ()
Ответ на: комментарий от umren

тогда ладно.

а в чем смысл прототипирования, если потом все с нуля переписывать под нормальный фреймворк, с принципиально другими паттернами?

а в сложных проектах гуи - это не та часть, которая съедает больше всего человекочасов

MyTrooName ★★★★★ ()
Последнее исправление: MyTrooName (всего исправлений: 2)
Ответ на: комментарий от MyTrooName

поменял чуть главное сообщение, людиии помогите определиться пожалуйста

mag1ck ()
Ответ на: комментарий от MyTrooName

а в чем смысл прототипирования, если потом все с нуля переписывать

а в сложных проектах гуи - это не та часть, которая съедает больше всего человекочасов

Так всё переписывать или «не ту часть, которая»?

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Так всё переписывать или «не ту часть, которая»?

если проект сложный (читай: составной), то гуишные модули (читай: клиенты)

если проект целиком просто одна гувина - то всё. не трогать бизнес-логику вряд ли получится, так как смена гуи-парадигмы потребует смены интерфейсов моделей данных

MyTrooName ★★★★★ ()
Последнее исправление: MyTrooName (всего исправлений: 1)
    Dom::new(NodeType::Div)
        .with_child(Dom::new(NodeType::Div)
        .with_class("email-header")
            .with_child(Dom::new(NodeType::Image(email.profile_pic)))
            .with_child(Dom::new(NodeType::Label(email.from.clone()))))
        .with_child(Dom::new(NodeType::Div)
        .with_class("email-content")
            .with_child(Dom::new(NodeType::Label(email.subject.clone())))
            .with_child(Dom::new(NodeType::Text(email.message))))

Ждем когда какой-нибудь хипстер напишет JSX транскомпилятор для этого ужаса и React Native можно будет закапывать

Deleted ()
Ответ на: комментарий от MyTrooName

если в списке 100500 имейлов, то при каждой отрисовке будет целый список пересоздавать в куче?

В чятике дискорда просили передать, что для этого есть трейт IFrameCallback. С ним нет необходимости рисовать весь список целиком, так как все 10000 одновременно на экран не попадают. .collect() отработает только для тех 10-20, что видны на экране. Также IFrameCallback принимает дополнительные параметры, чтобы знать размер отображаемой области, где можно посчитать, сколько элементов нужно отобразить. Есть пример table, где это показано.

O02eg ★★★★★ ()
Ответ на: комментарий от Virtuos86

Андроид возможен, так как основные зависимости winit and webrender работают с ним, но в библиотеку нужно добавлять элементы для мобильных устройств и тестирование никто не проводил.

O02eg ★★★★★ ()

Какие вообще варианты есть?

Лол.

Ну можно написать сначала сишную либу, которая будет дёргать Android Java API через JNI, а потом эту сишную либу дёргать уже из Rust'а.

Чем-то подобным занимаются QtQuick/QML-программисты под Android. С тем лишь отличием что они из своего QML вылазят в C++ из которого Android API доступны по JNI. Ну а ты из Rust'а будешь вылазить в C.

EXL ★★★★★ ()
Ответ на: комментарий от MyTrooName

а в чем смысл прототипирования, если потом все с нуля переписывать под нормальный фреймворк, с принципиально другими паттернами?

Под прототипирование понимается только разработка, и то, только в рамках горячей замены CSS.

O02eg ★★★★★ ()
Ответ на: комментарий от O02eg

Под прототипирование понимается только разработка, и то, только в рамках горячей замены CSS.

яннп, но в любом разе, мой вопрос снимается в связи с твоим предыдущим ответом

MyTrooName ★★★★★ ()
Ответ на: комментарий от Virtuos86

Мопед не мой, я просто разместил объяву.

Я лично пока только примеры тыкал. Выглядит лучше, чем rise-ui или limn.

O02eg ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.