KaiOS: এটি কী, সিস্টেম আর্কিটেকচার এবং ওয়েব অ্যাপ্লিকেশন

লেখক: IT Sectr প্রকাশিত: 2026-02-07 পড়ার সময়: 13 মিনিট

KaiOS একটি অপারেটিং সিস্টেম ফিচার ফোনের জন্য, যা Mozilla-এর Boot to Gecko (B2G) ওয়েব প্রযুক্তির উপর ভিত্তি করে তৈরি। অ্যাপ্লিকেশন ডেভেলপমেন্ট HTML5, CSS এবং JavaScript-এ করা হয় নেটিভ ভাষা শেখার প্রয়োজন ছাড়াই। KaiOS 256–512 MB RAM-যুক্ত ডিভাইসে চলে এবং 4G VoLTE, GPS, Bluetooth সমর্থন করে। KaiOS Technologies-এর তথ্য অনুযায়ী, 2025 সালে বিশ্বব্যাপী 200 মিলিয়নেরও বেশি সক্রিয় ডিভাইস ছিল।

মূল পয়েন্ট

  • KaiOS — Mozilla-এর Gecko ইঞ্জিনে ফিচার ফোনের জন্য একটি ওয়েব-ভিত্তিক OS
  • HTML5/CSS/JS — ডেভেলপমেন্ট স্ট্যাক, নেটিভ প্রোগ্রামিং ভাষা শেখার প্রয়োজন নেই
  • KaiStore — মডারেশন এবং প্যাকেজ সই সহ অফিসিয়াল অ্যাপ স্টোর
  • Web API — ফোনের হার্ডওয়্যার ফাংশনে অ্যাক্সেসের জন্য MozMobileConnection, MozTelephony, MozSms
  • Gecko — সংস্করণ 48 (KaiOS 2.5) বা 84 (KaiOS 3.0) API প্রাপ্যতা নির্ধারণ করে

KaiOS কী?

KaiOS একটি মোবাইল অপারেটিং সিস্টেম ফিচার ফোনের জন্য যা KaiOS Technologies দ্বারা উন্নত। সিস্টেমটি Mozilla-এর ওপেন সোর্স Boot to Gecko (B2G) প্রকল্পের উপর ভিত্তি করে তৈরি, যা মূলত আল্ট্রা-বাজেট ডিভাইসের জন্য Android-এর ওয়েব-ভিত্তিক বিকল্প হিসাবে তৈরি করা হয়েছিল। প্রথম বাণিজ্যিক রিলিজ 2017 সালে ভারতে Reliance JioPhone ফোনে হয়েছিল।

Counterpoint Research (Q2 2025) অনুযায়ী, KaiOS-এর বিশ্বব্যাপী মোবাইল OS বাজারের 2.8% অংশ রয়েছে, যা Android (72%) এবং iOS (27%)-এর পিছনে কিন্তু অন্যান্য প্ল্যাটফর্মের চেয়ে এগিয়ে। ভারতে, JioPhone প্রোগ্রামের কারণে KaiOS-এর অংশ 14% পর্যন্ত পৌঁছেছে। গড় KaiOS ডিভাইসের দাম $20-30, যা উদীয়মান বাজারের জন্য এটিকে গুরুত্বপূর্ণ করে তোলে।

KaiOS-এর মূল বৈশিষ্ট্য হল যে সমস্ত অ্যাপ্লিকেশন ওয়েব অ্যাপ্লিকেশন। ডেভেলপার HTML5, CSS এবং JavaScript-এ কোড লেখে, একটি ম্যানিফেস্ট সহ ZIP আর্কাইভে প্যাকেজ করে এবং KaiStore-এ প্রকাশ করে। সিস্টেম নেটিভ APK ফাইল ইনস্টলেশন সমর্থন করে না — শুধুমাত্র W3C Widget স্পেসিফিকেশন অনুযায়ী Open Web Apps।

KaiOS সংস্করণ ইতিহাস

KaiOS 2.5 (2018) — Gecko 48 কার্নেলে প্রথম স্থিতিশীল সংস্করণ, JioPhone 1-এ শিপ করা হয়েছে। KaiOS 2.5.3 (2021) — Google Assistant, Google Maps Go, YouTube Go-এর জন্য সমর্থন। KaiOS 3.0 (2022) — Gecko 84, উন্নত পারফরম্যান্স, WebGL 2.0, CSS Grid। KaiOS 3.1 (2024) — 256 MB RAM-এর জন্য অপ্টিমাইজেশন, নতুন Audio Channel Web API, উন্নত TLS 1.3 নিরাপত্তা।

