Хобби: Десктопное UI - говно, что делать?
Feb. 3rd, 2011 04:20 pmДесктопные UI библиотеки {как будто} застыли в начале 90-х: картиночки в контрольчиках, автоматический ресайз, анимация - ничего этого или нету, или оно через жопу. И неудобно, долго писать. И в каждой новой библиотеке - на новый лад. И пара-тройка мегабайт для программы Hello, World! - это уже как бы и немного. Что делать? Есть ли выход? Выход есть, и он в вебовских технологиях на десктопе. Скорость разработки резко повышается, качество результата - тоже. Есть ли минусы? Ну, вроде нету. Я не вижу. Вижу одни плюсы.
Вебовский мир UI по сравнению с десктопным - мечта, волшебный сон. Во-первых, он ошеломляюще массовый, всего больше в десятки раз, если не в сотни - сравните число книг по веб-дизайну и по разработке UI на .Net или Java, или число тулсов по причёсыванию .html и .rc файлов. За счет массовости всё лучше отлизано, многократнее проверено, и понятнее описано. Во-вторых, HTML много разнообразнее и мощнее любой десктопной библиотеки - всё можно нарисовать картинками и оживить JavaScript-ом, всё можно засунуть внуть всего. В-третьих, писать HTML и JS руками прямо на живой программе, перегружая страничку по три раза в минуну для микро-тестирования - очень, очень быстрый способ разработки. В-четвертых - вебовский UI максимально кроссплатформен и тулсонезависим. Браузеров много, рендерится всё достаточно одинаково везде (см. ниже) - если вам надоел MS, запускайте те же исходники на iPad-е. Более того, можно одну и ту же программу с минимальными переделками запускать как десктопный исполнимый файл, и как интернетовский сайт.
Как достигается сей парадиз? Очень просто. Существует97 способов половых сношений как минимум 4 массово используемые технологии для. Почему четыре? По числу минимально живых браузеров плюс флэш. Надо взять любимый вашими потенциальными пользователями браузер, спрятать его внутри вашей программы, как-то упаковать туда же HTML/JS/etc., и всё.
IE состоит внутри из набора хорошо документированных COM-объектов, которые фактически являются частью Win32 API, есть в любой виндовой инсталляции, и массово используются в UI самих Виндов начиная с Search dialog box в Windows 2000 и всё чаще и чаще в каждой следующей версии. Гуглить надо IWebBrowser, самый простой способ попробовать - в MS VisualStudio создать MFC Application, выбрать Dialog Based и прочекать HTML Dialog. Всё. Оно создаст программу (кошмарную, но об этом позже), состоящую из живущего в ресурсах HTML и из одного окна класса CDHtmlDialog, которое в свою очередь не содержит ничего, кроме объекта IWebBrowser.
Крутость использования IE заключается в том, что он встроен в Винды и всегда везде есть. Соответственно суппорт просто почти как у голой Win32 программы, нету вечной борьбы за работоспособный рантайм, можно упихать программу с весёленьким UI в 100K - это полный размер всей инсталляции. Кроме того IE всё ещё самый популярный браузер, и если лень возиться с мультибраузерностью но нужно вываливать HTML в Интернет - быть IE-специфичным меньшее из зол.
Продолжение тут
Вебовский мир UI по сравнению с десктопным - мечта, волшебный сон. Во-первых, он ошеломляюще массовый, всего больше в десятки раз, если не в сотни - сравните число книг по веб-дизайну и по разработке UI на .Net или Java, или число тулсов по причёсыванию .html и .rc файлов. За счет массовости всё лучше отлизано, многократнее проверено, и понятнее описано. Во-вторых, HTML много разнообразнее и мощнее любой десктопной библиотеки - всё можно нарисовать картинками и оживить JavaScript-ом, всё можно засунуть внуть всего. В-третьих, писать HTML и JS руками прямо на живой программе, перегружая страничку по три раза в минуну для микро-тестирования - очень, очень быстрый способ разработки. В-четвертых - вебовский UI максимально кроссплатформен и тулсонезависим. Браузеров много, рендерится всё достаточно одинаково везде (см. ниже) - если вам надоел MS, запускайте те же исходники на iPad-е. Более того, можно одну и ту же программу с минимальными переделками запускать как десктопный исполнимый файл, и как интернетовский сайт.
Как достигается сей парадиз? Очень просто. Существует
IE состоит внутри из набора хорошо документированных COM-объектов, которые фактически являются частью Win32 API, есть в любой виндовой инсталляции, и массово используются в UI самих Виндов начиная с Search dialog box в Windows 2000 и всё чаще и чаще в каждой следующей версии. Гуглить надо IWebBrowser, самый простой способ попробовать - в MS VisualStudio создать MFC Application, выбрать Dialog Based и прочекать HTML Dialog. Всё. Оно создаст программу (кошмарную, но об этом позже), состоящую из живущего в ресурсах HTML и из одного окна класса CDHtmlDialog, которое в свою очередь не содержит ничего, кроме объекта IWebBrowser.
Крутость использования IE заключается в том, что он встроен в Винды и всегда везде есть. Соответственно суппорт просто почти как у голой Win32 программы, нету вечной борьбы за работоспособный рантайм, можно упихать программу с весёленьким UI в 100K - это полный размер всей инсталляции. Кроме того IE всё ещё самый популярный браузер, и если лень возиться с мультибраузерностью но нужно вываливать HTML в Интернет - быть IE-специфичным меньшее из зол.
Продолжение тут
no subject
Date: 2011-02-05 07:35 pm (UTC)Доктор, теперь Ваша очередь кунфу показывать... А то Вы сначала хотите галку на кнопке, а потом жалуетесь, что некрасиво получилось.
no subject
Date: 2011-02-07 05:38 pm (UTC)