Tizen: جوهر توسعه برای Samsung Watch و Smart TV

نویسنده: IT Sectr منتشر شده: 2026-02-07 زمان مطالعه: 13 دقیقه

Tizen یک سیستم‌عامل متن‌باز مبتنی بر Linux است که توسط Samsung و Linux Foundation توسعه یافته است. در ساعت‌های هوشمند Galaxy Watch، تلویزیون‌های Samsung Smart TV، لوازم خانگی و دستگاه‌های IoT استفاده می‌شود. توسعه برای برنامه‌های بومی به زبان C/C++ و برای برنامه‌های وب به HTML5/JavaScript انجام می‌شود. Tizen SDK یک شبیه‌ساز و IDE مبتنی بر Visual Studio Code ارائه می‌دهد. به گفته انجمن Tizen، این اکوسیستم بیش از ۲۰۰ میلیون دستگاه را شامل می‌شود.

نکات اصلی

  • Tizen — سیستم‌عامل متن‌باز Samsung بر هسته Linux برای ساعت‌ها، تلویزیون‌ها، لوازم خانگی و IoT
  • C/C++ — زبان اصلی برای برنامه‌های بومی با کارایی بالا با دسترسی کامل به سخت‌افزار
  • HTML5/JS — پشته برای برنامه‌های وب با Tizen Device API و امکان نمونه‌سازی سریع
  • Tizen Studio — SDK با شبیه‌ساز ساعت و تلویزیون، پروفایلر و دیباگر مبتنی بر VS Code
  • Galaxy Store — فروشگاه برنامه Samsung با نظارت، امضا و کارمزد ۳۰/۲۵٪

Tizen چیست؟

Tizen یک سیستم‌عامل متن‌باز است که توسط Samsung و Linux Foundation نظارت می‌شود. اولین انتشار تجاری Tizen 1.0 در سال ۲۰۱۲ انجام شد. این سیستم بر پایه هسته Linux است و از معماری چارچوب مخصوص خود برای انواع دستگاه‌ها استفاده می‌کند: Tizen Mobile (تلفن‌های هوشمند — پروژه در ۲۰۱۷ بسته شد)، Tizen Watch (ساعت‌ها)، Tizen TV (تلویزیون‌ها) و Tizen IoT (خانه هوشمند).

از سال ۲۰۲۱، Samsung از Tizen عمدتاً در دستگاه‌های پوشیدنی و تلویزیون‌ها استفاده می‌کند. تمام ساعت‌های هوشمند Galaxy Watch قبل از ۲۰۲۱ روی Tizen کار می‌کردند (Galaxy Watch, Watch Active, Watch 3). از Galaxy Watch 4 به بعد، Samsung به Wear OS با One UI Watch مهاجرت کرد، اما Tizen همچنان برای دستگاه‌های موجود و تلویزیون‌ها پشتیبانی می‌شود. به گفته Samsung (گزارش اکوسیستم Tizen، ۲۰۲۵)، بیش از ۱۸۰ میلیون تلویزیون در سراسر جهان 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، معماری ۶۴ بیتی. Tizen 4.0 (2018) — چارچوب‌های بازطراحی‌شده، پشتیبانی شتاب AI بر NPU. Tizen 5.5 (2020) — Tizen TV با AVPlay 2.0, WebAssembly, رندر بهبودیافته. Tizen 6.0 (2022) — پشتیبانی استنتاج ML روی دستگاه، پروتکل Matter برای IoT.

نسخه Tizenسالدستگاه‌هانوآوری اصلی
2.32014تلفن‌های هوشمنداولین انتشار تجاری بر Samsung Z
3.02017تلفن‌های هوشمند، ساعت‌هاVulkan, ۶۴ بیت, Galaxy Watch
4.02018ساعت‌ها، تلویزیون، IoTچارچوب‌های AI, Tizen TV 2019
5.52020تلویزیون، IoTAVPlay 2.0, WebAssembly, WebGL بهبودیافته
6.02022تلویزیون، IoTاستنتاج ML, پروتکل Matter