KaiOS সংস্করণবছরGeckoমূল পরিবর্তন
2.5201848প্রথম স্থিতিশীল রিলিজ, JioPhone 1
2.5.3202148Google Apps, Assistant, উন্নত নিরাপত্তা
3.0202284ES2020, WebGL 2.0, CSS Grid, উন্নত JS পারফরম্যান্স
3.1202484256 MB RAM, TLS 1.3, Audio Channel API

KaiOS আর্কিটেকচার: Linux কার্নেল এবং Gecko ইঞ্জিন

KaiOS আর্কিটেকচার তিনটি মূল স্তর নিয়ে গঠিত: Linux কার্নেল (Gonk), Gecko ওয়েব ইঞ্জিন এবং Gaia ইউজার ইন্টারফেস। Gonk হল হার্ডওয়্যার-নির্ভর স্তর, যার মধ্যে ড্রাইভার, HAL (Hardware Abstraction Layer), RIL (Radio Interface Layer) মডেম স্ট্যাক এবং সেন্সর সমর্থন অন্তর্ভুক্ত। বুটলোডার, ড্রাইভার এবং কিছু লাইব্রেরি Android Open Source Project (AOSP) থেকে নেওয়া হয়েছে।

Gonk — হার্ডওয়্যার স্তর

Gonk Gecko-কে হার্ডওয়্যারে অ্যাক্সেস প্রদান করে: ক্যামেরা, Bluetooth, Wi-Fi, GPS, অডিও, ভাইব্রেশন, সেন্সর। Android-এর বিপরীতে, যেখানে অ্যাপ Dalvik/ART-এর জন্য লেখা হয়, KaiOS-এ অ্যাপ Gecko-র মাধ্যমে Gonk IPC-তে অনূদিত Web API-র মাধ্যমে হার্ডওয়্যার অ্যাক্সেস করে। রেডিও ইন্টারফেস (RIL) 4G VoLTE, SMS, USSD এবং SIM কার্ড ব্যবস্থাপনা প্রদান করে।

Gecko — ওয়েব ইঞ্জিন

Gecko KaiOS-এ শুধু ব্রাউজার ইঞ্জিন নয় বরং একটি সম্পূর্ণ অ্যাপ্লিকেশন রানটাইম পরিবেশ। সমস্ত HTML5 অ্যাপ্লিকেশন Gecko Process Manager-এর ভিতরে চলে, যা প্রতিটি অ্যাপ্লিকেশনকে আলাদা প্রক্রিয়ায় বিচ্ছিন্ন করে। Gecko W3C Widget Packaging স্পেসিফিকেশন এবং হার্ডওয়্যার অ্যাক্সেসের জন্য Mozilla এক্সটেনশন প্রয়োগ করে। Gecko সংস্করণ নির্ধারণ করে ডেভেলপারের জন্য কোন Web API উপলব্ধ।

Gaia — ইউজার ইন্টারফেস

Gaia হল OS-এর ওয়েব ইন্টারফেস: লক স্ক্রিন, হোম স্ক্রিন (লঞ্চার), নোটিফিকেশন প্যানেল, ডায়ালার, কন্টাক্ট, SMS ক্লায়েন্ট। সমস্ত সিস্টেম অ্যাপ্লিকেশন একই Open Web Apps। একজন ডেভেলপার ম্যানিফেস্টে সংশ্লিষ্ট অ্যাক্টিভিটি হ্যান্ডলার রেজিস্টার করে স্ট্যান্ডার্ড ক্যামেরা বা কীবোর্ড নিজের অ্যাপ দিয়ে প্রতিস্থাপন করতে পারে।

