Tizen: Samsung Watch 및 Smart TV 개발의 본질

저자: IT Sectr 게시일: 2026-02-07 읽는 시간: 13 분

Tizen은 Samsung과 Linux Foundation이 개발한 Linux 기반 오픈소스 운영체제입니다. Galaxy Watch 스마트워치, Samsung Smart TV, 가전제품 및 IoT 기기에서 사용됩니다. 네이티브 애플리케이션은 C/C++로, 웹 애플리케이션은 HTML5/JavaScript로 개발합니다. Tizen SDK는 에뮬레이터와 Visual Studio Code 기반 IDE를 제공합니다. Tizen Association에 따르면, 생태계에는 2억 개 이상의 기기가 있습니다.

핵심 요점

  • Tizen — 시계, TV, 가전제품 및 IoT를 위한 Samsung의 Linux 커널 기반 오픈소스 OS
  • C/C++ — 전체 하드웨어 액세스가 가능한 고성능 네이티브 애플리케이션의 주요 언어
  • HTML5/JS — Tizen Device API 및 빠른 프로토타이핑이 가능한 웹 애플리케이션 스택
  • Tizen Studio — VS Code 기반 시계 및 TV 에뮬레이터, 프로파일러, 디버거를 갖춘 SDK
  • Galaxy Store — 검수, 서명 및 30/25% 수수료가 있는 Samsung의 앱 스토어

Tizen이란?

Tizen은 Samsung과 Linux Foundation이 관리하는 오픈소스 운영체제입니다. 최초 상용 버전 Tizen 1.0은 2012년에 출시되었습니다. 시스템은 Linux 커널을 기반으로 하며 다양한 기기 유형에 맞는 자체 프레임워크 아키텍처를 사용합니다: Tizen Mobile(스마트폰 — 2017년 프로젝트 종료), Tizen Watch(시계), Tizen TV(텔레비전), Tizen IoT(스마트 홈).

2021년부터 Samsung은 주로 웨어러블 기기와 텔레비전에서 Tizen을 사용하고 있습니다. 2021년 이전의 모든 Galaxy Watch 스마트워치는 Tizen에서 실행되었습니다(Galaxy Watch, Watch Active, Watch 3). Galaxy Watch 4부터 Samsung은 One UI Watch와 함께 Wear OS로 전환했지만, Tizen은 기존 기기 및 TV에서 계속 지원됩니다. Samsung(Tizen Ecosystem Report, 2025)에 따르면, 전 세계적으로 1억 8천만 대 이상의 TV에 Tizen TV가 설치되어 있습니다.

Tizen의 주요 특징은 두 가지 개발 패러다임을 지원한다는 점입니다: 최대 성능의 네이티브 애플리케이션(C/C++)과 빠른 개발을 위한 웹 애플리케이션(HTML5, CSS, JavaScript)입니다. 두 유형 모두 Tizen Device API에 액세스할 수 있습니다 — Bluetooth, NFC, Wi-Fi, 센서, 카메라 및 멀티미디어 작업을 위한 래퍼입니다.

Tizen 버전 역사

Tizen 2.3(2014) — Samsung Z 스마트폰용 최초 안정 버전. Tizen 3.0(2017) — 향상된 멀티태스킹, Vulkan 지원, 64비트 아키텍처. Tizen 4.0(2018) — 재설계된 프레임워크, NPU의 AI 가속 지원. Tizen 5.5(2020) — AVPlay 2.0, WebAssembly, 향상된 렌더링을 갖춘 Tizen TV. Tizen 6.0(2022) — 기기 내 ML 추론 지원, IoT용 Matter 프로토콜.

Tizen 버전연도기기주요 혁신
2.32014스마트폰Samsung Z 최초 상용 출시
3.02017스마트폰, 시계Vulkan, 64비트, Galaxy Watch
4.02018시계, TV, IoTAI 프레임워크, Tizen TV 2019
5.52020TV, IoTAVPlay 2.0, WebAssembly, WebGL 개선
6.02022TV, IoTML 추론, Matter 프로토콜

