2013-06-29 4 views
4

вчера я наткнулся на проект Haxe NME, который является очень многообещающей идеей. Однако до сих пор невозможно создать сложные интерфейсы с этой инфраструктурой. На мой взгляд, представляется пугающей задачей создание инфраструктуры пользовательского интерфейса, ориентированной на множество разных платформ, поэтому я считаю, что это не жизнеспособный подход, потому что даже старые и зрелые интерфейсы пользовательского интерфейса, такие как Qt и wxWidgets, не поддерживают многие платформы.Haxe NME UI: лучшие практики для дизайна приложений MVC

Тем не менее, имеет смысл создать интерфейс для конкретной платформы с помощью некоторого инструмента для создания пользовательского интерфейса, а затем подключить код пользовательского интерфейса к агностическому коду пользовательского интерфейса, который был написан в Haxe. Я не знаю, может ли это сработать, потому что я не мог найти ни одного примера, но, возможно, кто-то, кто уже написал код MVC Haxe, который может быть успешно подключен к различным пользовательским интерфейсам платформы, хотел бы поделиться своим опытом. Благодарю.

ответ

12

Вы говорите:

Однако до сих пор не представляется возможным строить сложные UIs

Просто потому, что вы еще не поняли, как сделать это не значит, что это не возможно ;)

Причина в том, что в экосистеме Haxe язык и компилятор являются чрезвычайно последовательной кросс-платформой, NME/OpenFL обеспечивает довольно простую среду рендеринга кросс-платформы (HTML 5 имеет некоторые особенности, но другие видят m довольно сильная), и поэтому все, что вы строите поверх них, будет охватывать множество платформ из коробки. Речь идет о довольно высоком уровне - позволяя компилятору и библиотекам заботиться о причудах платформы.

В MVC пользовательский интерфейс обычно представляет собой «V iew». В рамках View/UI, проверить эти библиотеки:

  1. Stablex UI
    NME/OpenFL, Кросплатформенная. Рисует компоненты с использованием NME API. Это единственный, с которым я играл, но демо работает последовательно на android, flash, html5, родной linux. Довольно внушительный.

  2. HaxeUI
    NME, Кросплатформенная. Опять же, рисует компоненты на сцене.

  3. Prime
    Выполнено с использованием API-интерфейсов Flash. Не уверен, что он портирован на платформу.
    Смотрите также Talk/Video from WWX conference и Slides

  4. Guise
    действительно инновационный способ быть в состоянии либо сделать пользовательский интерфейс, или использовать нативный если таковые имеются. Проверьте сообщение в блоге.

  5. Basis
    Еще одна попытка обернуть собственные компоненты - до сих пор есть библиотеки iOS и Android. Довольно круто, но я еще не играл с ним.

Для MVC, есть много вариантов:

  1. PrimeVC, упомянутые выше.
  2. MMVC, основанный на раме RobotLegs, но разработанный для Haxe.
  3. Много маленьких вариантов BBMVCPureMVC и т.д.

Преимущества рамок MVC является то, что они разделяют ваши взгляды от ваших данных приложений (модель) и логика (контроллер). Попробуйте потратить некоторое время на ознакомление с одной из инфраструктур MVC, и вы увидите, как вы можете писать свои приложения таким образом, чтобы вы могли использовать один из них, а затем любой из различных механизмов просмотра - либо native, либо NME- оказаны. Это может быть довольно крутая кривая обучения, но именно так вы создаете приложения, которые легко переносятся между различными интерфейсами пользовательского интерфейса и легко проверяются, поэтому вы знаете, что они будут масштабироваться по мере того, как приложение будет усложняться.

+0

Спасибо. Я знаю эти интерфейсы Haxe UI, но они не содержат много компонентов. Я был бы очень рад, если бы мог использовать произвольную инфраструктуру пользовательского интерфейса, такую ​​как wxWidgets, Qt или Flex mxml, а затем склеить внешний пользовательский интерфейс поверх классов модели и контроллера, которые являются , написанными в Haxe. Это возможно? – user1812379

+0

Вы тогда встретили Вакса? https://github.com/misterpah/waxe –

+0

Да, но это тоже очень маленький проект, который рано или поздно исчезнет. Если это так или иначе возможно, я бы хотел использовать Haxe в сочетании с большим интерфейсом пользовательского интерфейса. – user1812379

0

Основная проблема, с которой вы, похоже, сталкиваетесь, заключается в том, что для вас нет готового варианта, который не является готовым к использованию. Множество людей проекта предлагают делать то, что вы хотите. Вы должны быть готовы использовать их. Небольшой проект на github можно отбросить. Если это так, он будет сброшен, потому что jo использует его так, чтобы его могли использовать люди, которые хотели бы использовать его (то есть: вы), чтобы это продолжалось.

Все не могут сифонировать другие завершенные проекты или ничего не будет создано. Участие - вот что такое open source.

0

Не имеет смысла иметь унифицированный пользовательский интерфейс для всех платформ, каждая платформа имеет различный рабочий процесс, вы пытались использовать список IOS в окнах, просто смешно. С другой стороны, хороший дизайн может отделить взгляд от логики бизнеса, и вы можете делиться логикой бизнеса со всеми целями и настраивать точки зрения для каждой цели. посмотреть на PureMVC
для примера mvc в Haxe