mozilla
আপনার অনুসন্ধান ফলাফল

    কুইকস্টার্ট

    এই নিবন্ধে
    1. ফায়ারফক্স ওএস
      1. ক্রস-ফায়ারফক্স ওএস ভার্শনগুলি সমর্থন
    2. যে সকল দক্ষতা লাগবে
    3. প্রয়োজনীয় টুলস্
    4. আপনার প্রথম অ্যাপ
      1. কুইকস্ট্যার্ট অ্যাপ এর প্রাথমিক টেমপ্লেট
      2. ম্যানিফেস্ট যোগ করা
        1. এপিআই অনুমোদন
      3. ওয়েব এপিআই কার্যাবলি
        1. ফিচারগুলির জন্য সমর্থন নির্ণয় করা
        2. কুইকস্টার্ট উদাহরণের জন্য আমাদের কোড
      4. এপিআই ফাংশনালিটি ইন্সটল করা
    5. অ্যাপকে অফলাইনে কর্মপোযোগী করা
    6. অ্যাপটিকে টেস্ট (চলছে কিনা যাচাই) করা
      1. ফায়ারফক্স ডেক্সটপ ভার্শনে টেস্ট করা
      2. ফায়ারফক্স ওএস সিমুলেটরে টেস্ট করা
      3. ফায়ারফক্স ওএস ডিভাইসে টেস্ট করা
    7. অ্যাপ জমাপ্রদান এবং বিতরণ
    8. আরও জানুন
      1. ফায়ারফক্স ওএস
      2. ডিজাইন অ্যাপস্
      3. বিল্ড অ্যাপস্
      4. পাবলিশ অ্যাপস্
    9. ফ্যাক (FAQ)
      1. আমার কী ফ্রেমওয়ার্ক/লাইব্রেরি ব্যবহার করা উচিত?
      2. আমি একটি ব্যবহার করে দেখতে পারি এই ধরণের অ্যাপস্ আছে কী?

    এই অনুচ্ছেদটি ইন্সটলযোগ্য মুক্ত ওয়েব অ্যাপস্ — যা ফায়ারফক্স ওএস ও অন্যান্য সমর্থিত প্লাটফর্মে ইন্সটল করা যাবে এবং এর সাথে এইগুলি কিভাবে তৈরি করতে হয় এবং এদের সাথে মানসম্মত ওয়েব অ্যাপস্/ওয়েবসাইট এর পার্থক্য সম্পর্কে দ্রুত পরিচয় করে দিবে। এটা ওয়েব ডেভেলপার এবং মোবাইল ডেভেলপার সবার জন্যই প্রযোজ্য।

    A message saying I love the web, along with devices of different screen sizes to represent the modern web's responsive nature.

    মুক্ত ওয়েব অ্যাপগুলি  মূলত স্ট্যান্ডার্ড ওয়েবসাইট কিংবা  ওয়েব অ্যাপস্ থেকে থেকে ভিন্ন কিছু নয়।  এইগুলি স্ট্যার্ডাড ওয়েব প্রযুক্তি, যেমন - এইচটিএমএল, সিএসএস, জাভাস্ক্রীপ্ট ইত্যাদি দিয়ে তৈরি এবং ওয়েব ব্রাউজার দিয়েই ব্যবহার করা যায়।  তাদের মূল পার্থক্য মূলত বিভিন্ন ডিভাইসে ইন্সটল এবং অফলাইনে কাজ করা , এডভান্স এপিআই (APIs) গুলি একসেস করা যা  ডিভাইসের বিভিন্ন ফিচার যেমন ক্যামেরা, জাইরোস্কোপ এবং অ্যাড্রেস বুক(ঠিকানা সম্বলিত বই) এবং ডেভেলপারদের জন্য উপস্থিত ইকোসিস্টেম, এর সাথে মার্কেটপ্লেসে ফ্রী এবং বিপননযোগ্য অ্যাপস্ সরবরাহ ইত্যাদির মধ্যেই নিহিত। মূলত এরা মুক্ত, ক্রস প্লাটফর্ম ভিত্তিক হয়েও ব্যবহারকারীদের  দেয় "অ্যাপ অভিজ্ঞতা"।

    মুক্ত ওয়েব অ্যাপস্ শুরুর জন্য খুবই সামান্য প্রতিবন্ধকতা রয়েছ, বিশেষত বিদ্যমান ওয়েব ডেভেলপার এবং মোবাইল ডেভেলপারদের জন্য; এবং এরা বিভিন্ন প্লাটফর্মে  খুব সহেজই বিনিময়যোগ্য অর্থাৎ প্রায় সকল প্লাটফর্মেই চলবে এবং কোন সীমাবদ্ধতার দেয়ালে আটক নয়।

    নোট: মোজিলার মুক্ত ওয়েব অ্যাপস্ গুলি ফায়ারফক্স ওএস, এবং অন্যান্য  মোজিলা-সমর্থিত প্লাটফর্মগুলিতে   মোজিলার ওয়েব রান-টাইম প্রযুক্তি ব্যবহার করে ইন্সটল করা যায়। বিস্তারিত জানতে   অ্যান্ড্রয়েডের জন্য মুক্ত অ্যাপস, এবং ডেক্সটপের জন্য মুক্ত ওয়েব অ্যাপস দেখুন। অদূর ভবিষৎতে,  এই প্রযুক্তিগুলিকে আরও মানসম্মত (standardized) করে, বিভিন্ন প্লাটফর্মে গ্রহণ করা হবে।

    ফায়ারফক্স ওএস

    ফায়ারফক্স ওএস  ( কোডনেম বুট টু গিকো  অথবা বি২জি নামে পরিচিত) মোজিলার ওপেন সোর্স অপারেটিং সিস্টেম। এটা লিনাক্স কার্ণেল ভিত্তিক, যা গিকো-ভিত্তিক রানটাইমে বুট করে যা ব্যবহারকারীকে মুক্ত ওয়েব অ্যাপ ইন্সটল এবং রান করতে দেয়, গিকো হলো একটি রেন্ডারিং ইন্জিন যাকে ফায়ারফক্স ব্রাউজার ওয়েব কন্টেনকে রেন্ডার করে প্রদর্শনে ব্যবহার করে।

    ফায়ারফক্স ওএস -এ  গাইয়া(Gaia) নামক প্রি-ইন্সটল্ড এপ্লকেশন থাকে , যা  সেটিংস, কল, এসএমএস, ছবি তুলা এবং সংগ্রহ করা ইত্যাদি মৌলিক কাজগুলি নিয়ন্ত্রণ করে।

    ক্রস-ফায়ারফক্স ওএস ভার্শনগুলি সমর্থন

    Note that when developing apps for Firefox OS, you need to bear in mind what platform versions will be available on the devices your customers will have (see our available phones table for a list.) Remember that it is not as simple to update phone platform software as it is desktop software — users tend to be at the mercy of the network providers. You therefore need to develop apps to support these versions. This issue should go away soon, as more consumer Firefox OS devices appear, equipped with newer versions of Firefox OS out of the box.

    আমরা বর্তমানে যে বেসলাইন প্লাটফর্ম ব্যবহার করতে পরামর্শ দিচ্ছি তা হল ফায়ারফক্স ১.১.

    MDN's web platform reference pages include browser/platform support information, plus you can find support information for more App-specific technologies on our Apps API Reference.

    As an example, multiline Flexbox doesn't work on Firefox OS versions below 1.3, so you may need to use a simpler layout method or provide a fallback for older versions.

    যে সকল দক্ষতা লাগবে

    আমরা আগেও বলেছি যে, মুক্ত ওয়েব অ্যাপস্ গুলি ওয়েব প্রযুক্তি  — এইচটিএমএল,সিএসএস,এবং জাভাস্ক্রিপ্ট নির্ভর — তাই আপনি যদি ওয়েব পেজ তৈরি করে থাকেন, তাহলে আপনে মৌলিক বিষয়গুলি জানেন. এমনকি আপনি যদি মৌলিক বিষয়গুলি না জানেন তাহলেও  এই নির্দেশনা অনুসরণ করতে পারেন, কিন্তু আপনি মুক্ত ওয়েব প্রযুক্তিগুলো সম্পর্কে আরও শিখতে   প্রারম্ভিক টিউটোরিয়াল  এর লিস্টগুলি দেখতে পারেন ।

    প্রয়োজনীয় টুলস্

    আপনি যে কোন ফ্রী টুলস ব্যবহার করে মুক্ত ওয়েব অ্যাপস্ তৈরি করতে পারেন, অথবা বিদ্যমান ওয়েব ইডিটিং টুলস্ ব্যবহার করতে পারেন।  আমরা নিম্নোক্ত গুলি প্রস্তাব করতে পারিঃ

    একবার যখন আপনি শুরু করবেন তখন আপনি আপনার ওয়েব অ্যাপটি ফায়ারফক্স ওএস ফোনে রান করতে চাইবেন;  এর জন্য আপনি  ডেভেলপার প্রিভিউ ডিভাইস অথবা  আপনার নিজের ডিভাইসে, যেমন অনেক সাপোর্টেড গুগলএর নেক্সাস মডেল এ রান করতে পারেন।

    আপনার প্রথম অ্যাপ

    This section aims to get you up and running quickly with an installable web app, showing you how quick and easy it is to learn the basics. If you'd like to follow along with this guide, you can find our quickstart starter template repo on Github (download directly as a zip).

    কুইকস্ট্যার্ট অ্যাপ এর প্রাথমিক টেমপ্লেট

    Our app does something very simple — it uses the Battery Status API to fetch the battery charge level of the device and check to see whether the battery is charging or not, and alerts the user to the status of this via a vibration (via the Vibration API) and system notification (via the Notification API).

    To begin with, the starter template directory has the following structure:

    • battery-quickstart-starter-template/
      • index.html
      • images/
        • battery.svg
        • icon-128.png
        • icon-512.png
      • scripts/
        • battery.js
        • install.js
      • style/
        • style.css
      • .htaccess
      • README.md
    • index.html : The main document of our app that contains its content, and which everything else feeds into.
    • images : Contains an icon used in the app UI, plus the app icons for display on the Firefox Marketplace (if submitted there) and homescreen of the devices the app is installed on (and potentially other places too). For more information on app icons, read our Icon implementation for apps guide.
    • scripts : Will contain the JavaScript code that defines the functionality of the app; currently there are two blank files — battery.js and install.js.
    • style : contains a stylesheet, style.css, to provide the app with basic styling.
    • .htaccess: A server config file that informs web servers of the mime type of the manifest file we are adding in the next section. This makes sure that servers don't throw an error if they don't recognise the manifest file type (which some might.)
    • README.md: Markdown-based readme file that Github uses to explain what this repo is all about.

    ম্যানিফেস্ট যোগ করা

    Every open web app requires a manifest.webapp file to be placed in the app's root folder: This provides important information about the app, such as version, name, description, icon location, locale strings, domains the app can be installed from, and much more.

    Add the following into a new plain text file in your app's root. Name the file manifest.webapp.

    {
      "name": "Battery",
      "description": "Battery provides a good template for an in-app battery/charge indicator with different visualization choices, plus ideas of what could be changed once battery level gets low.",
      "launch_path": "/index.html",
      "icons": {
        "128": "/images/icon-128.png",
        "512": "/images/icon-512.png"
      },
      "developer": {
        "name": "Chris Mills",
        "url": "http://www.conquestofsteel.co.uk"
      },
      "permissions": {
        "desktop-notification": {
          "description": "Needed for creating system notifications."
        }
      }
    }

    Note: For more information on exactly what is going on here, consult our App Manifests reference.

    Note: paths in manifest files should be relative to the origin of the server location. So for example, if my example's root is at http://www.mysite.com/myapp/, and my icon is at http://www.mysite.com/myapp/myicon/icon.png, the icon path would be /myapp/myicon/icon.png, not /myicon/icon.png.

    এপিআই অনুমোদন

    There are a number of WebAPIs available that require permissions for that specific feature to be enabled. Installed apps have to register permission requests within the manifest.webapp file as seen in the "permissions" field above, which requests permission to use the system notifications controlled by the Notification API.

    Different APIs require different levels of permission to access them. The three levels of permission are as follows:

    1. Normal — APIs that don't need any kind of special access permissions.
    2. Privileged — APIs available to developers to use in their applications, as long as they set access permissions in the app manifest files, and distribute them through a trusted source.
    3. Certified — APIs that control critical functions on a device, such as the call dialer and messaging services. These are generally not available for third party developers to use.

    Note: For more information on what APIs require what permissions, read App permissions.

    ওয়েব এপিআই কার্যাবলি

    JavaScript APIs are being created and enhanced as quickly as devices are. Mozilla's WebAPI effort brings dozens of standard mobile features to JavaScript APIs.

    ফিচারগুলির জন্য সমর্থন নির্ণয় করা

    One technique employed commonly in web development is JavaScript feature detection — it involves running code to make sure a feature is supported by the browser before you actually try to use that feature. If it doesn't, you can provide some kind of fallback experience. The following snippet provides a quick example (this doesn't need to be added into your example code):

    // Let's check if the browser supports notifications
    if (!("Notification" in window)) {
      console.log("This browser does not support notifications.");
    }

    কুইকস্টার্ট উদাহরণের জন্য আমাদের কোড

    Inside the scripts/battery.js file, add the following code blocks one after the other, reading the code comments carefully as you go. First, we'll set up all the variables we need:

    // fork the navigator.battery object depending on what prefix the viewing browser uses
    var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery;
    // grab the elements we need, and put them in variables
    var indicator1 = document.getElementById('indicator1');
    var indicator2 = document.getElementById('indicator2');
    var batteryCharge = document.getElementById('battery-charge');
    var batteryTop = document.getElementById('battery-top');
    var chargeIcon = document.getElementById('battery-charging');
    
    // Flag to check if battery charged/not charged has already been notified once
    // 0 for first time of notification,
    // 1 means "charged" has already been notified,
    // 2 means "not charged" has already been notified
    // This is set to the opposite after each notification, so that you don't keep
    // getting repeat notifications about the same charge state.
    var chargingState = 0;
    

    Next, we'll add the main updateBatteryStatus() function, which is responsible for updating the displayed information about the battery's status whenever a battery-related event is fired:

    function updateBatteryStatus() {
      // battery.level can be used to give us a percentage of bettery charge to report to
      // the app's user
      var percentage = Math.round(battery.level * 100);
      indicator1.innerHTML = "Battery charge at " + percentage + "%";
      batteryCharge.style.width = percentage + '%';
    
      if(percentage >= 99) {
        // report that the battery is fully charged, more or less ;-)
        batteryTop.style.backgroundColor = 'limegreen';
        batteryCharge.style.backgroundColor = 'limegreen';
        createNotification("Device battery fully charged.");
      }
    
      if(battery.charging) {
      // If the battery is charging
        if(chargingState == 1 || chargingState == 0) {
        // and if our chargingState flag is equal to 0 or 1
          // alter the styling to show the battery charging
          batteryTop.style.backgroundColor = 'gold';
          batteryCharge.style.backgroundColor = 'gold';
          indicator2.innerHTML = "Battery is charging";
          chargeIcon.style.visibility = 'visible';
          // notify the user with a custom notification
          createNotification("Device battery now charging.");
    
          // flip the chargingState flag to 2
          chargingState = 2;
        }
      } else if(!battery.charging) {
      // If the battery is NOT charging
        if(chargingState == 2 || chargingState == 0) {
        // and if our chargingState flag is equal to 0 or 2
          // alter the styling to show the battery NOT charging
          batteryTop.style.backgroundColor = 'yellow';
          batteryCharge.style.backgroundColor = 'yellow';
          indicator2.innerHTML = "Battery not charging";
          chargeIcon.style.visibility = 'hidden';
          // notify the user with a custom notification
          createNotification("Device battery is not charging.");
    
          // flip the chargingState flag to 1
          chargingState = 1;
        }
      }
    }
    

    Now it's time to add in the createNotification() function referenced above. When this is called, a system notification is fired containing the message passed in as its argument. This code seems a bit long-winded, but here we are both detecting support for Notifications, and handling bulletproof support for both Firefox and Chromium/Blink-based browsers.

    function createNotification(message) {
      // Let's check if the browser supports notifications
      if (!("Notification" in window)) {
        console.log("This browser does not support notifications.");
      }
      // Let's check if the user is okay to get some notification
      else if (Notification.permission === "granted") {
        // If it's okay let's create a notification
    
        // show the notification
        var notification = new Notification('Battery status', { body: message });
        // And vibrate the device if it supports vibration API
        window.navigator.vibrate(500);
      }
      // Otherwise, we need to ask the user for permission
      // Note, Chrome does not implement the permission static property
      // So we have to check for NOT 'denied' instead of 'default'
      else if (Notification.permission !== 'denied') {
        Notification.requestPermission(function (permission) {
          // Whatever the user answers, we make sure Chrome stores the information
          if(!('permission' in Notification)) {
            Notification.permission = permission;
          }
          // If the user is okay, let's create a notification
          if (permission === "granted") {
    
            // show the notification
            var notification = new Notification('Battery status', { body: message });
            // And vibrate the device if it supports vibration API
            window.navigator.vibrate(500);
          }
        });
      }
    }
    

    Finally, we'll add event handlers to the battery object to let us respond to changes in the battery's charging state and charge level (by running the updateBatteryStatus() function), and then run updateBatteryStatus() once to get the show started:

    // Event handler to check whether the battery has started charging or stopped charging
    battery.addEventListener("chargingchange", updateBatteryStatus, false);
    // Event handler to check whether the battery charge level has changed
    battery.addEventListener("levelchange", updateBatteryStatus, false);
    
    // run the central function once when the app is first loaded
    updateBatteryStatus();

    The comments should explain what the code does well enough, but the take home message is that it is easy to use hardware data and functionality via such APIs, with simple events and objects like chargingchange, battery, and Notification().

    The JavaScript is watching for when the battery charge level changes, or when the battery stops or starts charging (the chargingchange and levelchange event listeners.) When one of these events happens, the updateBatteryStatus() function is run, which decides what notification to tell the user, updates the visual display to suit, and runs createNotification().

    This final function actually fires the system notification and makes the phone vibrate to give the user some extra system-wide feedback as to what the battery status is.

    Note: Check the WebAPI page frequently to keep up to date with device API statuses.

    এপিআই ফাংশনালিটি ইন্সটল করা

    In our sample app template, we've implemented an install button that you can click when viewing the app as a standard Web page, to install that site on Firefox OS as an app. The button markup is nothing special:

    <button id="install">Install app on device</button>

    This button's functionality will be implemented using the Install API. Add the following into your example's scripts/install.js file:

    // get a reference to the install button
    var button = document.getElementById('install');
    
    // if browser has support for installable apps, run the install code; it not, hide the install button
    if('mozApps' in navigator) {
    
        // define the manifest URL
        var manifest_url = location.href + 'manifest.webapp';
    
        function install(ev) {
          ev.preventDefault();
          // install the app
          var installLocFind = navigator.mozApps.install(manifest_url);
          installLocFind.onsuccess = function(data) {
            // App is installed, do something if you like
          };
          installLocFind.onerror = function() {
            // App wasn't installed, info is in
            // installapp.error.name
            alert(installLocFind.error.name);
          };
        };
    
        // if app is already installed, hide button. If not, add event listener to call install() on click
        var installCheck = navigator.mozApps.checkInstalled(manifest_url);
        installCheck.onsuccess = function() {
    
          if(installCheck.result) {
            button.style.display = "none";
          } else {
            button.addEventListener('click', install, false);
          };
        };
    } else {
      button.style.display = "none";
    }

    Again, the comments explain what's going on quite nicely, but in brief, we first check whether the mozApps object exists in the browser (if('mozApps' in navigator)) — i.e. if the browser supports installable apps or not. If not, we just hide the install button.

    Next, navigator.mozApps.checkInstalled checks whether the app defined by the manifest at manifest_url is already installed on the device. If the test returns a success, its success event is fired and the installCheck.onsuccess = function() { ... } is run.

    We then test for the existence of installCheck.result; if it does exist, meaning that the app is installed, we hide the install button. If the app isn't installed, we add a click event listener to the button, so the install() function is run when the button is clicked.

    When the button is clicked and the install() function is run, we install the app using navigator.mozApps.install(manifest_url), storing a reference to that installation in the installLocFind variable. You'll notice that this installation also fires success and error events, so you can run actions dependent on whether the install happened successfully or not.

    Note: Installable open web apps have a "single app per origin" security policy; basically, you can't host more than one installable app per origin. This makes testing a bit more tricky, but there are still ways around this, such as creating different subdomains for apps.

    অ্যাপকে অফলাইনে কর্মপোযোগী করা

    By default, web apps (including hosted Firefox OS apps) don't work offline: resources are cached in the standard web way, but you can't guarantee the app will be available offline. There are various technologies and techniques that can be used to make apps work offline, and these are explained in more detail at our Offline apps developer recommendations page. We won't be discussing offline any further in this article, as we wanted to keep the scope clearly within the realm of distinct installable web app/Firefox OS app features.

    অ্যাপটিকে টেস্ট (চলছে কিনা যাচাই) করা

    At this point, your app should be finished, and you can start testing it in browsers. If the app does not seem to be working, you can find the finished source code to check against, or see the example running live. For example, it looks like this on a desktop computer:

    An image of the quickstart app in a desktop browser. it shows a title saying Battery indicator, and icons to indicate that the battery is not charging.

    ফায়ারফক্স ডেক্সটপ ভার্শনে টেস্ট করা

    The quickest way to test your app's basic functionality is to simply load it in Firefox desktop (open the index.html file in the browser) — this supports most of the features we are talking about here. The notifications look like so on OS X:

    A system notification from Mac OS X saying that the device battery is not charging.

    And in Firefox Aurora/Nightly and Firefox for Android, you can test the install functionality — these browsers include the Firefox runtime that allows installable web apps to be installed on the desktop.

    Note: Bear in mind though that to test the install functionality you'll need to put the files onto a location on your own server that has no other installable web apps on the same origin (different subdomains is ok.) This is because of the "single app per origin" security policy we mentioned earlier. If you try to install the version we've got running on Github, for example, you'll get a MULTIPLE_APPS_PER_ORIGIN_FORBIDDEN error.

    ফায়ারফক্স ওএস সিমুলেটরে টেস্ট করা

    You can also test the app in a Firefox OS simulator via our App Manager tool (and soon, on our all-new WebIDE tool). This will give you a more realistic idea of how it will look on a real device. In short, you need to:

    1. Install the Firefox OS simulator
    2. Open the App Manager (Tools > Web Developer > App Manager)
    3. Click Start Simulator then choose the simulator you installed earlier
    4. Click Add packaged app then navigate to your app's local directory
    5. Click the App's Update button to install it on the Firefox OS Simulator

    ফায়ারফক্স ওএস ডিভাইসে টেস্ট করা

    The vibration API won't work on these options however. To fully test this you'll need to get hold of a real Firefox OS device. If you've got one, you can connect it to your computer and install apps contained on your local drive straight onto it via the App Manager. Here's a Firefox OS screenshot showing the app running, along with a system notification.

    A Firefox OS screenshot showing the app, with a notification to say that the battery is charging.

    To install the app on your Firefox OS device via the App Manager:

    1. Install the Firefox OS simulator and ADB helper
    2. Open the App Manager (Tools > Web Developer > App Manager)
    3. On your Firefox OS device, Select the ADB and Devtools option in the Remote Debugging developer setting
    4. Connect your phone to your desktop computer via USB
    5. Click the option that represents your device in the "Not connected" bar at the bottom of the App Manager. For example, a Geeksphone Keon usually appears as full_keon
    6. Click Add packaged app then navigate to your app's local directory
    7. Click the App's Update button to install it on the Firefox OS Device

    অ্যাপ জমাপ্রদান এবং বিতরণ

    Once your app is complete, you can host it yourself like a standard web site or app (read App publishing options for more information), self-publish a packaged app, submit it to the Firefox Marketplace. What you do here depends on your circumstances:

    1. When publishing a Firefox OS app, it is generally a good idea to make it available as a packaged app. Packaged apps come with the advantages of having access to privileged APIs (see App permissions), and being installed on the device so they are available offline. A packaged app would effectively get the AppCache functionality discussed above for free, and you could remove the install functionality discussed above as well (see Self-publishing packaged apps for more information on what you'd do instead.)
    2. If you want your app to be available as a general web app and not just a Firefox OS app, hosted is the way to go, as discussed in this article.

    When submitting to the Marketplace, your app's manifest will be validated and you may choose which devices your app will support (e.g. Firefox OS, Desktop Firefox, Firefox Mobile, Firefox Tablet). Once validated, you can add additional details about your app (screenshots, descriptions, price, etc.) and officially submit the app for listing within the Marketplace. Once approved, your app is available to the world for purchase and installation.

    আরও জানুন

    That's it for now. Our quickstart is obviously a gross oversimplification of all the things involved in making a great app, but we've deliberately kept it this way to effectively highlight all the new things you need to know. For more information on different aspects of app design and development and Firefox OS, consult the below resources.

    ফায়ারফক্স ওএস

    Our Firefox OS zone focuses closely on the Firefox OS platform, giving you all need to know about building the platform, contributing to the Gaia project, phone specs, and Firefox OS-specific debugging and testing techniques.

    ডিজাইন অ্যাপস্

    There's no "right way" to design a user interface, but there are plenty of ways to make your app less fun and easy to use. Our Apps design section will help you avoid making common UI mistakes, and provide knowledge of responsive design and other essential topics for designing an app that is a joy to use, no matter what platform it's running on.

    বিল্ড অ্যাপস্

    Our অ্যাপস্ বিল্ড সেকশন provides clear developer recommandations and workflow advice to help experienced developers find solutions to common development problems rapidly, plus tutorials and API reference listings for those who want to go deeper.

    পাবলিশ অ্যাপস্

    আপনার অ্যাপসটি প্রকাশ করতে এবং ইউজারবেস তৈরি করতে চান? আমাদের মার্কেটপ্লেস জোন আপনার জন্য প্রয়োজনীয় অ্যাপস্ প্রকাশনার অপশন, ফায়ারফক্স মার্কেটপ্লেস এ অ্যাপস প্রদান করা, মূল্য নিধারণ ও বেচাকেনা নিয়ন্ত্রনসহ অন্যান্য সকল তথ্যসমূহ রয়েছে.

    ফ্যাক (FAQ)

    অ্যাপস্ ডেভেলপমেন্ট এর মৌলিক বিষয়ে প্রায়শ জিজ্ঞাসিত প্রশ্নসমূহ।

    আমার কী ফ্রেমওয়ার্ক/লাইব্রেরি ব্যবহার করা উচিত?

    আপনি যদি কোন ফ্রেমওয়ার্ক অখবা লাইব্রেরি পান যা আপনার নিয়মিত কাজের জন্য প্রায়ই ব্যবহার করতে হয়  তাহলে ইন্সটলযোগ্য অ্যাপস্ তৈরিতে  আপনি তা  ব্যবহার করতেই পারেন, এতে কোন বাধ্যবাধকতা নেই। 

    আমি একটি ব্যবহার করে দেখতে পারি এই ধরণের অ্যাপস্ আছে কী?

    হ্যাঁ,  এমডিএন(MDN) অ্যাপ সেন্টারে এ এরকম অনেক অ্যাপ রয়েছ।

    ডকুমেন্ট ট্যাগ এবং অবদানকারী

    Contributors to this page: stephaniehobson, badsha_eee, markg, mynoddin
    সর্বশেষ হালনাগাদ করেছেন: stephaniehobson,
    সাইডবার লুকানো