javascript
// KaiOS সংস্করণ এবং API প্রাপ্যতা পরীক্ষা
function checkKaiOSVersion() {
    const ua = navigator.userAgent;
    let version = 'unknown';

    if (ua.includes('KAIOS/2.5')) {
        version = '2.5';
    } else if (ua.includes('KAIOS/3')) {
        version = '3.0';
    }

    const features = {
        geolocation: 'geolocation' in navigator,
        vibration: 'vibrate' in navigator,
        mozMobileConnection: 'mozMobileConnection' in navigator,
        mozTelephony: 'mozTelephony' in navigator,
        mozSms: 'mozSms' in navigator,
        bluetooth: 'bluetooth' in navigator
    };

    return { version, features };
}

// Google Apps প্রাপ্যতা পরীক্ষা (শুধুমাত্র KaiOS 2.5.3+)
const systemInfo = checkKaiOSVersion();
console.log('KaiOS version:', systemInfo.version);
console.log('Available APIs:', JSON.stringify(systemInfo.features, null, 2));

// প্রাপ্যতা পরীক্ষা সহ ভাইব্রেশন ব্যবহার
function triggerHapticFeedback() {
    if (navigator.vibrate) {
        navigator.vibrate([200, 100, 200]); // ভাইব্রেশন, বিরতি, ভাইব্রেশন
    }
}

checkKaiOSVersion ফাংশন KaiOS সংস্করণ নির্ধারণ করতে User Agent পড়ে এবং মূল Web API-র প্রাপ্যতা পরীক্ষা করে। সংস্করণ 2.5-এ, mozMobileConnection, mozTelephony, mozSms উপলব্ধ — এগুলি সাধারণ ব্রাউজারে অনুপস্থিত এবং KaiOS-এর জন্য অনন্য। triggerHapticFeedback ফাংশন পশ্চাদমুখী সামঞ্জস্য সহ Vibration API ব্যবহার করে।

KaiOS-এর জন্য অ্যাপ তৈরি: গঠন এবং ম্যানিফেস্ট

KaiOS অ্যাপ হল একটি ZIP আর্কাইভ (ফরম্যাট .zip, .apk নয়) যাতে HTML ফাইল, CSS, JavaScript, ছবি এবং একটি ম্যানিফেস্ট থাকে। ন্যূনতম অ্যাপ কাঠামোতে manifest.webapp (অ্যাপ বিবরণ), index.html (প্রবেশ বিন্দু), style.css এবং icon.png (বর্গাকার আইকন 90×90 পিক্সেল) অন্তর্ভুক্ত। ম্যানিফেস্ট W3C Manifest for Web Apps স্পেসিফিকেশন অনুসরণ করে।

ম্যানিফেস্ট manifest.webapp

manifest.webapp ফাইল হল একটি KaiOS অ্যাপের রুট কনফিগারেশন ফাইল। বাধ্যতামূলক ফিল্ড: name (নাম), description (140 অক্ষর পর্যন্ত বিবরণ), launch_path (index.html-এর পথ), icons (আইকন আকার 30×30, 60×60, 90×90, 120×120)। type ফিল্ড: 'certified' (সিস্টেম অ্যাপ), 'privileged' (Web API অ্যাক্সেস), 'web' (কোনো বিশেষ অনুমতি নেই)। Privileged অ্যাপের জন্য অনুমতি permissions অ্যারেতে নির্দিষ্ট করা হয়।

javascript
// manifest.webapp — KaiOS অ্যাপ্লিকেশন কনফিগারেশন
{
    "name": "ফ্ল্যাশলাইট",
    "description": "ক্যামেরা ফ্ল্যাশ অন এবং অফ করে",
    "launch_path": "/index.html",
    "icons": {
        "30": "/icons/icon-30.png",
        "60": "/icons/icon-60.png",
        "90": "/icons/icon-90.png",
        "120": "/icons/icon-120.png"
    },
    "type": "privileged",
    "permissions": {
        "camera": {
            "description": "ফ্ল্যাশ সক্রিয় করার জন্য প্রয়োজন"
        }
    },
    "default_locale": "ru",
    "orientation": "portrait-primary",
    "fullscreen": true
}

ম্যানিফেস্ট নির্দিষ্ট করে যে অ্যাপটি privileged টাইপের — এটি অনুমতির মাধ্যমে ক্যামেরা API-তে অ্যাক্সেস দেয়। আইকনের আকার কঠোরভাবে 30×30, 60×60, 90×90 এবং 120×120 পিক্সেল। orientation ফিল্ড পোর্ট্রেট মোড সীমাবদ্ধ করে — ফিচার ফোনে সাধারণত স্ক্রিন ঘোরানোর জন্য অ্যাক্সেলেরোমিটার থাকে না। fullscreen: true স্ট্যাটাস বার লুকিয়ে রাখে।