Tizen 아키텍처: Linux 커널 및 프레임워크

Tizen 아키텍처는 다계층 구조의 모듈식 원칙으로 구축되었습니다. 최하위 계층은 에너지 효율성 및 실시간 작업(TV 및 오디오용 RT_PREEMPT)을 위한 패치가 적용된 Linux 커널입니다. 커널 위에는 하드웨어 추상화 계층(HAL)이 있어 카메라, 센서, Bluetooth, Wi-Fi, NFC 및 디스플레이 드라이버(DirectFB 또는 Wayland를 통해)에 대한 통합 액세스를 제공합니다.

Core Framework Layer

Core Framework 계층에는 Application Framework(애플리케이션 수명 주기 관리), UI Framework(EFL — UI용 Enlightenment Foundation Libraries, DALi — 게임 및 애니메이션용 3D 엔진), Multimedia Framework(GStreamer 및 MediaCodec을 통한 카메라, 오디오, 비디오), Network Framework(Bluetooth, Wi-Fi, NFC, HTTP, WebSocket), Security Framework(SELinux, Smack, Tizen 권한 시스템)가 포함됩니다.

Service Layer

Service Layer는 시스템 서비스를 제공합니다: Application Manager(시작, 중지, 멀티태스킹), Package Manager(애플리케이션 설치/제거, .tpk 및 .wgt 형식), Location Manager(GPS, Wi-Fi 위치 측정, 지오펜스), Sensor Manager(가속도계, 자이로스코프, 기압계, 심박수 모니터), Context Manager(사용자 활동 인식: 걷기, 달리기, 수면).

웹 애플리케이션용 Device API

Tizen은 웹 애플리케이션용 Device API를 제공합니다 — 네이티브 API와 동일한 기능에 대한 액세스를 제공하는 JavaScript 인터페이스입니다. API는 모듈로 구분됩니다: Application API, Bluetooth API, Calendar API, Call History API, Contact API, Content API, Data Control API, Download API, Gallery API, Media Controller API, Message API, NFC API, Notification API, Power API, Push API, System Info API, Time API, Web Setting API.

C/C++ 기반 Tizen 네이티브 애플리케이션

Tizen 네이티브 애플리케이션은 .tpk 형식(Tizen Package Kit)의 실행 파일로 컴파일됩니다. 주요 언어는 GCC 또는 Clang 컴파일러를 사용한 C++11/14입니다. 개발은 Tizen Studio 또는 Tizen 확장 프로그램이 있는 Visual Studio Code에서 수행됩니다. 네이티브 애플리케이션은 중개자 없이 EFL, DALi, GStreamer 및 모든 시스템 API에 직접 액세스할 수 있어 최대 성능을 보장합니다.

네이티브 애플리케이션 구조

네이티브 애플리케이션에는 tizen-manifest.xml 파일(AndroidManifest.xml과 유사), 하나 이상의 공유 라이브러리(.so), 리소스(이미지, 글꼴, 현지화)가 포함됩니다. 수명 주기는 app_event_cb를 통해 관리됩니다: APP_EVENT_CREATE, APP_EVENT_RESUME, APP_EVENT_PAUSE, APP_EVENT_DESTROY. UI는 창 애플리케이션의 경우 EFL(Edje + Elementary), 3D 그래픽의 경우 DALi를 통해 구축됩니다.

cpp
// EFL UI를 사용한 C++ Tizen 네이티브 애플리케이션
#include <app.h>
#include <efl_extension.h>
#include <dlog.h>

typedef struct appdata {
    Evas_Object *win;
    Evas_Object *conform;
    Evas_Object *label;
} appdata_s;

static void
win_delete_cb(void *data, Evas_Object *obj, void *event_info) {
    ui_app_exit();
}

