?

Log in

No account? Create an account
   Journal    Friends    Archive    Profile    Memories
 

Современные GUI приложения - morfizm


Jul. 28th, 2016 02:29 am Современные GUI приложения16 comments - Leave a commentPrevious Entry Share Next Entry

Comments:

From:sasha_gil
Date:July 29th, 2016 01:54 am (UTC)
(Link)
Да, я про Электрон читал на Хабре, его сравнивали с более старым фреймворком такого типа NW.js (node-webkit) https://habrahabr.ru/post/304574/, плюсов больше набрал Электрон.

Можно ещё такой финт на тему "выглядящего нативно" (то есть без HTML, JS управляет платформно-специфичным маркапом, который надо делать отдельно для мобильных платфом iOS / Android / Windows Universal, то есть Windows 10): забить на "десктоповость" и взять мобильный фреймворк React Native или NativeScript. Под Windows 10 запускать результирующее приложение как Windows Store приложение. Я сейчас смотрю на React Native, у него недавно появилась интеграция с Windows. На NativeScript я думаю посмотреть позже, сейчас просто проверил, что с Windows 10 интеграция тоже недавно появилось.

Дима, если ты это читаешь - кроме рассматриваемой идеи JS-приложения имей так же в виду Xamarin (кроссплатформенный С#), он нынче бесплатный extension к Visual Studio 2015. Unity - тоже кроссплатформенный C#, но это коммерческий продукт (и я не знаю, как там с библиотеками контролов, это игровая платформа в первую очередь). Если всё-таки выберешь JS... Я лично, если буду когда-либо что-либо делать на JS, буду с самого начала использовать TypeScript. У NativeScript он с самого начала хорошо прикручен, но, по идее, прикрутить можно где угодно с компиляцией в JS.

Коррекция: я писал выше "Windows 10" как синоним "Universal Windows", однако возможность строить "Universal Windows" приложения для Windows Store появилась в Windows 8.1. Это мелочи, поскольку Windows-телефонами никто не пользуется (и, вероятно, они умрут, но ещё не умерли). Да, вот тут https://www.nativescript.org/blog/nativescript-and-xamarin авторы / хозяева NativeScript сравнивают его с Xamarin.

Edited at 2016-07-29 02:45 am (UTC)
From:_m_e_
Date:July 29th, 2016 08:00 am (UTC)
(Link)
спасибо за линки, очень интересно!
From:sasha_gil
Date:July 29th, 2016 06:56 pm (UTC)
(Link)
Это вприглядку в основном - на практике я установил и пособирал в разных конфигурациях React Native для Windows Store в рамках короткого экспериментального проектика. Программировать простую UI логику на JS удобно, потому что типа быстрый REPL (ну ты сам про это написал выше по опыту 16-летней давности), но я этот язык так и не полюбил, хотя два года на нём писал. Он, правда, улучшается, и поддержка в IDE улучшается тоже. Если ты что-то интересное найдёшь, дай знать! В этой области "актуальные" вещи меняются довольно быстро.
From:ermouth
Date:July 29th, 2016 11:36 am (UTC)
(Link)
Насчёт TS/NS – по-моему, вы зря продвигаете технологии, которыми сами не пользуетесь.

TS в маленьких проектах, делаемых в одно лицо – просто лишний слой. «В гамаке и скафандре», да.

Насчёт NS – там всё грустно с поддерживаемыми гуёвыми контролами. Хотите контрол с календариком? Извольте заплатить $199.

Начинать с них точно не стóит.
From:sasha_gil
Date:July 29th, 2016 05:53 pm (UTC)
(Link)
конкретнее про мой опыт с TS версус JS. Я писал три года назад на JS в Visual Studio апп для Windows Store среднего размера в команде человек пять и чувствовал себя очень некомфортно, собирался переводить на TS, но проект закончился раньше. Года два назад помогал школьнику с маленьким проектиком и тоже почувствовал себя легче с TS. С тех пор JS обновился, и среду разработки можно выбрать более дружественную к JS, но мне лично этот лишний слой при работе с Visual Studio был нужен. Правда, я сейчас на C++ пишу, моё мнение неуместно и необосновано. Расскажите поподробнее про Электрон, вы с ним работаете / работали?
From:ermouth
Date:July 29th, 2016 08:47 pm (UTC)
(Link)
> но мне лично этот лишний слой при работе с Visual Studio был нужен

Рискну предположить, что дело не в VS, а в привычке писать в ООП-стиле. Общепринято считается, что мире JS такой подход (за редкими исключениями) всё таки даёт больше ограничений, чем преимуществ.

Скромное распространение TS, особенно если учесть мощь вендора – дополнительный (хотя и небесспорный) аргумент в пользу того, что накладываемые ограничения серьёзно обесценивают ООП-шные плюшки.

> Расскажите поподробнее про Электрон, вы с ним работаете

Тут надо сравнить nw.js и Электрон, по-хорошему то, и объяснить, почему я посоветовал Электрон.

Мы не делаем десктопные/мобильные приложения на заказ, поэтому с Электроном я только вдумчиво баловался. С nw.js всё чуть серьёзнее, его мы используем в боевых условиях, но не как обёртку для изготовления стэндэлон-приложений. То-есть, приложения я с ним делал, но тоже в рамках вдумчивого «поиграться».

В силу того, что я занимаюсь по преимуществу гуем или тем, у чего есть гуй и он важен, я, конечно, пробовал обернуть уже имеющийся код сложных гуёвых разработок. С Электроном порог входа из точки «вот у меня есть html+js+css, сделай десктопное приложение» чуть выше, чем с nw.js. Тем не менее, после прохождения порога дальше телодвижений точно меньше.

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

Дима, скорее всего, будет в это всё погружаться из другой начальной точки. Что-то вроде «вот у меня есть логика, мне к ней нужен гуй» – он примерно про это пишет. С такими вводными и порог вхождения в Электрон будет ниже, чем в нод-вебкит, при сохранении мéньшего количества телодвижений overall.
From:sasha_gil
Date:July 30th, 2016 06:16 am (UTC)
(Link)
Да, это был ООП-стиль - во-первых, в обоих случаях обстоятельства диктовали; во-вторых, у меня нет опыта программирования в другом стиле.

Спасибо за информацию про Электрон / nw.js! Попробую найти время / силы поиграться с Электроном.