new_annotation app_name
new_annotation app_namespace
new_annotation app_version
+ new_annotation app_files
end
# App subclasses are cross-platform applications
# The application is being created
#
# You should build the UI at this time.
+ #
+ # Triggers are platform specific:
+ # * Android: `Activity.onCreate`
+ # * iOS: `UIApplicationDelegate application:didFinishLaunchingWithOptions`
fun on_create do end
# The application enters the active state, it is in the foreground and interactive
+ #
+ # Triggers are platform specific:
+ # * Android: `Activity.onResume`
+ # * iOS: `UIApplicationDelegate applicationDidBecomeActive`
fun on_resume do end
# The application leaves the active state but is still partially visible
#
- # It may still be visible in the background.
# It may then go back to `on_resume` or `on_stop`.
+ #
+ # Triggers are platform specific:
+ # * Android: `Activity.onPause`
+ # * iOS: `UIApplicationDelegate applicationWillResignActive`
fun on_pause do end
# The application is completely hidden from the user
#
- # It may then be destroyed (`on_destroy`) or go back to `on_start`.
+ # It may then be destroyed or go back to a paused state with `on_restart`.
+ #
+ # Triggers are platform specific:
+ # * Android: `Activity.onStop`
+ # * iOS: `UIApplicationDelegate applicationDidEnterBackground`
fun on_stop do end
+ # The application returns to a visible state from a previous `on_stop`
+ #
+ # Triggers are platform specific:
+ # * Android: `Activity.onRestart`
+ # * iOS: `UIApplicationDelegate applicationWillEnterForeground`
+ fun on_restart do end
+
# The application may be destroyed soon, save its state for a future `on_restore_state`
+ #
+ # Triggers are platform specific:
+ # * Android: `Activity.onSaveInstanceState`
+ # * iOS: `UIApplicationDelegate applicationDidEnterBackground`
fun on_save_state do end
# The application is launching, restore its state from a previous `on_save_state`
+ #
+ # Triggers are platform specific:
+ # * Android: `Activity.onCreate`, _not_ `Activity.onRestoreInstanceState`
+ # as it is trigged only if there is a previous Android specific save state.
+ # * iOS: `UIApplicationDelegate applicationDidEnterBackground`
fun on_restore_state do end
end
# The running `App`
fun app: App do return once new App
+# Platform bound at compilation (by importation or -m)
+#
+# This value should not be used to decide the behavior of the software.
+# Class refinement provide a safer and a static solution to apply variations.
+# However, this value can be used in log files and communications with servers.
+fun bound_platform: String do return "none"
+
+# Test if the application was bound to a platform, if not crash
+private fun test_bound_platform
+do
+ print_error "Apps must be bound to a platform at compilation using `-m linux` or `-m android`"
+ exit 1
+end
+
+if "NIT_TESTING".environ == "true" then exit 0
+
+test_bound_platform
+
app.setup
app.run