


Tabris.js - How to write unit tests
In this blog post, you’ll learn how to write unit tests for your Tabris.js application. To do that, you need a special setup to run your code without a native client because Tabris.js requires an Android…

JIT compilation in iOS 14.2 is not official
The news is that Apple finally allows JIT compilation in iOS 14.2. JavaScript apps, among others, should be able to run at full speed now. Let's take a look at the situation.
First of all, there was…

Observing workflow run status on Github
It is sometimes useful to get notified about the completion of a job executed on your CI service. When talking about manually triggered, long-running workflows, it could be easy to forget about them -…

Build an Android App Widget for Tabris.js Apps
The app widget is one of the desirable features in mobile apps and highly requested by Tabris.js developers. Unfortunately, we cannot directly use Tabris.js to create home screen widgets. However, we can…

Bundle your Tabris.js app code with webpack, pt. 2
In the previous blog post about webpack we argumented why you might want to use webpack for your Tabris.js project. We also showed you how to configure the webpack build for a Tabris.js app created with…

Tabris 3.6.1 released with important TypeScript and Android updates
We recently published Tabris.js 3.6.1, a patch release building on Tabris.js 3.6.0. Aside from some minor fixes in the JavaScript layer, it has two very important changes:
Tabris.js 3.6.1 is now…

Why you shouldn't use SwiftUI (currently)
SwiftUI is Apple's attempt at providing declarative UI for iOS and Mac developers. During WWDC 2020, Apple has announced new extensions to the SwiftUI. When SwiftUI was revealed to the world last year,…

How to trace memory usage by Tabris.js app using Chrome DevTools.
Since Tabris.js Android uses Google V8 as its JavaScript engine, this benefits developers to use Chrome DevTools features to debug source code, profile CPU, and memory usage of the JavaScript VM.
Enable…

Conditional actions in GitHub Workflows
When modeling complex tasks in a workflow, you sometimes might want not to execute a specific step - depending on the context. Let's have a (simplified) example.
Using a build matrix, we build a debug…