static void
create_base_gui(appdata_s *ad) {
    // Tizen 창 만들기
    ad->win = efl_add(EFL_UI_WIN_CLASS, nullptr,
                      efl_ui_win_typename_set(efl_add(EFL_UI_WIN_CLASS, nullptr), "tizen-hello"));

    // 창 제목
    efl_text_set(ad->win, "Hello Tizen");
    efl_event_callback_add(ad->win, EFL_UI_WIN_EVENT_DELETE_REQUEST, win_delete_cb, ad);

    // Conformant — 웨어러블 기기용 표준 Tizen 컨테이너
    ad->conform = efl_add(EFL_UI_CONFORMANT_CLASS, ad->win);
    efl_content_set(ad->win, ad->conform);
    efl_gfx_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);

    // 텍스트 레이블
    ad->label = efl_add(EFL_UI_LABEL_CLASS, ad->conform);
    efl_text_set(ad->label, "Tizen에 오신 것을 환영합니다!");
    efl_content_set(ad->conform, ad->label);

    // 창 표시
    efl_gfx_size_hint_weight_set(ad->label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    efl_gfx_size_hint_align_set(ad->label, EVAS_HINT_FILL, EVAS_HINT_FILL);
}

static void
app_get_resource_cb(void *data) {
    // 애플리케이션 리소스 획득 핸들러
    appdata_s *ad = (appdata_s *)data;
    create_base_gui(ad);
}

static bool
app_create_cb(void *data) {
    // 애플리케이션 생성 시 호출됨
    appdata_s *ad = (appdata_s *)data;
    create_base_gui(ad);
    return true;
}

int
main(int argc, char *argv[]) {
    appdata_s ad = {0,};
    ui_app_lifecycle_callback_s event_callback = {0,};

    event_callback.create = app_create_cb;
    return ui_app_main(argc, argv, &event_callback, &ad);
}

네이티브 Tizen Hello World 애플리케이션은 UI에 EFL(Enlightenment Foundation Libraries)을 사용합니다. ui_app_main은 수명 주기 콜백을 수락하는 Tizen 진입점입니다. efl_add는 Win → Conformant → Label 계층 구조를 통해 UI 개체를 만듭니다. EFL UI는 Edje 복합 모델을 기반으로 합니다 — 테마 설명은 .edc 파일에 작성되고 .edj로 컴파일됩니다.

Tizen 매니페스트(tizen-manifest.xml)

tizen-manifest.xml 파일은 네이티브 애플리케이션의 구성입니다. id(역방향 도메인 형식의 고유 식별자), package(패키지 이름), version, label(표시 이름), author, description을 지정합니다. 권한은 API 액세스를 선언합니다: http://tizen.org/privilege/bluetooth, http://tizen.org/privilege/location, http://tizen.org/privilege/camera. 권한을 지정하지 않으면 해당 API를 호출할 때 SECURITY_ERR 오류가 발생합니다.

HTML5 및 JavaScript 기반 Tizen 웹 애플리케이션

Tizen 웹 애플리케이션은 .wgt 형식(W3C Widget)으로 패키징된 HTML5 애플리케이션입니다. 개발은 일반 웹사이트 제작과 동일하지만, 전역 tizen 개체를 통한 Tizen Device API에 대한 추가 액세스 권한이 있습니다. 웹 애플리케이션은 WebKit 엔진(Tizen 2.x-4.x) 또는 Chromium(Tizen 5.5+) 기반의 자체 Web Runtime(WRT) 프로세스에서 실행됩니다.

웹 애플리케이션 구조

웹 애플리케이션에는 index.html(진입점), config.xml(W3C Widget Configuration), CSS, JavaScript, 이미지가 포함됩니다. config.xml 파일은 KaiOS의 manifest.webapp과 유사합니다: 필수 필드에는 widget(id, version, 시계의 경우 height/width), name, description, author가 포함됩니다. Device API에 대한 권한은 tizen:privilege 요소를 통해 지정됩니다. CSP(Content Security Policy) 섹션은 스크립트 소스를 제한합니다.