HTML পৃষ্ঠার গঠন

KaiOS-এ একটি HTML5 পৃষ্ঠা সীমিত স্ক্রিন (সাধারণত 240×320 পিক্সেল) বিবেচনা করে স্ট্যান্ডার্ড ট্যাগ ব্যবহার করে। ভিউপোর্ট মেটা ট্যাগ বাধ্যতামূলক: <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">। KaiOS স্পর্শ ইভেন্ট সমর্থন করে না (ফিচার ফোনে টাচস্ক্রিন নেই); সমস্ত নেভিগেশন কী-এর মাধ্যমে হয়: ArrowUp, ArrowDown চলাচলের জন্য, Enter নির্বাচনের জন্য, Back ফেরার জন্য।

javascript
// index.html — KaiOS-এর জন্য সহজ ফ্ল্যাশলাইট অ্যাপ
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport"
          content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>ফ্ল্যাশলাইট</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <div id="app">
        <div id="status" class="status-off">বন্ধ</div>
        <div id="hint">চালু করতে Enter চাপুন</div>
    </div>

    <script>
        const statusEl = document.getElementById('status');
        const hintEl = document.getElementById('hint');
        let isFlashOn = false;
        let camera = null;

        async function initCamera() {
            try {
                camera = navigator.mozCameras.getListOfCameras()[0];
                const cameraControl = await
                    navigator.mozCameras.getCamera(camera, { mode: 'picture' });
                return cameraControl;
            } catch (e) {
                showError('ক্যামেরা অনুপলব্ধ: ' + e.message);
            }
        }

        async function toggleFlash() {
            const cam = await initCamera();
            if (!cam) return;

            isFlashOn = !isFlashOn;
            try {
                await cam.setConfiguration({
                    mode: 'picture',
                    flashMode: isFlashOn ? 'on' : 'off'
                });
                statusEl.textContent = isFlashOn ? 'চালু' : 'বন্ধ';
                statusEl.className = isFlashOn ? 'status-on' : 'status-off';
            } catch (e) {
                showError('ত্রুটি: ' + e.message);
            }
        }

        // হার্ডওয়্যার Enter বাটন হ্যান্ডলিং
        document.addEventListener('keydown', function(e) {
            if (e.key === 'Enter') {
                toggleFlash();
            }
        });

        initCamera();
    </script>
</body>
</html>

ফ্ল্যাশলাইট অ্যাপ ক্যামেরা ফ্ল্যাশ নিয়ন্ত্রণ করতে MozCamera API ব্যবহার করে। ব্যবহারকারী হার্ডওয়্যার Enter বাটন চাপে — keydown হ্যান্ডলার সক্রিয় হয়, flashMode-কে on এবং off-এর মধ্যে সুইচ করে। স্ট্যাটাস দৃশ্যমান ইঙ্গিতের জন্য status-on/status-off ক্লাস সহ একটি টেক্সট ব্লকে প্রদর্শিত হয়। MozCamera API শুধুমাত্র ম্যানিফেস্টে ক্যামেরা অনুমতি সহ privileged অ্যাপের জন্য উপলব্ধ।

KaiOS Web API: ফোন এবং হার্ডওয়্যার নিয়ে কাজ

KaiOS Web API হল JavaScript ইন্টারফেসের একটি সেট যা ফোনের হার্ডওয়্যার ক্ষমতায় অ্যাক্সেস প্রদান করে। অধিকাংশ API Mozilla-এর মালিকানাধীন এক্সটেনশন (moz-উপসর্গ) এবং সাধারণ ব্রাউজারে উপলব্ধ নয়। API ব্যবহার করার জন্য, অ্যাপের ম্যানিফেস্টে privileged বা certified টাইপ থাকতে হবে।

মূল Web API

