Skip to content

Giving your App an Interface

Simple UI in ScreenKit

Some apps may want to provide a user interface for players to work with to manage settings or work with things in-game. AppKit works hand-in-hand with Ren'Py's screens and makes it easy to work with a Ren'Py-defined UI. AliceOS also comes with ScreenKit, a great way to define an interface that's designed for AliceOS.

Attaching a screen to your app

Apps that want to display an interface when their icon is clicked in Activities or the App Manager should show the screen in their applicationWillLaunch method, like so:

def applicationWillLaunch(self):
    renpy.show_screen("screenname")

Although it's recommended to design the app's interface with ScreenKit for consistency, this will work for any screen defined in a Ren'Py project.

Creating an interface with ScreenKit

Creating an interface with ScreenKit is relatively easy since ScreenKit works directly with Ren'Py's screen language. For an existing screen, it's easy to port it over to ScreenKit by adding the style_prefix property at the top of the screen:

screen my_screen():
    style_prefix "ASInterface"
    ...

If you are creating an interface from scratch, you can take a look at how to create a very basic UI using screen language and ScreenKit in A Simple UI.

Organizing screens in your app

Apps might have multiple screens and may lose track of what screen goes where. We recommend adopting a similar structure to the one below to keep your screens organized:

AppRoot/
    Resources/
    Views/
        ScreenName.rpy
        SecondScreen.rpy
    Styles/
        ScreenStyles.rpy
    AppManifest.rpy

Suggested documentation