javascript
// Tizen Watch 웹 애플리케이션용 config.xml
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets"
        xmlns:tizen="http://tizen.org/ns/widgets"
        id="com.example.heartrate"
        version="1.0.0"
        height="360" width="360">
    <tizen:application id="com.example.heartrate"
                       package="com.example.heartrate"
                       required_version="4.0"/>
    <name>심박수 측정기</name>
    <description>Galaxy Watch에서 심박수 측정</description>
    <author>Developer</author>
    <tizen:privilege name="http://tizen.org/privilege/healthinfo"/>
    <tizen:privilege name="http://tizen.org/privilege/sensor"/>
    <tizen:profile name="wearable"/>
    <tizen:content-security-policy>
        default-src 'self'; script-src 'self'; style-src 'self'
    </tizen:content-security-policy>
</widget>

최소 config.xml 스니펫은 주요 요소를 보여줍니다: id 및 버전이 있는 widget, 원형 시계 화면용 wearable 프로필이 있는 tizen:application, healthinfo 및 sensor API용 tizen:privilege, 애플리케이션 패키지에서만 콘텐츠 로드를 제한하는 Content Security Policy.

javascript
// Tizen Watch 웹 애플리케이션: 심박수 모니터링
const HeartRateMonitor = {
    hrSensor: null,
    isMonitoring: false,

    async init() {
        try {
            // HRM 센서 지원 확인
            const sensors = tizen.sensorservice.getAvailableSensors();
            if (!sensors.includes('HRM')) {
                throw new Error('HRM 센서를 찾을 수 없습니다');
            }

            // 심박수 센서 액세스 권한 얻기
            this.hrSensor = tizen.sensorservice.getDefaultSensor('HRM');
            console.log('HRM 센서가 초기화되었습니다');
        } catch (err) {
            console.error('초기화 오류:', err.message);
        }
    },

    startMonitoring() {
        if (!this.hrSensor) return;

        this.isMonitoring = true;
        this.hrSensor.startSensor({
            interval: 1000,  // 매초 측정
            callback: {
                onsuccess: (data) => {
                    const heartRate = data.heartRate;
                    document.getElementById('hr-value').textContent = heartRate;
                    this.updateDisplay(heartRate);
                },
                onerror: (err) => {
                    console.error('센서 오류:', err.message);
                }
            }
        });
    },

    stopMonitoring() {
        if (this.hrSensor && this.isMonitoring) {
            this.hrSensor.stopSensor();
            this.isMonitoring = false;
        }
    },

    updateDisplay(heartRate) {
        // 360x360 원형 화면에 심박수 시각화
        const canvas = document.getElementById('hr-canvas');
        const ctx = canvas.getContext('2d');
        ctx.clearRect(0, 0, 360, 360);

        // 원형 심박수 표시기
        ctx.beginPath();
        ctx.arc(180, 180, 120, 0, 2 * Math.PI);
        ctx.strokeStyle = '#ff4444';
        ctx.lineWidth = 8;
        ctx.stroke();
    }
};

document.addEventListener('DOMContentLoaded', () => {
    HeartRateMonitor.init().then(() => {
        HeartRateMonitor.startMonitoring();
    });
});

HeartRateMonitor 애플리케이션은 Tizen Sensor API를 사용하여 Galaxy Watch의 HRM 센서에 액세스합니다. tizen.sensorservice.getDefaultSensor('HRM')으로 심박수 센서를 가져오고, startSensor로 1초 간격으로 측정을 시작합니다. 360×360 캔버스가 원형 표시기를 그립니다 — 원형 Tizen 시계 화면의 일반적인 UI 패러다임입니다.

Tizen Watch 개발: Circle UI 및 Rotary

Tizen Watch에는 고유한 UI 기능이 있습니다: 원형 화면(Galaxy Watch에서 360×360픽셀), 탐색용 물리적 베젤(rotary bezel), 세 개의 하드웨어 버튼(Home, Back, Custom). 개발자는 원형 영역에 맞게 인터페이스를 조정해야 합니다 — 모서리 요소가 잘릴 수 있습니다. Circle UI는 원형 화면용 기성 구성 요소를 갖춘 Samsung의 라이브러리입니다.

Rotary Bezel