معماری Tizen: هسته Linux و چارچوب‌ها

معماری Tizen بر اصل ماژولار با ساختاری چندلایه ساخته شده است. پایین‌ترین لایه هسته Linux با وصله‌هایی برای بهره‌وری انرژی و وظایف بلادرنگ (RT_PREEMPT برای تلویزیون و صدا) است. بالای هسته، لایه انتزاع سخت‌افزار (HAL) قرار دارد که دسترسی یکپارچه به درایورهای دوربین، سنسورها، Bluetooth, Wi-Fi, NFC و نمایشگر (از طریق DirectFB یا Wayland) فراهم می‌کند.

لایه چارچوب اصلی

لایه چارچوب اصلی شامل Application Framework (مدیریت چرخه حیات برنامه‌ها), UI Framework (EFL — Enlightenment Foundation Libraries برای رابط کاربری, DALi — موتور سه‌بعدی برای بازی‌ها و انیمیشن‌ها), Multimedia Framework (دوربین, صدا, ویدیو از طریق GStreamer و MediaCodec), Network Framework (Bluetooth, Wi-Fi, NFC, HTTP, WebSocket) و Security Framework (SELinux, Smack, سیستم مجوز Tizen) است.

لایه خدمات

لایه خدمات سرویس‌های سیستمی ارائه می‌دهد: Application Manager (راه‌اندازی, توقف, چندوظیفگی), Package Manager (نصب/حذف برنامه‌ها, فرمت‌های .tpk و .wgt), Location Manager (GPS, موقعیت‌یابی Wi-Fi, حصار جغرافیایی), Sensor Manager (شتاب‌سنج, ژیروسکوپ, فشارسنج, مانیتور ضربان قلب), Context Manager (تشخیص فعالیت کاربر: راه رفتن, دویدن, خوابیدن).

Device API برای برنامه‌های وب

Tizen Device API را ارائه می‌دهد — رابط‌های JavaScript برای برنامه‌های وب که دسترسی به همان عملکردهای API بومی را فراهم می‌کنند. 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.

برنامه‌های بومی Tizen به زبان C/C++

برنامه‌های بومی Tizen به یک فایل اجرایی با فرمت .tpk (Tizen Package Kit) کامپایل می‌شوند. زبان اصلی C++11/14 با کامپایلر GCC یا Clang است. توسعه در Tizen Studio یا Visual Studio Code با افزونه Tizen انجام می‌شود. برنامه‌های بومی به 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. رابط کاربری از طریق EFL (Edje + Elementary) برای برنامه‌های پنجره‌ای یا DALi برای گرافیک سه‌بعدی ساخته می‌شود.

cpp
// برنامه بومی Tizen به C++ با رابط EFL
#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 از EFL (Enlightenment Foundation Libraries) برای رابط کاربری استفاده می‌کند. ui_app_main نقطه ورود Tizen است که فراخوانی‌های چرخه حیات را می‌پذیرد. efl_add اشیاء رابط کاربری را از طریق سلسله‌مراتب Win → Conformant → Label ایجاد می‌کند. رابط کاربری EFL بر مدل ترکیبی 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 مواجه می‌شود.

برنامه‌های وب Tizen به HTML5 و JavaScript

برنامه‌های وب Tizen برنامه‌های HTML5 هستند که در قالب .wgt (Widget W3C) بسته‌بندی می‌شوند. توسعه مشابه ایجاد یک وب‌سایت معمولی است، اما با دسترسی اضافی به Tizen Device API از طریق شیء سراسری tizen. برنامه‌های وب در فرآیند Web Runtime (WRT) خود اجرا می‌شوند که بر پایه موتور WebKit (Tizen 2.x-4.x) یا Chromium (Tizen 5.5+) است.

ساختار برنامه وب

