Here are some neat tricks to improve the usability of your apps:

Use virtualtimers instead of sleeping

An easy way to get started with writing Python apps is to just have a busy while loop that executes something and then sleep for a little while:

import time

def do_something():

while True:

However, time.sleep() blocks everything else whilst it’s sleeping. This means that for example button press handlers are not called during this sleep. That degrades the feel of your app, because e.g. pressing B to exit it now requires you to hold it for half a second. Not cool, eh?

Instead, we can do the exact same thing with virtualtimers:

import virtualtimers

def do_something():
    run_again_in = 500  # time until this function should run again, in ms
    return run_again_in

# Initialise the virtualtimers task, and register our function
virtualtimers.begin(100), do_something)  # run now, with 0 delay

In above snippet we ask virtualtimers to run do_something() once, and do_something() itself returns after how long it wants virtualtimers to call it again. By returning 500 every time, do_something() gets called every 500 ms (until virtualtimers.stop() is called, or the app is exited).

Use uinterface

The uinterface module has a lot of nifty functions to make it easy to do things in a pretty way for the user of your app. For example, to connect to wifi whilst showing a helpful animation, use:

import uinterface

# Connect to WiFi, or timeout after 10s of trying

To show text to the user without them having to wait for the entire message to scroll by if they already know what it will be:

import uinterface

uinterface.skippable_text('Super long message that you can skip by pressing either A or B')