Tizen هو نظام تشغيل مفتوح المصدر يعتمد على Linux، تم تطويره بواسطة Samsung و Linux Foundation. يُستخدم في ساعات Galaxy Watch الذكية وتلفزيونات Samsung Smart TV والأجهزة المنزلية وأجهزة IoT. يتم التطوير بلغة C/C++ للتطبيقات الأصلية و HTML5/JavaScript للتطبيقات الويب. يوفر Tizen SDK محاكيًا وبيئة تطوير متكاملة تعتمد على Visual Studio Code. وفقًا لـ Tizen Association، يضم النظام البيئي أكثر من 200 مليون جهاز.
الخلاصة
Tizen هو نظام تشغيل مفتوح المصدر تشرف عليه Samsung و Linux Foundation. تم إطلاق أول إصدار تجاري Tizen 1.0 في عام 2012. يعتمد النظام على نواة Linux ويستخدم بنيته الخاصة من الأطر البرمجية لأنواع مختلفة من الأجهزة: Tizen Mobile (الهواتف الذكية — تم إغلاق المشروع في 2017)، Tizen Watch (الساعات)، Tizen TV (التلفزيونات)، و Tizen IoT (المنزل الذكي).
منذ عام 2021، تستخدم Samsung Tizen بشكل أساسي في الأجهزة القابلة للارتداء والتلفزيونات. كانت جميع ساعات Galaxy Watch الذكية قبل 2021 تعمل على Tizen (Galaxy Watch، Watch Active، Watch 3). بدءًا من Galaxy Watch 4، انتقلت Samsung إلى Wear OS مع One UI Watch، لكن Tizen لا يزال مدعومًا للأجهزة الحالية والتلفزيونات. وفقًا لـ Samsung (تقرير نظام Tizen البيئي، 2025)، تم تثبيت Tizen TV على أكثر من 180 مليون تلفزيون حول العالم.
الميزة الرئيسية لـ Tizen هي دعم نموذجين للتطوير: التطبيقات الأصلية (C/C++) بأقصى أداء والتطبيقات الويب (HTML5، CSS، JavaScript) للتطوير السريع. كلا النوعين لديهما وصول إلى Tizen Device API — واجهات للعمل مع Bluetooth و NFC و Wi-Fi وأجهزة الاستشعار والكاميرا والوسائط المتعددة.
Tizen 2.3 (2014) — أول إصدار مستقر للهواتف الذكية Samsung Z. Tizen 3.0 (2017) — تحسين تعدد المهام، دعم Vulkan، بنية 64 بت. Tizen 4.0 (2018) — أطر برمجية معاد تصميمها، دعم تسريع الذكاء الاصطناعي على NPU. Tizen 5.5 (2020) — Tizen TV مع AVPlay 2.0، WebAssembly، تحسين العرض. Tizen 6.0 (2022) — دعم استنتاج التعلم الآلي على الجهاز، بروتوكول Matter لـ IoT.
| إصدار Tizen | السنة | الأجهزة | الابتكار الرئيسي |
|---|---|---|---|
| 2.3 | 2014 | الهواتف الذكية | أول إصدار تجاري على Samsung Z |
| 3.0 | 2017 | الهواتف الذكية، الساعات | Vulkan، 64 بت، Galaxy Watch |
| 4.0 | 2018 | الساعات، التلفزيون، IoT | أطر الذكاء الاصطناعي، Tizen TV 2019 |
| 5.5 | 2020 | التلفزيون، IoT | AVPlay 2.0، WebAssembly، تحسين WebGL |
| 6.0 | 2022 | التلفزيون، IoT | استنتاج التعلم الآلي، بروتوكول Matter |
بنية Tizen مبنية على مبدأ نمطي بهيكل متعدد الطبقات. الطبقة السفلية هي نواة Linux مع تصحيحات لكفاءة الطاقة والمهام في الوقت الفعلي (RT_PREEMPT للتلفزيون والصوت). فوق النواة توجد طبقة تجريد العتاد (HAL)، التي توفر وصولًا موحدًا لمشغلات الكاميرا وأجهزة الاستشعار و Bluetooth و Wi-Fi و NFC والشاشة (عبر DirectFB أو Wayland).
تشمل طبقة الإطار الأساسي إطار التطبيق (إدارة دورة حياة التطبيقات)، إطار واجهة المستخدم (EFL — مكتبات Enlightenment Foundation لواجهة المستخدم، DALi — محرك ثلاثي الأبعاد للألعاب والرسوم المتحركة)، إطار الوسائط المتعددة (الكاميرا، الصوت، الفيديو عبر GStreamer و MediaCodec)، إطار الشبكة (Bluetooth، Wi-Fi، NFC، HTTP، WebSocket)، و إطار الأمان (SELinux، Smack، نظام صلاحيات Tizen).
توفر طبقة الخدمات خدمات النظام: مدير التطبيقات (تشغيل، إيقاف، تعدد مهام)، مدير الحزم (تثبيت/إزالة التطبيقات، صيغ .tpk و .wgt)، مدير المواقع (GPS، تحديد المواقع عبر Wi-Fi، السياج الجغرافي)، مدير أجهزة الاستشعار (مقياس التسارع، الجيروسكوب، البارومتر، مراقب معدل ضربات القلب)، مدير السياق (التعرف على نشاط المستخدم: المشي، الجري، النوم).
يوفر 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 تُترجم إلى ملف تنفيذي بصيغة .tpk (Tizen Package Kit). اللغة الأساسية هي C++11/14 مع مترجم GCC أو Clang. يتم التطوير في Tizen Studio أو Visual Studio Code مع إضافة Tizen. التطبيقات الأصلية لديها وصول مباشر إلى EFL و DALi و GStreamer وجميع واجهات برمجة التطبيقات النظامية بدون وسطاء، مما يضمن أقصى أداء.
يتضمن التطبيق الأصلي ملف 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 للرسومات ثلاثية الأبعاد.
// تطبيق 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-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 مُعبأة بصيغة .wgt (أداة W3C). التطوير مطابق لإنشاء موقع ويب عادي، ولكن مع وصول إضافي إلى Tizen Device API عبر الكائن العام tizen. تعمل تطبيقات الويب في عملية Web Runtime (WRT) الخاصة بها، المستندة إلى محرك WebKit (Tizen 2.x-4.x) أو Chromium (Tizen 5.5+).
يحتوي تطبيق الويب على index.html (نقطة الدخول)، config.xml (إعداد أداة W3C)، CSS، JavaScript، صور. ملف config.xml مشابه لـ manifest.webapp في KaiOS: الحقول الإلزامية تشمل widget (id، version، height/width للساعات)، name، description، author. تُحدد أذونات Device API عبر عنصر tizen:privilege. قسم CSP (سياسة أمان المحتوى) يحد من مصادر البرامج النصية.
// 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، وسياسة أمان محتوى تحد من تحميل المحتوى إلى حزمة التطبيق فقط.
// تطبيق ويب لـ 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 يبدأ القياسات بفاصل زمني قدره ثانية واحدة. ترسم لوحة رسم 360×360 مؤشرًا دائريًا — نموذج واجهة مستخدم نموذجي للشاشات الدائرية لساعة Tizen.
Tizen Watch يتميز بميزات فريدة لواجهة المستخدم: شاشة دائرية (360×360 بكسل في Galaxy Watch)، إطار مادي دوار (rotary bezel) للتنقل، وثلاثة أزرار فعلية: Home و Back و Custom. يجب على المطور تكييف الواجهة مع المنطقة الدائرية — قد تُقطع العناصر الزاوية. Circle UI هي مكتبة Samsung بمكونات جاهزة للشاشات الدائرية.
Rotary Bezel — حلقة مادية حول شاشة Galaxy Watch تدور للتنقل عبر القوائم وضبط مستوى الصوت والتكبير. في Tizen، يُعالج حدث الدوران عبر rotarydetector أو إشارة edje لـ EFL. كل درجة من الإطار تولد حدثًا بزاوية دوران (0-360 درجة). تُعالج تطبيقات الويب الإطار عبر واجهة rotarydetector: tizen.rotarydetector.
// معالجة 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 (مؤشر تقدم دائري). جميع المكونات محسنة لدقة 360×360 وتراعي عدم وجود زوايا للشاشة. الحد الأدنى لحجم أهداف اللمس هو 48 بكسل.
Tizen TV — منصة لـ Samsung Smart TV مع SDK ومحاكي خاصين بها. تنقسم تطبيقات التلفزيون إلى نوعين: تطبيقات ويب (HTML5/JS) وتطبيقات أصلية (C/C++). تُطور تطبيقات الويب للتلفزيون بشكل أسرع وأسهل، لكن التطبيقات الأصلية توفر أداءً أفضل للفيديو والألعاب. يستخدم Tizen TV جهاز تحكم عن بعد مع D-pad للتنقل.
AVPlay API — واجهة برمجة التطبيقات الرئيسية لـ Tizen TV لتشغيل الفيديو. يدعم الصيغ H.264 و H.265 (HEVC) و VP9 و AV1. دقة تصل إلى 8K على تلفزيونات 2024+. يوفر AVPlay API فك تشفير عتادي و HDR10+ و Dolby Atmos وترجمات ومسارات صوت متعددة. التحكم عبر play() و pause() و stop() و seekTo(position) و setDisplayRect(). يمكن أن يكون التدفق ملفًا محليًا أو رابط HLS/DASH.
// مشغل فيديو لـ 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 يحدد منطقة العرض — على التلفزيون عادةً ما يكون ملء الشاشة بدقة 3840×2160. prepareAsync هو تحضير غير متزامن مع استدعاءات. يدعم AVPlay معدل البت المتكيف عبر ADAPTIVE_INFO والترجمات عبر خاصية SUBTITLE.
Samsung Galaxy Store — متجر التطبيقات الرسمي لـ Tizen (الساعات والتلفزيونات و IoT). تسجيل المطور مجاني عبر برنامج Samsung Developers. يرفع المطورون التطبيقات بصيغة .tpk (أصلي) أو .wgt (ويب)، موقعة بشهادة Samsung. تستغرق المراجعة من 2 إلى 5 أيام عمل. يتوفر Galaxy Store في 190 دولة.
يتطلب Tizen توقيعًا رقميًا للتطبيق بشهادة Samsung. العملية: إنشاء شهادة المؤلف عبر Samsung Certificate Manager، إنشاء شهادة الموزع للمتجر، توقيع الحزمة عبر Tizen Studio (Build Signed Package). ترتبط الشهادة بحساب المطور. بدون توقيع، لا يمكن تثبيت التطبيق إلا على أجهزة التطوير مع تمكين وضع المطور.
يدعم Galaxy Store التطبيقات المدفوعة (عمولة 30% على أول 10,000 دولار، ثم 25%)، والاشتراكات (25%)، والإعلانات عبر Samsung Ads والمشتريات داخل التطبيق عبر Samsung IAP. لتطبيقات التلفزيون، يتوفر نموذج Smart TV Premium Channels. الحد الأدنى للسعر هو 0.99 دولار. تتم المدفوعات شهريًا عند الوصول إلى حد 100 دولار.
| المتطلب | أصلي (.tpk) | ويب (.wgt) |
|---|---|---|
| اللغة | C/C++ | HTML5, CSS, JS |
| إطار واجهة المستخدم | EFL, DALi, Tizen Circle UI | Circle UI (JS) |
| الوصول لواجهات API | النظام بالكامل | Device API |
| الأداء | أقصى | أقل (Web Runtime) |
| حجم الحزمة | حتى 100 ميجابايت | حتى 10 ميجابايت |
| القالب الابتدائي | Tizen Native App | Tizen Web App |
الأسئلة الشائعة
التطبيقات الأصلية تُكتب بلغة C/C++ باستخدام EFL أو DALi لواجهة المستخدم. تستخدم تطبيقات الويب HTML5 و CSS و JavaScript مع Tizen Device API. لتلفزيونات Tizen TV، يتوفر التطوير بلغة .NET (C#) عبر Tizen .NET. توصي Samsung باستخدام C++ للتطبيقات عالية الأداء و JavaScript للواجهات البسيطة.
Tizen يستخدم إطاره الخاص بلغة C/C++ مع تحسين لعتاد Samsung. يعتمد Wear OS على Android مع Kotlin/Java. يستهلك Tizen طاقة أقل بنسبة 30% على نفس العتاد، لكن لديه تطبيقات أقل في المتجر. منذ 2021، انتقلت Samsung إلى Wear OS في الساعات الجديدة، لكن Tizen لا يزال مدعومًا.
تطبيق ويب لـ Tizen TV يُنشأ بلغة HTML5/JavaScript مع Tizen Device API. يتم التطوير في Tizen Studio مع محاكي تلفزيون. يُعبأ التطبيق في حزمة .wgt. واجهات API الرئيسية: AVPlay (فيديو)، TVInfoDevice (مواصفات التلفزيون)، TVInputDevice (التحكم عن بعد)، WebAudio (صوت). التنقل عبر D-pad لجهاز التحكم.
Rotary Bezel — حلقة مادية دوارة حول شاشة Galaxy Watch للتنقل. تُعالج الأحداث عبر واجهة tizen.rotarydetector. كل درجة تولد حدثًا بزاوية دوران واتجاه (cw/ccw). يُستخدم Rotary Bezel لتمرير القوائم وضبط مستوى الصوت والتكبير والتنقل بين القوائم.
النشر عبر Samsung Galaxy Store. تسجيل المطور مجاني. يُوقع التطبيق (صيغة .tpk أو .wgt) بشهادة Samsung. المراجعة من 2 إلى 5 أيام. العمولة 30% على أول 10,000 دولار من الإيرادات، ثم 25%. الحد الأدنى للسعر 0.99 دولار. مدفوعات شهرية من 100 دولار.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.