Developer FAQ

Product Updates

Is there a KaiOS developer community?

We have an active developer community on Reddit wherein we have a developer support team and other team members participating regularly in the community topics. Join the community: https://www.reddit.com/r/KaiOS/

How to stay updated with developer updates from KaiOS?

Alongside following us on the Reddit community, you can subscribe to our newsletter here, and follow us on Twitter and subscribe to our Youtube channel.

Development

How to get started?

You can start by visiting the KaiOS Developer Portal, where you’ll learn more about KaiOS, UI guidelines, and best practices. We also have sample codes available on GitHub and sample code by dev community members to get you started.

What development tools are available for KaiOS?

We have a KaiOS Simulator available via the developer portal, for Linux O.S. You can use the simulator for app development, debugging, checking KaiAds integration, etc. It’s important to know that the simulator doesn’t support device hardware functions such as Bluetooth or Camera.

What are the recommended frameworks?

Though most of the JS & HTML5 frameworks are compatible with KaiOS devices, we recommend frameworks with low memory consumption, including Inferno, Construct, Phaser. You can ask our developer community members on Reddit for recommendations.

Can I use Unity to develop for KaiOS?

If your application has a dependency on web assembly (WASM), then it would not work on the current KaiOS ecosystem.

Do you have a sample code for the UI components on the developer portal?

We do not have source code for it available. Please refer to our GitHub librarysample code provided by a community member, or reach out to our developer community on Reddit.

What’s the Difference between a Native and Hosted app?

Native apps are submitted as a zip file, while hosted apps are hosted on your server and only require the submission of the manifest. To learn which one is the right for you, please visit the developer portal.

How do I bring my Progressive Web App (PWA) to KaiOS?

You can refer to the document on our developer portal. In case you may need further information, feel free to reach out to developersupport@kaiostech.com. We are exploring the integration of PWA to the KaiOS ecosystem. As the project is a work in progress, please get in touch with Developer Support (developersupport@kaiostech.com) to learn about the current status of the projects, documents, and tools that would be beneficial to you.

How do I create a Privileged or Certified app?

If your app needs device API permission, the app type in the manifest should be Privileged or Certified depending on the API you need to access. You can learn more about this, here. User Data security is important to us. Therefore, to have a Privileged or Certified app, you must explain which device APIs you need access to and why in the “Known issues” segment of the submission portal. Access to certified API is limited and is provided on a case by case basis. Developers may be required to provide additional details and the QA time is thus longer.

Which apps already live in the KaiStore?

Visit our web-store to see the apps that are live on the KaiStore here. In case you are looking for inspiration or recommendations, you can reach out to developersupport@kaiostech.com

How is development for KaiStore different from JioStore?

As the underlying O.S. for the global KaiOS device including the Jio device in India, is the same, the applications that are developed for KaiStore are also compatible with JioStore, and vice versa. Essentially, they are just two different distribution channels for different geographies.

Monetization

What is the business model of KaiOS? Do I need to monetize my app?

In our mission to reach the next billion users, we work closely with our partners to offer various subsidies to reduce the cost of the device and pass the benefits to our users. Therefore, we encourage the developers to monetize their apps on our Store. All the technical resources and tools are available for developers free of cost. The app submission and QA are also free. Currently, all the apps on the ecosystem are monetized using KaiAds or other business agreements. If for the specific reason you can’t monetize your content or would not like to monetize, kindly reach out to developersupport@kaiostech.com

Can you tell me about KaiAds?

KaiAds is KaiOS’s in-house advertising SDK developed specifically for the small screen KaiOS devices. Thus, giving optimum user experience as well as best ecpm for the publishers/developers. Visit the KaiAds site to learn about the SDK and find it easy to follow steps for integration. We have made some reference apps available on Github.

How do I integrate KaiAds into my app?

Visit the KaiAds website to learn about the SDK and follow steps for integration.

Is there an option for paid apps?

KaiPay is our in-house payment SDK. The beta version of the SDK will tentatively be launched by the end of September. If you would like to learn more about it, kindly reach out to developersupport@kaiostech.com

When do developers get paid?

Earning information is available in your KaiAds publisher account. Payments will be processed by the second week of the next month. E.g. revenue of the month of May will be processed by 15th June. Monthly bank transfer payments occur after the cumulative amount crosses 500 USD.

What is the payment method?

Once your earnings cross the payment threshold, our team will reach out to you with details on the process.

Submission

What is the QA process?

Once you have developed your app, we would recommend you to go through the checklist before you submit the app. This is to ensure that you have followed all the guidelines and thus reduce the chances of app QA getting rejected. App Submission Checklist: here Youtube tutorial to submit the app: here Avoid the Most common errors listed below.