Rotary Bezel — Galaxy Watch 화면 주변의 물리적 링으로, 목록 탐색, 볼륨 조절 및 확대/축소를 위해 회전합니다. Tizen에서 회전 이벤트는 rotarydetector 또는 EFL edge 신호를 통해 처리됩니다. 각 베젤 노치는 회전 각도(0-360도)가 있는 이벤트를 생성합니다. 웹 애플리케이션은 rotarydetector API(tizen.rotarydetector)를 통해 베젤을 처리합니다.

javascript
// Tizen Watch에서 Rotary Bezel 처리
class RotaryNavigation {
    constructor() {
        this.currentAngle = 0;
        this.sections = document.querySelectorAll('.rotary-section');
        this.currentSection = 0;
        this.init();
    }

    init() {
        // 베젤 회전 이벤트 구독
        const detector = tizen.rotarydetector;

        detector.addEventListener('rotarydetector', (event) => {
            // event.angle — 현재 각도(0-360)
            // event.direction — 'cw'(시계 방향) 또는 'ccw'(반시계 방향)
            this.handleRotation(event);
        });

        // rotarydetector 활성화
        detector.start();
    }

    handleRotation(event) {
        const delta = event.delta;  // 각도 변경
        this.currentAngle += delta;

        // 방향 및 이동 결정
        if (delta > 0) {
            // 시계 방향 회전 — 다음 요소
            this.currentSection = Math.min(this.currentSection + 1, this.sections.length - 1);
        } else {
            // 반시계 방향 회전 — 이전 요소
            this.currentSection = Math.max(this.currentSection - 1, 0);
        }

        this.updateUI();
    }

    updateUI() {
        this.sections.forEach((el, i) => {
            el.classList.toggle('active', i === this.currentSection);
            el.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
        });
    }

    destroy() {
        tizen.rotarydetector.removeEventListener('rotarydetector');
        tizen.rotarydetector.stop();
    }
}

// 애플리케이션 로드 시 초기화
document.addEventListener('tizen-rotary-ready', () => {
    const nav = new RotaryNavigation();
});

RotaryNavigation 클래스는 tizen.rotarydetector.addEventListener를 통해 rotarydetector 이벤트를 구독합니다. 베젤이 회전되면 방향(cw/ccw)과 각도 델타가 계산됩니다. 현재 섹션은 active 클래스로 강조 표시됩니다. rotarydetector.start()는 필수입니다 — 이것 없이는 이벤트가 생성되지 않습니다. destroy()는 구독을 취소하고 메모리 누수를 방지하기 위해 감지기를 중지합니다.

시계 UI 기능

Tizen Watch 인터페이스는 다음 구성 요소를 사용합니다: RotarySelector(베젤 제어 원형 목록), CircularList(원형 스크롤 목록), RadialMenu(원형으로 배열된 아이콘이 있는 방사형 메뉴), EdgePanel(화면 가장자리에서 슬라이드되는 패널), CircleProgressBar(원형 진행률 표시기). 모든 구성 요소는 360×360 해상도에 최적화되어 있으며 화면 모서리가 없음을 고려합니다. 최소 터치 대상 크기는 48픽셀입니다.

Tizen TV 개발: Smart TV용 앱

Tizen TV — 자체 SDK 및 에뮬레이터를 갖춘 Samsung Smart TV용 플랫폼입니다. TV 애플리케이션은 웹 애플리케이션(HTML5/JS)과 네이티브 애플리케이션(C/C++)의 두 가지 유형으로 나뉩니다. TV용 웹 애플리케이션은 더 빠르고 쉽게 개발할 수 있지만, 네이티브 애플리케이션은 비디오 및 게임에서 더 나은 성능을 제공합니다. Tizen TV는 D-pad가 있는 리모컨을 사용합니다.

비디오용 AVPlay API

AVPlay API — 비디오 재생을 위한 Tizen TV의 주요 API입니다. H.264, H.265(HEVC), VP9, AV1 형식을 지원합니다. 2024+ TV에서 최대 8K 해상도. AVPlay API는 하드웨어 디코딩, HDR10+, Dolby Atmos, 자막 및 여러 오디오 트랙을 제공합니다. play(), pause(), stop(), seekTo(position), setDisplayRect()로 제어합니다. 스트림은 로컬 파일 또는 HLS/DASH URL일 수 있습니다.

