본문 바로가기

개발 개발

멀티 플랫폼 UI 선택시 조언

http://kldp.org/node/123803



크로스 플랫폼 개발도 해보고, 웹도 해보고 여러가지를 많이 해보면서 느낀점을 말씀드리겠습니다.

UI툴킷 선택은 언어나 라이브러리적 문제보다는 어떤 목적의 서비스를 하를 하고 
사용자가 어떤식의 동작을 기대 하느냐가, 툴킷 선택에 있어 많은 비중을 차지했던 
것 같습니다.

제가 경험해본건, Qt, wxWidget, Gtk, Extjs, Mootools, FileMaker(^^;)등이 있습니다.
전부 일장일단이 있어서 뭐가 좋다. 대세다 이런건 없었고 개인의 취향은 있었네요

jQuery를 확장한 방식(Mootools)은 페이지 단위의 인터페이스에 적합하고, 
어플리케이션 수준의 편의성을 줄려면 꽤 많은 삽질력이 필요했었습니다 (2008년기준)

그래서 ExtJs를 선택했고, 드래그엔 드롭등 윈도 어플과 거의 유사하게 구현할수 있었는데
문제는 DOM 객체가 엄청 많아서, 인터페이스가 복잡할수록 좀 느릴수밖에 없었구요. 
(수백명의 스케쥴을 차트로 그렸더니;;;)

웹의 단점이라면, 브라우저 밖의 프로그램을 실행시킬 수가 없다는 것이였는데
커스텀 프로토콜을 이용하면 가능했었습니다. (아이튠즈 방식)

그리고 서버가 필요없는 커맨드향 소프트웨어는 wxWidget과 Qt를 썻었는데.
생각외로 wxWidget가 동적인 구현에서 조금 불안정한(깨지는) 모습이 있었습니다.

동적인 구현이라 함은, 수십개의 옵션이 있고. 옵션을 채크하면
동적으로, 폼에 그 옵션에서 필요한 추가적인 파라메터를 표시하는 것이였는데
많이 할수록 조금씩 위젯들이 깨지더군요. (제가 잘못했을 가능성이 크긴합니다만;)
그리고 OSX로 가져갔을때 룩엔필이 달라지면서, 픽셀단위로 맞춰둔 폼을
새롭게 재배열 해야되더군요..
wxWidget은 각 운영체제의 UI셋을 그대로 사용하기때문에 그런듯 했습니다.

그래서 Qt로 가서 QML이라던지, 테마등을 활용하니 편하더군요..
UI와 상관없는 소소한 명령들도 사용할수 있었구요 (스레드나 기타, wxwidget도 있음)

지금은 CMake+Qt+Python+Swig+Pyside+Vim, Pylons+ExtJS 조합으로 사용하고 있습니다. 
(크로스플랫폼으로 개발할려면, IDE도 크로스플랫폼이 되는게 디버깅시 좋으니까요)

애초에 제가 자바 프로그래머가 아니라서 그런 부분도 있으니 감안하시길 바랍니다.

개인적 용무로 DB솝트웨어(억세스같은)용으로는 FileMaker 완전 강추합니다.