Maximiliano Firtman's articles, notes and learning experiences for devs-firt.dev

kaiOS development

This is a Note: a sometimes short, sometimes incomplete, living document.

kaiOS has just released its developer portal. Let's review current status of the platform.

− 100M phones, +50M expected by end of 2019
− second most-used mobile OS in India (but only 3%), third worldwide (0.5%)
− feature phones from Nokia, Jio, Alcatel, WizPhone (Google)

They is no-touch support with QVGA (240x320) screens only (landscape for QWERTY keyboards, portrait for numeric keyboards). Most of the devices include Google Assistant, so voice might replace typing for some actions and now with WhatsApp, which was important to spread usage

kaiOS is a fork of Boot2Gecko, mostly known as FirefoxOS, a web-based OS created in 2013 that was discontinued by Mozilla in 2016. It only supports web apps, not exactly PWAs, but close enough. Apps can only be installed from the kaiOS store (or Jio Store for JioPhones)

Information about how to develop the apps wasn't clear enough, and with the new developer portal, I can say it's better but still far from being clear to developers. They are many unanswered questions, but some other that are now visible.

Apps are just HTML, CSS and JavaScript based on an old Gecko 48 (~Firefox) engine (69 is the latest issue). Engine version is not documented and I can't see any plans to update it.

For example, Service Workers support is completely unclear. The documentation talks about the Cache API (so SW should be there), as well as using Application Cache. It also mentioned WebPush without too many details. There is a manifest file but it's not the Web App Manifest spec

The previous testing I made tells me that Service Workers are not available in the web browser, but they are available in the app. But it's still one of the first implementations of SWs in Firefox so lof ot testing is needed.

There is a WebIDE that helps creating, packaging, debugging and simulating web apps. The tool seems like an alpha release from 10 years ago. I had many basic UX issues just trying to do simple things.

In the App Store it seems you can publish two kinds of apps (seems=completely unclear in docs)

− hosted apps: you just submit the manifest, so all the resources are coming from your server - similar to standard PWAs

  • native apps: packaged web apps (no native usage)

If you need access to some hardware APIs (typically non-standard as they are based on old B2G APIs) you can access special certification from the store QA team. List of available Web APIs is not so clear. Docs sometimes send you to deprecated MDN docs from old B2G.

Only monetization option today is through ads, and for that, an SDK KaiAds was released. If you use it, the store will prioritize testing your app for approval. https://kaiads.com/publishers/

A payment method is coming through carrier billing (not sure if for buying or InApp purchases

We need to remember these are devices very limited in resources, so client-side JavaScript should be high-performant. KaiOS released some sample code for vanilla-JS, Vue, React and Angular, but I'd be very careful with some frameworks

More at https://github.com/kaiostech/


This note is mantained by Maximiliano Firtman Twitter @firt About Newsletter