javascript
// AVPlay API를 사용한 Tizen TV용 비디오 플레이어
class TizenVideoPlayer {
    constructor(videoElementId) {
        this.videoElement = document.getElementById(videoElementId);
        this.avplay = null;
        this.isReady = false;
    }

    async init(url) {
        try {
            // AVPlay 가용성 확인
            if (typeof webapis === 'undefined' ||
                !webapis.avplay) {
                throw new Error('AVPlay API를 사용할 수 없습니다');
            }

            this.avplay = webapis.avplay;
            this.avplay.open(url);

            // TV 전체 화면으로 표시 설정
            this.avplay.setDisplayRect(0, 0, 3840, 2160);
            this.avplay.setDisplayMethod(webapis.avplay.AVPLAY_DISPLAY_METHOD_PLAYER);

            // 오디오 구성(Dolby Atmos, 지원되는 경우)
            this.avplay.setStreamingProperty('ADAPTIVE_INFO', JSON.stringify({
                width: 3840,
                height: 2160,
                bitrate: 25000000
            }));

            this.avplay.prepareAsync(
                () => {
                    this.isReady = true;
                    console.log('영상 재생 준비 완료');
                },
                (error) => {
                    console.error('준비 오류:', error);
                }
            );
        } catch (err) {
            console.error('초기화 오류:', err);
        }
    }

    play() {
        if (this.isReady) this.avplay.play();
    }

    pause() {
        this.avplay.pause();
    }

    seekTo(positionMs) {
        this.avplay.seekTo(positionMs);
    }

    setSubtitle(url, encoding) {
        this.avplay.setStreamingProperty('SUBTITLE', JSON.stringify({
            url: url,
            encoding: encoding || 'UTF-8'
        }));
    }
}

// 사용
const player = new TizenVideoPlayer('video-area');
player.init('https://example.com/stream.m3u8');
player.setSubtitle('https://example.com/subs.vtt', 'UTF-8');

TizenVideoPlayer 클래스는 AVPlay API 작업을 보여줍니다. webapis.avplay.open()은 미디어 스트림(로컬 또는 HLS/DASH)을 엽니다. setDisplayRect는 렌더링 영역을 설정합니다 — TV에서는 일반적으로 3840×2160의 전체 화면입니다. prepareAsync는 콜백이 있는 비동기 준비입니다. AVPlay는 ADAPTIVE_INFO를 통한 적응형 비트레이트와 SUBTITLE 속성을 통한 자막을 지원합니다.

Galaxy Store 및 애플리케이션 게시

Samsung Galaxy Store — Tizen(시계, TV, IoT)의 공식 앱 스토어입니다. 개발자 등록은 Samsung Developers 프로그램을 통해 무료입니다. 개발자는 Samsung 인증서로 서명된 .tpk(네이티브) 또는 .wgt(웹) 형식의 애플리케이션을 업로드합니다. 검토는 2-5 영업일이 소요됩니다. Galaxy Store는 190개국에서 사용 가능합니다.

애플리케이션 서명

Tizen은 Samsung 인증서를 사용한 애플리케이션의 디지털 서명이 필요합니다. 프로세스: Samsung Certificate Manager를 통해 Author Certificate 생성, 스토어용 Distributor Certificate 생성, Tizen Studio(Build Signed Package)를 통해 패키지 서명. 인증서는 개발자 계정에 연결됩니다. 서명이 없으면 애플리케이션은 개발자 모드가 활성화된 개발 기기에만 설치할 수 있습니다.

수익화 모델

Galaxy Store는 유료 애플리케이션(처음 $10,000까지 30% 수수료, 그 후 25%), 구독(25%), Samsung Ads를 통한 광고, Samsung IAP를 통한 인앱 구매를 지원합니다. TV 애플리케이션의 경우 Smart TV Premium Channels 모델을 사용할 수 있습니다. 최소 가격은 $0.99입니다. $100 기준에 도달하면 월별 지급이 이루어집니다.

