문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 Tizen (문단 편집) ==== 앱 개발 난이도 ==== 네이티브 앱의 경우 초기의 타이젠은 C++ 기반의 OSP 프레임워크를 제공했으나 무슨 이유에서인지 EFL로 전환한 상태이다. 그리고 EFL은 [[C(프로그래밍 언어)|C언어]] 기반에다가 그 자체의 사용법도 상당히 불친절한지라 개발 난이도가 높다. [[C++]]로도 개발이 불가능한 것은 아니나 일단 공식적으로는 C언어가 메인. 최초의 타이젠 스마트워치인 [[삼성 기어 2]]나 최초의 타이젠 스마트폰인 [[삼성 Z1]]이 아직 출시되기도 전에 나온 극 초기 버전의 타이젠이긴 했지만, 이 때를 기점으로 개발 레퍼런스가 초기화되었다. 참고로 [[Apple|애플]], [[구글]], [[마이크로소프트]] 등 굴지의 SW 플랫폼 개발사들은 [[객체 지향 프로그래밍]] 언어조차 너무 어렵다며 [[Swift]], [[Dart(프로그래밍 언어)|Dart]], [[TypeScript]] 등의 스크립트 언어까지 만들어내면서 개발 진입장벽을 한없이 낮추는 데에 목숨을 걸고 있다. 그 와중에 검정 화면에 하얀 글씨만 뜨던 시절에 쓰이던 언어를 갖고 스마트폰 앱을 짠다는 건 상당한 디메리트이다. 물론, C언어가 프로그램 개발의 표준적인 입문 언어이고, 자동 완성 기능 등을 통해 이전에 비해서 압도적으로 편하게 개발할 수 있는 개발 환경도 있는 등 많은 지원이 있지만, 최근에 출시되는 언어에 비하면 번거로운 편이다. 타이젠 3.0 버전 이전에는 C++로 짤 수 있다고는 해도 C언어 기반 API부터가 [[OOP]] 개념이 없는[* 여기서 주의해야 할 것은, C는 OOP를 문법적으로 지원하지 않는 언어이지 OOP를 아예 구현하지 못 하는 건 아니라는 점이다. [[객체 지향 프로그래밍#s-6.2]]을 참조할 것.] 형태로 개발되다보니, OOP형 API에 익숙한 일반적인 개발자들이 직관적으로 이해하기 어려웠다. 웹 앱의 경우 상대적으로 개발하기는 쉬운 편이나, HTML5 및 [[JavaScript]] 자체가 본래 로컬 애플리케이션 제작을 위해 설계된 언어도 아니고, 그렇다고 타이젠에서 [[Node.js]] 같은 무거운 런타임을 지원하는 것도 아닌지라 운영체제에서 별도로 제공하는 API의 도움을 받아야 한다. 이러한 API들 중 많은 수가 비동기 구현을 전제하여 제공되고 있기 때문에 비동기 프로그래밍에 익숙하지 않은 개발자에게는 또다른 난점이 되기도 한다.[* 비슷한 역할을 하는 Node.js가 비동기 API와 별개로 (설령 그것이 권장되지는 않더라도) 동기 API도 같이 제공하는 것과는 대조적이다.] 낮은 진입장벽이 JavaScript의 장점이라고 평가받기는 하나, 그것이 숙련되기도 쉬움을 의미하지는 않는다는 점을 간과한 것. 여기에 더해 UI를 웹 앱으로 구성하고 주요 로직을 네이티브 앱으로 구현할 수 있는 하이브리드 앱을 제공하고 있지만, 프로젝트 간의 의존성 설정이나 앱 간 통신 프로토콜을 신경써야 하는 등[* 이는 전통적으로 서버-클라이언트 모델 개발자들의 골치를 아프게 해왔던 문제이기도 하다. 한쪽의 변경사항에 맞춰 다른 한쪽에도 변경을 가해야 하기 때문에 작업량이 2배로 늘어나고, 실수가 발생하기 쉬우며, 버그가 발생했을 때 이를 추적하기도 어렵다. 이러한 문제를 해결하기 위해 [[Node.js]]와 [[TypeScript]]를 조합하는 등의 해결책이 나오긴 했으나, 다른 한쪽이 C언어인 타이젠에게는 전혀 해당 사항이 없는 이야기인지라 그냥 정직하게 문자열을 주고받을 수밖에 없다.] 다른 의미로 앱 개발이 어려워진다. 다만 위와 같은 문제점들은 타이젠 3.0 이후의 .NET 도입으로 어느 정도 완화된 상황이다. .NET 앱 개발을 위한 C# 도입 및 Xamarin과 비주얼스튜디오를 지원하는 업데이트를 통해 네이티브 API에 대한 의존성이 낮아지면서 객체 지향 프로그래밍이 가능해졌다. 이로인해 HTML5기반의 웹앱 말고도 선택지가 늘어나면서 생긴 훌륭한 대안이라고 할 수 있다. Xamarin.forms의 크로스플랫폼 지원 기능도 사용할 수 있어서 안드로이드나 iOS앱을 쉽게 포팅할 수 있게된 것은 덤.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기