یک برنامه وب شامل index.html (نقطه ورود), config.xml (پیکربندی Widget W3C), CSS, JavaScript و تصاویر است. فایل config.xml مشابه manifest.webapp در KaiOS است: فیلدهای اجباری شامل widget (id, version, height/width برای ساعت‌ها), name, description و author است. مجوزهای Device API از طریق عنصر tizen:privilege مشخص می‌شوند. بخش CSP (خط‌مشی امنیت محتوا) منابع اسکریپت را محدود می‌کند.

javascript
// config.xml برای برنامه وب Tizen Watch
<?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 عناصر کلیدی را نشان می‌دهد: widget با id و نسخه, tizen:application با پروفایل wearable برای صفحه‌های گرد ساعت, tizen:privilege برای healthinfo و sensor API, و خط‌مشی امنیت محتوا که بارگذاری محتوا را فقط به بسته برنامه محدود می‌کند.

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 برای دسترسی به سنسور HRM ساعت Galaxy Watch استفاده می‌کند. tizen.sensorservice.getDefaultSensor('HRM') سنسور ضربان قلب را دریافت می‌کند, startSensor اندازه‌گیری‌ها را با فاصله ۱ ثانیه شروع می‌کند. یک بوم ۳۶۰×۳۶۰ یک نشانگر دایره‌ای رسم می‌کند — یک پارادایم رابط کاربری معمولی برای صفحه‌های گرد ساعت Tizen.

توسعه برای Tizen Watch: Circle UI و Rotary

Tizen Watch ویژگی‌های منحصربه‌فرد رابط کاربری دارد: صفحه نمایش گرد (۳۶۰×۳۶۰ پیکسل در Galaxy Watch), قاب فیزیکی (rotary bezel) برای ناوبری و سه دکمه سخت‌افزاری: Home, Back و Custom. توسعه‌دهنده باید رابط را برای ناحیه گرد تطبیق دهد — عناصر گوشه ممکن است بریده شوند. Circle UI کتابخانه Samsung با اجزای آماده برای صفحه‌های گرد است.

Rotary Bezel

Rotary Bezel — حلقه فیزیکی دور صفحه Galaxy Watch که برای ناوبری در لیست‌ها, تنظیم صدا و بزرگنمایی می‌چرخد. در Tizen, رویداد چرخش از طریق rotarydetector یا سیگنال edge EFL پردازش می‌شود. هر شکاف قاب یک رویداد با زاویه چرخش (۰-۳۶۰ درجه) تولید می‌کند. برنامه‌های وب قاب را از طریق API rotarydetector پردازش می‌کنند: tizen.rotarydetector.

javascript
// پردازش Rotary Bezel در Tizen Watch
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 در رویدادهای rotarydetector از طریق tizen.rotarydetector.addEventListener مشترک می‌شود. وقتی قاب چرخانده می‌شود, جهت (cw/ccw) و دلتای زاویه محاسبه می‌شود. بخش فعلی با کلاس active برجسته می‌شود. rotarydetector.start() اجباری است — بدون آن رویدادها تولید نمی‌شوند. destroy() اشتراک را لغو کرده و آشکارساز را برای جلوگیری از نشت حافظه متوقف می‌کند.

ویژگی‌های رابط کاربری برای ساعت‌ها

رابط Tizen Watch از اجزای زیر استفاده می‌کند: RotarySelector(لیست دایره‌ای کنترل‌شده با قاب), CircularList(لیست با پیمایش دایره‌ای), RadialMenu(منوی شعاعی با آیکون‌های چیده‌شده در دایره), EdgePanel(پانل لغزنده از لبه صفحه) و CircleProgressBar(نشانگر پیشرفت دایره‌ای). همه اجزا برای وضوح ۳۶۰×۳۶۰ بهینه شده‌اند و نبود گوشه‌های صفحه را در نظر می‌گیرند. حداقل اندازه هدف لمسی ۴۸ پیکسل است.

توسعه برای Tizen TV: برنامه‌های Smart TV