요구 사항네이티브(.tpk)웹(.wgt)
언어C/C++HTML5, CSS, JS
UI 프레임워크EFL, DALi, Tizen Circle UICircle UI(JS)
API 액세스전체 시스템Device API
성능최대낮음(Web Runtime)
패키지 크기최대 100MB최대 10MB
시작 템플릿Tizen Native AppTizen Web App

자주 묻는 질문

Tizen 개발에 어떤 언어가 사용되나요?

네이티브 애플리케이션은 UI에 EFL 또는 DALi를 사용하여 C/C++로 작성됩니다. 웹 애플리케이션은 Tizen Device API와 함께 HTML5, CSS, JavaScript를 사용합니다. Tizen TV의 경우 Tizen .NET을 통해 .NET(C#) 개발이 가능합니다. Samsung은 고성능 애플리케이션에는 C++, 간단한 인터페이스에는 JavaScript를 권장합니다.

Tizen과 Wear OS의 차이점은?

Tizen은 Samsung 하드웨어에 최적화된 자체 C/C++ 프레임워크를 사용합니다. Wear OS는 Kotlin/Java를 사용하는 Android 기반입니다. Tizen은 동일한 하드웨어에서 30% 적은 전력을 소비하지만 스토어에 앱이 적습니다. 2021년부터 Samsung은 새 시계에서 Wear OS로 전환했지만 Tizen은 계속 지원됩니다.

Tizen TV용 웹 애플리케이션을 만드는 방법은?

Tizen TV용 웹 애플리케이션은 Tizen Device API와 함께 HTML5/JavaScript로 만듭니다. 개발은 TV 에뮬레이터가 있는 Tizen Studio에서 수행됩니다. 애플리케이션은 .wgt 패키지로 패키징됩니다. 주요 API: AVPlay(비디오), TVInfoDevice(TV 사양), TVInputDevice(리모컨), WebAudio(사운드). 리모컨의 D-pad로 탐색합니다.

Tizen의 Rotary Bezel이란?

Rotary Bezel — 탐색용 Galaxy Watch 화면 주변의 물리적 회전 링입니다. 이벤트는 tizen.rotarydetector API를 통해 처리됩니다. 각 노치는 회전 각도와 방향(cw/ccw)이 있는 이벤트를 생성합니다. Rotary Bezel은 목록 스크롤, 볼륨 조절, 확대/축소 및 메뉴 탐색에 사용됩니다.

Tizen 애플리케이션을 게시하려면?

Samsung Galaxy Store를 통해 게시합니다. 개발자 등록은 무료입니다. 애플리케이션(.tpk 또는 .wgt 형식)은 Samsung 인증서로 서명됩니다. 검토는 2-5일 소요됩니다. 수수료는 처음 $10,000 수익의 30%, 그 후 25%입니다. 최소 가격은 $0.99입니다. $100부터 월별 지급.

요약

  • Tizen — 시계, TV, IoT 및 가전제품을 위한 Samsung의 Linux 커널 기반 오픈소스 OS로 네이티브 및 웹 애플리케이션 지원
  • 네이티브 애플리케이션(C/C++, EFL/DALi, .tpk 형식)은 최대 성능과 전체 하드웨어 액세스 제공
  • 웹 애플리케이션(HTML5/JS, .wgt 형식, Chromium 기반 Web Runtime) — Device API로 빠른 개발
  • Tizen Watch는 360×360 원형 화면, Rotary Bezel, Circle UI 및 RotarySelector/CircularList 구성 요소 사용
  • Tizen TV는 8K까지 H.264/H.265/VP9의 하드웨어 디코딩, HDR10+, Dolby Atmos를 위해 AVPlay API 사용
  • Galaxy Store — 무료 등록, .tpk/.wgt 형식, Samsung 인증서 서명, 2-5일 검토
  • Tizen Studio — 시계 및 TV 에뮬레이터, 프로파일러, 디버거를 갖춘 VS Code 기반 SDK

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기