[Mac OS X] 데스크탑 응용프로그램 개발시작

[Mac OS X] 데스크탑 응용프로그램 개발시작

현재 회사에서 다음 프로젝트로 Mac OS X를 개발해야 하는 일정이 생겨 난생 처음 데스크탑 응용프로그램을 개발하기 공부를 시작했고 여러가지 플랫폼이 있다는것을 발견했다. 어떤 플랫폼을 사용해야할 지 먼저 고민해보자.

무엇으로 개발할것인가?

Xcode & Swfit or Objective-C Mac OS X 는 objective-c를 기반으로 만들어졌다. apple에서 제공하는 Xcode와 objective-c 혹은 Swift로 응용 프로그램을 만들 수 있다. Electron Electron 프레임워크를 사용하면 javascript, HTML, CSS를 사용하여 크로스 플랫폼 데스크탑 응용 프로그램을 만들 수 있다. react-native-desktop Qt 프레임 워크를 기반으로하는 크로스 플랫폼이다. react-native 와 javascript로 응용 프로그램을 만들 수 있다. Qt는 컴퓨터 프로그래밍에서 GUI 프로그램 개발에 널리 쓰이는 크로스 플랫폼 프레임워크.

각 플랫폼의 장단점은 무엇인가?

Xcode & Swfit or Objective-C

- 장점

모든 OSX API에 직접 접근할 수 있다. Xcode를 통해 App Store에 쉽게 배포할 수 있다.

- 단점

Windows 전용 응용 프로그램을 다시 개발해야한다. Swift언어를 모른다면 새로 공부해야 한다.

Electron

- 장점

웹스택을 가지고 빠르게 만들 수 있다. 다양한 플랫폼을 지원한다.

- 단점

Native언어로 개발할때 보다 성능이 떨어질 이슈가있다. OS X API를 사용하는데 복잡하다. *API에 대한 JavaScript 래퍼가 없으면 자체 래퍼를 작성하지 않는 한 프로젝트에서 사용할 수 없습니다.

React-native-desktop

- 장점

현재 개발스택과 완전히 동일하므로 더 빠르게 개발 할 수 있다. 다양한 플랫폼을 지원한다.

- 단점

Native언어로 개발할때 보다 성능이 떨어질 이슈가있다. 실사용 사례와 플랫폼 관련 자료가 많이 없다.

우리에게 무엇이 필요한가?

- 개발속도

우리는 react-native 와 nodejs를 사용하고 ios에서 필요한 부분은 objective-c & Swift로 브릿지를 연결하여 개발하고 있다. 하지만 대부분의 개발자들의 개발스택이 javascript이기 때문에 개발 속도상 javascript 언어를 사용하는 플랫폼이 훨씬 더 퍼포먼스가 잘 나올 것으로 예상된다.

- 다양한 플랫폼

아주 나중에 일이지만 개발일정 상 나중에 windows를 개발해야 하는 상황이 올것으로 예상된다. 그렇다면 지금 react-native를 사용하여 ios와 안드로이드를 개발하는 것 같이 나중을 위해서 데스크탑 응용프로그램도 크로스플랫폼으로 개발하는 것이 유리할 것이다.

우리 서비스를 적용 할 수 있는가?

현재 우리회사에서 사용하고 있는 주요 sdk를 electron에서 사용할 수 있는지가 가장 큰 이슈였다. sdk 메인 사이트를 확인한 결과 지원하는 것으로 확인했다.

결론

앞으로 회사의 방향성과 현재 개발팀의 상황으로 봤을때 Electron으로 개발을 시작하는게 가장 좋은 선택인것 같다. 아직 모바일에서의 react-native처럼 데스크탑 크로스플랫폼이 발전하지는 않았지만 앞으로 빠른 퍼포먼스를 내기위해 응용프로그램을 만드는 사람에게 있어서는 굉장히 좋은 선택지 인것 같다.

from http://bangc.tistory.com/17 by ccl(A) rewrite - 2020-03-20 14:54:21

댓글

이 블로그의 인기 게시물

단위 테스트 환경 구축

Coupang CS Systems 채용 정보: Front-end 개발자를 찾습니다!

스토리북에서 스토리를 작성하는 방법