Tizen TV — پلتفرمی برای Samsung Smart TV با SDK و شبیه‌ساز خود. برنامه‌های تلویزیون به دو نوع تقسیم می‌شوند: برنامه‌های وب (HTML5/JS) و برنامه‌های بومی (C/C++). برنامه‌های وب برای تلویزیون سریع‌تر و آسان‌تر توسعه می‌یابند, اما برنامه‌های بومی عملکرد بهتری برای ویدیو و بازی‌ها ارائه می‌دهند. Tizen TV از کنترل از راه دور با D-pad برای ناوبری استفاده می‌کند.

AVPlay API برای ویدیو

AVPlay API — API کلیدی Tizen TV برای پخش ویدیو. از فرمت‌های H.264, H.265 (HEVC), VP9, AV1 پشتیبانی می‌کند. وضوح تا ۸K در تلویزیون‌های ۲۰۲۴+. AVPlay API رمزگشایی سخت‌افزاری, HDR10+, Dolby Atmos, زیرنویس و چندین تراک صوتی را فراهم می‌کند. کنترل از طریق play(), pause(), stop(), seekTo(position), setDisplayRect(). جریان می‌تواند فایل محلی یا URL HLS/DASH باشد.

javascript
// پخش‌کننده ویدیو برای Tizen TV با AVPlay API
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);

            // تنظیم نمایش به تمام صفحه تلویزیون
            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 ناحیه رندر را تنظیم می‌کند — در تلویزیون معمولاً تمام صفحه در ۳۸۴۰×۲۱۶۰ است. prepareAsync آماده‌سازی ناهمزمان با فراخوانی‌ها است. AVPlay از نرخ بیت تطبیقی از طریق ADAPTIVE_INFO و زیرنویس از طریق ویژگی SUBTITLE پشتیبانی می‌کند.

Galaxy Store و انتشار برنامه‌ها

Samsung Galaxy Store — فروشگاه رسمی برنامه برای Tizen (ساعت‌ها, تلویزیون‌ها, IoT). ثبت‌نام توسعه‌دهنده از طریق برنامه Samsung Developers رایگان است. توسعه‌دهندگان برنامه‌ها را با فرمت .tpk (بومی) یا .wgt (وب) آپلود می‌کنند که با گواهی Samsung امضا شده است. نظارت ۲-۵ روز کاری طول می‌کشد. Galaxy Store در ۱۹۰ کشور در دسترس است.

امضای برنامه

Tizen برای برنامه‌ها امضای دیجیتال با گواهی Samsung نیاز دارد. فرآیند: ایجاد گواهی نویسنده از طریق Samsung Certificate Manager, ایجاد گواهی توزیع‌کننده برای فروشگاه, امضای بسته از طریق Tizen Studio (Build Signed Package). گواهی به حساب توسعه‌دهنده متصل می‌شود. بدون امضا, برنامه فقط در دستگاه‌های توسعه با حالت توسعه‌دهنده فعال قابل نصب است.

مدل درآمدزایی

Galaxy Store از برنامه‌های پولی (کارمزد ۳۰٪ برای ۱۰,۰۰۰$ اول, سپس ۲۵٪), اشتراک (۲۵٪), تبلیغات از طریق Samsung Ads و خریدهای درون‌برنامه‌ای از طریق Samsung IAP پشتیبانی می‌کند. برای برنامه‌های تلویزیون, مدل Smart TV Premium Channels در دسترس است. حداقل قیمت ۰.۹۹$ است. پرداخت‌ها ماهانه با رسیدن به آستانه ۱۰۰$ انجام می‌شود.

نیازبومی (.tpk)وب (.wgt)
زبانC/C++HTML5, CSS, JS
چارچوب UIEFL, DALi, Tizen Circle UICircle UI (JS)
دسترسی APIکامل سیستمDevice API
کاراییحداکثرپایین‌تر (Web Runtime)
اندازه بستهتا ۱۰۰ مگابایتتا ۱۰ مگابایت
قالب شروعTizen Native AppTizen Web App

سوالات متداول

چه زبان‌هایی برای توسعه Tizen استفاده می‌شود؟