How does the release of global apps work, in comparison to regional apps?

While we encourage all apps to be released globally for all KaiOS users, we have the functionality to implement regional apps that are curated for a specific location. You can select the regions where you want to release the app while submitting the app via the submission portal. You can learn more about it on our YouTube video.

What is the average size of an app on the KaiStore?

The average size of an app on the KaiStore is 3-4 MB and 99% of the apps are under 8 MB. The submission portal can accept app packages up to 20 MB in size. To reduce the size of the app, try compressing the assets such as app icons, marketing banners, mp3 files.

What is the process for updating an app?

After your app is published, you can update the app by sending changelogs of the app update to developer support (developersupport@kaiostech.com)  Changelogs help our QA team to understand what they need to test. Thus improving the efficiency and reducing turnaround time. You can also change the ‘type’ of the app during the app update. Make sure to inform us of the permissions you require for privileged or certified apps. The app update process is only for Packaged apps, Hosted app content is within the developer’s server and hence can be updated directly and the end-user will see the updated content when they open the app.

What should I do if my app is rejected?

First check the UI design guidelines, here. The app release could also be on hold if there is a performance issue on the 256MB devices. We want our global users with 256 MB devices to not miss out on your exciting apps. We would appreciate it if you could go the extra mile to optimize your app and reach all of our users.

Do I need to pay for app QA?

We want any and everyone to be able to develop apps with low barriers. As developer outreach initiatives, we do not charge for Developer account Registration, App QA, App storing fee, etc. 

Most Common Errors

  •  Manifest Error, when uploading the file Go to the root folder of your app and select all the contents of the app. Right-click and compress all the contents to create a zip file. Watch the youtube video to do it right.
  • The menu bar is white on specific devices You could add a top menu bar of invisible color on your app <head> <meta name=”theme-color” content=”#20407b”> or launch the app on the fullscreen mode.
  • App sound continues playing when the device is locked and/or the display is off. Many developers forget to monitor the visibility of their Apps, and Apps background music still plays when Apps are hidden, for example, stay in the background, or screen display off, or screen locked. Add an event listener on “visibilitychange” and from there if it is not visible, mute the game. If it is visible then check if it has focus. If it has the focus then unmute, else continuously check if it gained focus under these conditions and then unmute it. Click here to learn how it could be achieved. You can also refer to this medium article by a KaiOS developer.
  • Pause the game before calling the getKaiAd({ function. And resume it once you receive the adclose response.ad.on(‘close’, () => console.log(‘close event’) )
  • Instructions do not accurately represent the app. If your game instructions read “Click center key to start the game”, only the center key should start the game and the other key should not take any actions.
  • App icons too large You can learn more about this process via the instructions for launch icons, here.
  • More than 2 icons submitted You have submitted too many icons. We only need 2 app icons, 56px and 112px
  • Marketing Banner missing
  • The app manifest is missing Subtitles & App description A good description improves the attractiveness of your app and increases the apps overall downloads. Below are some examples for your reference App Name: Birdy Subtitle: Birdy’s adventures through the jungle Descriptions: Keep your Birdy safe by guiding him through the jungle, dodging the pipes that pop up along the way. Stay for as long as possible, in order to obtain the new high score! App Name: News Subtitle: a personalized quality news experience Description: KaiNews brings a personalized quality news experience. Choose your region and language to read the best coverage of current events in different categories such as Business, Entertainment, Technology, Science, etc.

China Type Approval (CTA), and how does it affect your apps on the KaiStore.

According to the new regulation, when the users in China install an app from the KaiStore, the app needs to pop up a confirmation window to let users accept or deny the operation like data connection, Wi-Fi connection, access call log.
If your app uses KaiAds, Analytics, leaderboards, or any features that need connection to the internet, then you will be required to update the app.

Please modify the manifest file of your app in according to the below conditions:
1. If your apps do not need a network connection or call log request, there is no need to make any modifications.

2. Privilege app in Store that needs network connection or call log, should add below permissions in the app’s manifest.webapp file.
“permissions”:{
“mobiledata”:{},
“wifidata”:{},
“calllog”:{}
},

3. Web and Hosted apps in Store that needs a network connection, it should add the below permissions in the app’s manifest.webapp file.
“Permissions”: {
“mobiledata”:{},
“wifidata”:{}
},

4. Certified app does not need any modifications The affected OS versions are KaiOS/2.5.2.1 and KaiOS/2.5.4.1 which will be used in the China market, and in case your apps do not have the requested permissions, they won’t be published in these two OS versions.
These changes do not affect any of the existing devices and users.

If you have any other queries, don’t hesitate to reach us at developersupport@kaiostech.com