MozMobileConnection — নেটওয়ার্ক তথ্য: অপারেটর, সিগন্যাল শক্তি, নেটওয়ার্ক টাইপ (4G/3G/2G), IMEI, রোমিং স্ট্যাটাস। MozTelephony — কল ব্যবস্থাপনা: ডায়াল করা, গ্রহণ করা, শেষ করা, কনফারেন্স কল, কল স্ট্যাটাস। MozSms — SMS, MMS পাঠানো এবং গ্রহণ, SIM বার্তা ব্যবস্থাপনা। MozContacts — ফোনবুক পড়া এবং লেখা। MozBluetooth — Bluetooth ব্যবস্থাপনা: ডিভাইস আবিষ্কার, পেয়ারিং, ফাইল স্থানান্তর। Push API — সার্ভার থেকে পুশ নোটিফিকেশন গ্রহণ।

javascript
// KaiOS Web API-র মাধ্যমে কন্টাক্ট এবং কল নিয়ে কাজ
const TelephonyManager = {
    // নম্বর দিয়ে কল করা
    async makeCall(phoneNumber) {
        if (!navigator.mozTelephony) {
            throw new Error('Telephony API অনুপলব্ধ');
        }

        const call = navigator.mozTelephony.dial(phoneNumber);
        call.onconnected = () => console.log('কল স্থাপিত হয়েছে');
        call.ondisconnected = () => console.log('কল শেষ হয়েছে');
        return call;
    },

    // ফোনবুক থেকে কন্টাক্ট তালিকা পাওয়া
    async getContacts() {
        const cursor = navigator.mozContacts.getAll({
            sortBy: 'familyName',
            sortOrder: 'ascending'
        });

        const contacts = [];
        return new Promise((resolve, reject) => {
            cursor.onsuccess = function() {
                if (this.result) {
                    contacts.push(this.result);
                    this.continue();
                } else {
                    resolve(contacts);
                }
            };
            cursor.onerror = function() {
                reject(this.error);
            };
        });
    },

    // SMS পাঠানো
    async sendSms(phoneNumber, message) {
        if (!navigator.mozSms) {
            throw new Error('SMS API অনুপলব্ধ');
        }
        const request = navigator.mozSms.send(phoneNumber, message);
        return new Promise((resolve, reject) => {
            request.onsuccess = () => resolve(request.result);
            request.onerror = () => reject(request.error);
        });
    }
};

// ব্যবহারের উদাহরণ
TelephonyManager.getContacts()
    .then(contacts => console.log('পরিচিতি পাওয়া গেছে:', contacts.length))
    .catch(err => console.error(err));

TelephonyManager অবজেক্ট তিনটি মূল KaiOS API একত্রিত করে: কলের জন্য mozTelephony, ফোনবুকের জন্য mozContacts এবং বার্তার জন্য mozSms। কার্সার সহ getAll() বড় ডেটা ভলিউমের (1000+ এন্ট্রির কন্টাক্টের জন্য সাধারণ) অ্যাসিনক্রোনাস রিডিংয়ের জন্য একটি প্যাটার্ন। সমস্ত API onsuccess এবং onerror হ্যান্ডলার সহ DOMRequest রিটার্ন করে।

Web API সীমাবদ্ধতা

KaiOS Web API-র সীমাবদ্ধতা রয়েছে: কল এবং SMS API শুধুমাত্র ফোনে উপলব্ধ (ট্যাবলেটে নয়), ক্যামেরা — শুধুমাত্র যদি ফিজিক্যাল ক্যামেরা থাকে, Bluetooth — সীমিত HSP/HFP প্রোফাইল। Push API-র জন্য Google Firebase (FCM) সার্ভার সমর্থন বা কাস্টম সার্ভার প্রয়োজন। জিওলোকেশন API হার্ডওয়্যার সমর্থনের উপর নির্ভর করে A-GPS বা Cell ID ব্যবহার করে।

APIঅ্যাপ টাইপপ্রাপ্যতাKaiOS সংস্করণ
MozMobileConnectionprivilegedসব ফোন2.5+
MozTelephonyprivilegedশুধু ফোন2.5+
MozSmsprivilegedশুধু ফোন2.5+
MozContactsprivilegedসব ফোন2.5+
MozBluetoothcertifiedBluetooth মডিউল সহ2.5+
Geolocation APIwebGPS/Cell ID সহ2.5+
Push APIprivilegedইন্টারনেট সহ3.0+
WebGL 2.0webGPU ত্বরণ সহ3.0+

UI এবং নেভিগেশন: T9, বাটন এবং 240×320 স্ক্রিন