برنامه‌های بومی به زبان C/C++ با استفاده از EFL یا DALi برای رابط کاربری نوشته می‌شوند. برنامه‌های وب از HTML5, CSS و JavaScript با Tizen Device API استفاده می‌کنند. برای Tizen TV, توسعه به .NET (C#) از طریق Tizen .NET در دسترس است. Samsung برای برنامه‌های با کارایی بالا C++ و برای رابط‌های ساده JavaScript را توصیه می‌کند.

Tizen چه تفاوتی با Wear OS دارد؟

Tizen از چارچوب C/C++ خود بهینه‌شده برای سخت‌افزار Samsung استفاده می‌کند. Wear OS مبتنی بر Android با Kotlin/Java است. Tizen روی سخت‌افزار مشابه ۳۰٪ انرژی کمتری مصرف می‌کند اما برنامه‌های کمتری در فروشگاه دارد. از سال ۲۰۲۱, Samsung در ساعت‌های جدید به Wear OS مهاجرت کرده است, اما Tizen همچنان پشتیبانی می‌شود.

چگونه یک برنامه وب برای Tizen TV ایجاد کنیم؟

یک برنامه وب برای Tizen TV با HTML5/JavaScript و Tizen Device API ایجاد می‌شود. توسعه در Tizen Studio با شبیه‌ساز تلویزیون انجام می‌شود. برنامه در بسته .wgt بسته‌بندی می‌شود. APIهای کلیدی: AVPlay (ویدیو), TVInfoDevice (مشخصات تلویزیون), TVInputDevice (کنترل از راه دور), WebAudio (صدا). ناوبری از طریق D-pad کنترل از راه دور.

Rotary Bezel در Tizen چیست؟

Rotary Bezel — حلقه چرخان فیزیکی دور صفحه Galaxy Watch برای ناوبری. رویدادها از طریق API tizen.rotarydetector پردازش می‌شوند. هر شکاف یک رویداد با زاویه چرخش و جهت (cw/ccw) تولید می‌کند. Rotary Bezel برای پیمایش لیست‌ها, تنظیم صدا, بزرگنمایی و ناوبری منو استفاده می‌شود.

چگونه برنامه‌های Tizen را منتشر کنیم؟

انتشار از طریق Samsung Galaxy Store. ثبت‌نام توسعه‌دهنده رایگان است. برنامه (فرمت .tpk یا .wgt) با گواهی Samsung امضا می‌شود. نظارت ۲-۵ روز. کارمزد ۳۰٪ برای ۱۰,۰۰۰$ درآمد اول, سپس ۲۵٪. حداقل قیمت ۰.۹۹$. پرداخت‌های ماهانه از ۱۰۰$.

خلاصه

  • Tizen — سیستم‌عامل متن‌باز Samsung بر هسته Linux برای ساعت‌ها, تلویزیون‌ها, IoT و لوازم خانگی با پشتیبانی از برنامه‌های بومی و وب
  • برنامه‌های بومی (C/C++, EFL/DALi, فرمت .tpk) حداکثر کارایی و دسترسی کامل به سخت‌افزار را فراهم می‌کنند
  • برنامه‌های وب (HTML5/JS, فرمت .wgt, Web Runtime مبتنی بر Chromium) — توسعه سریع با Device API
  • Tizen Watch از صفحه گرد ۳۶۰×۳۶۰, Rotary Bezel, Circle UI و اجزای RotarySelector/CircularList استفاده می‌کند
  • Tizen TV از AVPlay API برای رمزگشایی سخت‌افزاری H.264/H.265/VP9 تا ۸K, HDR10+, Dolby Atmos استفاده می‌کند
  • Galaxy Store — ثبت‌نام رایگان, فرمت .tpk/.wgt, امضای گواهی Samsung, نظارت ۲-۵ روز
  • Tizen Studio — SDK مبتنی بر VS Code با شبیه‌ساز ساعت و تلویزیون, پروفایلر و دیباگر

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید