Content from A first LambdaNative App


Last updated on 2025-07-12 | Edit this page

Overview

Questions

  • How do you create a LambdaNative Application?

Objectives

  • Create a LambdaNative Application

Steps


Make your own copy of the template repository

Wait for the build to complete, check the build output. Download the Android apk file that has been built. Install it on your Android device and try to run it. You will need to unzip it first and may need to enable developer permissions on your Android device to be able to install the apk file directly.

Challenge 1: Can you do it?

The workflow builds a demonstration calculator application. What other applications are available in the LambdaNative apps folder?

Which of these applications are listed in the LambdaNative README as demonstration programs?

The Calculator, LineDrop and uSquish applications are listed as demonstration applications

Challenge 2: Can you do it?

Modify the workflow to build one of the other demonstration applications.

Within .github/workflows/build.yml replace ./configure Calculator with either ./configure LineDrop or ./configure uSquish.

Update HelloLambdaNative/main.scm to contain:

SCHEME

;; SPDX identifier MIT

;; hello LambdaNative example

(define gui #f)
(define introdisplay #f)

(main
;; initialization
  (lambda (w h)
    (make-window 320 480)
    (glgui-orientation-set! GUI_PORTRAIT)
    (set! gui (make-glgui))
    (let* ((w (glgui-width-get))
           (h (glgui-height-get)))
    (set! introdisplay (glgui-label gui 5 (- h 80) (- w 10) 60 "Hello World!" ascii_14.fnt Green))
    (glgui-widget-set! gui introdisplay 'align GUI_ALIGNCENTER)
    (glgui-widget-set! gui introdisplay 'hidden #f))
;; events
  (lambda (t x y) 
    (if (= t EVENT_KEYPRESS) (begin 
      (if (= x EVENT_KEYESCAPE) (terminate))))
    (glgui-event gui t x y))
;; termination
  (lambda () #t)
;; suspend
  (lambda () (glgui-suspend))
;; resume
  (lambda () (glgui-resume))
)

;; eof

Modify .github/workflows/build.yml to replace

YAML

    - name: linux builds
      working-directory: lambdanative
      run: |
       ./configure Calculator
       make
    - name: android builds
      working-directory: lambdanative
      run: |
       # Fedora only provides Python3
       sed -i 's/python/python3/g' targets/android/check-tools
       # Make directory to avoid errors during build
       mkdir -p /home/build/.cache/lambdanative/android/support
       ./configure Calculator android debug
       make

by

YAML

    - name: copy source
      run: |
       cp -r HelloLambdaNative lambdanative/apps
    - name: android builds
      working-directory: lambdanative
      run: |
       # Fedora only provides Python3
       sed -i 's/python/python3/g' targets/android/check-tools
       # Make directory to avoid errors during build
       mkdir -p /home/build/.cache/lambdanative/android/support
       ./configure HelloLambdaNative android debug
       make

Wait for the pipeline to complete and then download the artifact and try to run it.

Key Points

  • It is possible to use the cloud to build an Android application
  • The LambdaNative framework enables rapid application development

Content from How can we distribute our app through F-Droid?


Last updated on 2025-07-12 | Edit this page

Overview

Questions

  • What are the steps to distribute our app through F-Droid?

Objectives

  • Learn how to distribute our app

Steps


Key Points

  • By using Free and Open Source Software we can ensure our app can be distributed through F-Droid