KaiOS ইউজার ইন্টারফেস T9 কীবোর্ড এবং হার্ডওয়্যার বাটন নিয়ন্ত্রণের জন্য ডিজাইন করা হয়েছে। বেশিরভাগ ফিচার ফোনে স্ট্যান্ডার্ড স্ক্রিন রেজোলিউশন 240×320 পিক্সেল (QVGA)। টাচস্ক্রিনের অনুপস্থিতির মানে হল যে সমস্ত নেভিগেশন keydown/keyup ইভেন্টের মাধ্যমে বাস্তবায়িত হয়: ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Enter, Back (বা Escape)।

ফোকাস ব্যবস্থাপনা

KaiOS সাধারণ উপায়ে CSS :focus সমর্থন করে না — ফোকাস tabindex এবং JavaScript-এর মাধ্যমে পরিচালিত হয়। ডেভেলপারকে ম্যানুয়ালি বর্তমান নির্বাচিত এলিমেন্ট ট্র্যাক করতে হয় এবং কী চাপলে ফোকাস সরাতে হয়। নেভিগেশন সহজ করতে তালিকা এলিমেন্টে data-index ব্যবহার করার পরামর্শ দেওয়া হয়। নির্বাচিত এলিমেন্ট সাধারণত একটি বিপরীত CSS background-color সহ .selected ক্লাসের মাধ্যমে হাইলাইট করা হয়।

javascript
// KaiOS-এর জন্য তালিকার মাধ্যমে ফোকাস নেভিগেশন
class ListNavigation {
    constructor(containerSelector) {
        this.container = document.querySelector(containerSelector);
        this.items = this.container.querySelectorAll('[data-index]');
        this.currentIndex = 0;
        this.init();
    }

    init() {
        this.updateFocus();

        document.addEventListener('keydown', (e) => {
            switch (e.key) {
                case 'ArrowUp':
                    e.preventDefault();
                    this.moveFocus(-1);
                    break;
                case 'ArrowDown':
                    e.preventDefault();
                    this.moveFocus(1);
                    break;
                case 'Enter':
                    e.preventDefault();
                    this.selectItem();
                    break;
                case 'Backspace':
                case 'Escape':
                    e.preventDefault();
                    this.goBack();
                    break;
            }
        });
    }

    moveFocus(direction) {
        this.items[this.currentIndex].classList.remove('selected');
        this.currentIndex = (this.currentIndex + direction + this.items.length) % this.items.length;
        this.updateFocus();
    }

    updateFocus() {
        const el = this.items[this.currentIndex];
        el.classList.add('selected');
        el.scrollIntoView({ block: 'nearest' });
    }

    selectItem() {
        const el = this.items[this.currentIndex];
        const event = new CustomEvent('itemselected', {
            detail: { index: this.currentIndex, element: el }
        });
        this.container.dispatchEvent(event);
    }

    goBack() {
        history.back();
    }
}

// মেনু তালিকার জন্য নেভিগেশন আরম্ভ করা
const nav = new ListNavigation('#menu-list');
nav.container.addEventListener('itemselected', (e) => {
    console.log('উপাদান নির্বাচিত:', e.detail.index);
});

ListNavigation ক্লাস KaiOS-এর জন্য সম্পূর্ণ ফোকাস নেভিগেশন বাস্তবায়ন করে। ArrowUp/ArrowDown data-index সহ এলিমেন্টের মাধ্যমে চক্রাকারে ফোকাস সরায়। Enter একটি কাস্টম itemselected ইভেন্ট ট্রিগার করে। Backspace/Escape পূর্ববর্তী স্ক্রিনে ফিরে যায়। block: nearest সহ scrollIntoView দৃশ্যমান এলাকার বাইরে গেলে স্বয়ংক্রিয়ভাবে স্ক্রিন স্ক্রোল করে।

KaiOS-এর জন্য CSS

KaiOS 2.5 CSS 2.1 + আংশিকভাবে CSS3 (border-radius, box-shadow, gradients) সমর্থন করে। Flexbox KaiOS 2.5-এ আংশিকভাবে সমর্থিত, KaiOS 3.0-এ CSS Grid সহ সম্পূর্ণরূপে সমর্থিত। সামঞ্জস্যের জন্য নির্দিষ্ট প্রস্থ সহ float-ভিত্তিক লেআউট ব্যবহার করার পরামর্শ দেওয়া হয়। ডিফল্ট ফন্ট TizenSans বা এশিয়ান বাজারের জন্য Noto Sans CJK। প্রধান কন্টেন্টের জন্য টেক্সটের আকার 14-16 পিক্সেল, শিরোনামের জন্য 18-20 পিক্সেল।

KaiStore এবং অ্যাপ প্রকাশনা

KaiStore KaiOS-এর জন্য অফিসিয়াল অ্যাপ স্টোর, যা সমস্ত ডিভাইসে প্রি-ইনস্টল করা থাকে। ডেভেলপাররা KaiOS Developer Portal (developer.kaiostech.com) এ রেজিস্টার করে, সই করা ZIP প্যাকেজ আপলোড করে এবং বিবরণ পূরণ করে। মডারেশন নিরাপত্তা, স্থিতিশীলতা এবং কন্টেন্ট নীতি মেনে চলা পরীক্ষা করে। গড় পর্যালোচনা সময় 3-5 কার্যদিবস।

অ্যাপ সই

KaiOS-এর জন্য KaiOS Certificate-এর মাধ্যমে অ্যাপের ডিজিটাল সই প্রয়োজন। ডেভেলপার kaios-sign ইউটিলিটি ব্যবহার করে একটি কী জোড়া (প্রাইভেট + পাবলিক) জেনারেট করে, পাবলিক কী KaiOS Developer Portal-এ পাঠায় এবং একটি সার্টিফিকেট পায়। সই করা .zip ফাইলে META-INF ফোল্ডারে সই থাকে। সই ছাড়া, অ্যাপ শুধুমাত্র ডেভ ডিভাইসে ইনস্টল করা যায়।

বিতরণ মডেল এবং মানিটারাইজেশন

KaiStore বিনামূল্যের অ্যাপ, KaiOS Ads SDK-এর মাধ্যমে বিজ্ঞাপন এবং ক্যারিয়ার বিলিং (Direct Carrier Billing)-এর মাধ্যমে ইন-অ্যাপ কেনাকাটা সমর্থন করে। KaiStore-এর কমিশন রাজস্বের 30%। একটি বিকল্প চ্যানেল হল OEM প্রস্তুতকারকদের (Jio, Nokia, Alcatel, Doro) মাধ্যমে প্রি-ইনস্টলেশন। প্রি-ইনস্টলেশনের জন্য ডিভাইস প্রস্তুতকারকের সাথে সরাসরি চুক্তি প্রয়োজন।

পর্যায়কাজসময়
রেজিস্ট্রেশনKaiOS Developer Portal-এ অ্যাকাউন্ট তৈরি1 দিন
সইকী জেনারেট, সার্টিফিকেট প্রাপ্তি1-2 দিন
বিল্ডম্যানিফেস্ট এবং সই সহ .zip প্যাকেজ1 ঘন্টা
আপলোডপ্যাকেজ আপলোড, বিবরণ পূরণ1 দিন
পর্যালোচনানিরাপত্তা এবং গুণমান পরীক্ষা3-5 দিন
প্রকাশনাসব অঞ্চলের জন্য KaiStore-এ রিলিজ1 দিন

KaiStore সীমাবদ্ধতা

KaiStore কিছু দেশে পেইড অ্যাপ সমর্থন করে না (শুধুমাত্র ক্যারিয়ার বিলিং-এর মাধ্যমে পেমেন্ট)। 2G/3G নেটওয়ার্কের মাধ্যমে ডাউনলোডের জন্য অ্যাপের আকার 10 MB-তে সীমাবদ্ধ। অ্যাপকে 50 MB-এর বেশি RAM ব্যবহার করা উচিত নয়। ম্যানিফেস্টে স্পষ্ট ঘোষণা ছাড়া mozMobileConnection API-তে অ্যাক্সেস নিষিদ্ধ। নীতি লঙ্ঘনের ফলে ডেভেলপার অ্যাকাউন্ট স্থগিত হয়।

সচরাচর জিজ্ঞাসিত প্রশ্ন

KaiOS কী?

KaiOS Mozilla-এর Gecko ওয়েব ইঞ্জিনের উপর ভিত্তি করে ফিচার ফোনের জন্য একটি অপারেটিং সিস্টেম। এটি 256-512 MB RAM-যুক্ত ডিভাইসে চলে এবং 4G VoLTE, GPS এবং Bluetooth সমর্থন করে। অ্যাপ HTML5, CSS এবং JavaScript-এ লেখা হয়। Counterpoint Research অনুযায়ী, KaiOS 200 মিলিয়নেরও বেশি ডিভাইসে ইনস্টল করা আছে।

KaiOS ডেভেলপমেন্টের জন্য কোন ভাষা ব্যবহার করা হয়?

একমাত্র ডেভেলপমেন্ট স্ট্যাক হল HTML5, CSS এবং JavaScript। KaiOS C++ বা Java-র মতো নেটিভ ভাষা সমর্থন করে না। সমস্ত অ্যাপ W3C স্পেসিফিকেশন অনুযায়ী Open Web Apps। হার্ডওয়্যার ফাংশনে অ্যাক্সেসের জন্য moz উপসর্গ সহ Mozilla Web API ব্যবহার করা হয়। অ্যাপটি manifest.webapp সহ ZIP আর্কাইভ হিসাবে প্যাকেজ করা হয়।

KaiOS অ্যাপ কীভাবে বিতরণ করবেন?

অফিসিয়াল স্টোর হল KaiStore যার জন্য KaiOS Developer Portal-এ রেজিস্ট্রেশন প্রয়োজন। অ্যাপটি ডেভেলপার সার্টিফিকেট দিয়ে সই করা হয় এবং .zip ফরম্যাটে আপলোড করা হয়। মডারেশন 3-5 দিন সময় নেয়। একটি বিকল্প চ্যানেল হল OEM প্রস্তুতকারকের সাথে চুক্তির মাধ্যমে নতুন ডিভাইসে প্রি-ইনস্টলেশন। KaiStore-এর কমিশন 30%।

KaiOS Android Go থেকে কীভাবে আলাদা?

KaiOS HTML5 অ্যাপের জন্য Gecko ওয়েব ইঞ্জিন ব্যবহার করে এবং 256-512 MB RAM প্রয়োজন। Android Go Dalvik/ART-তে নেটিভ APK চালায় এবং 1-2 GB RAM প্রয়োজন। KaiOS $30 পর্যন্ত ফিচার ফোনে চলে, Android Go $50 থেকে বাজেট স্মার্টফোনে চলে। KaiOS কম শক্তি খরচ করে এবং একবার চার্জে বেশি সময় চলে।

KaiOS ডেভেলপারদের জন্য কোন API উপলব্ধ?

মূল API: MozMobileConnection (নেটওয়ার্ক), MozTelephony (কল), MozSms (SMS), MozContacts (কন্টাক্ট), MozBluetooth (Bluetooth), Geolocation API, Vibration API, Push API, Notification API। ক্যামেরা API অ্যাক্সেসের জন্য privileged অ্যাপ টাইপ প্রয়োজন। Push API KaiOS 3.0 থেকে উপলব্ধ।

সারাংশ

  • KaiOS — Gecko (B2G)-তে ফিচার ফোনের জন্য একটি ওয়েব OS, 256-512 MB RAM সহ HTML5 অ্যাপ সমর্থন করে
  • আর্কিটেকচার Gonk (Linux কার্নেল + ড্রাইভার), Gecko (ওয়েব ইঞ্জিন) এবং Gaia (HTML5 UI) নিয়ে গঠিত
  • ডেভেলপমেন্ট HTML5/CSS/JS-এ করা হয়, অ্যাপটি manifest.webapp এবং ডিজিটাল সই সহ ZIP
  • Web API-র মধ্যে MozTelephony, MozSms, MozContacts, MozMobileConnection, MozBluetooth, Geolocation অন্তর্ভুক্ত
  • নেভিগেশন হার্ডওয়্যার বাটনের (Arrow, Enter, Back) মাধ্যমে keydown/keyup ইভেন্ট দ্বারা বাস্তবায়িত
  • KaiStore — 3-5 দিনের মডারেশন, 30% কমিশন এবং ক্যারিয়ার বিলিং সহ অ্যাপ স্টোর
  • KaiOS 3.0 Gecko 84, ES2020, WebGL 2.0, CSS Grid, Push API এবং উন্নত পারফরম্যান্স যোগ করে

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন