From 94b5d2aecaca073429b112d40899e582a9972103 Mon Sep 17 00:00:00 2001 From: Alexander Mahr Date: Sat, 15 Feb 2025 16:34:38 +0100 Subject: [PATCH] add screenshot --- README.md | 84 ++------------------------------- screenshots/screenshot.01.avif | Bin 0 -> 3894 bytes 2 files changed, 4 insertions(+), 80 deletions(-) create mode 100644 screenshots/screenshot.01.avif diff --git a/README.md b/README.md index 08438b0..7bcc9e7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ -# Android App (build via docker/podman) +# Calender App -The goal of this repo, is to create a container that can serve to produce an "empty android Application" (i.e `app.apk` file). -As such the philosophy is to keep the process "simple" as to now make the understanding too difficult. +simple calender app ## usage @@ -12,82 +11,7 @@ As such the philosophy is to keep the process "simple" as to now make the unders ./build-android-app.sh ``` -2. follow the configuration -3. upon success the apk file created is in app/result/app.apk and can be installed via `adb` -``` -adb install -r app/result/app.apk -``` -## basic ideas +## Screenshots -* work within container (debian based image) -* use Makefile as a build tool - -## benefits of this (compared to AndroidStudio) - -* no need to install rather bloated hell of software (i.e AndroidStudio) and all -* less hidding of internals (i.e Makefile allows to see how app.apk is made) -* small app.apk file -* oftentimes faster compile time (as compared with AndroidStudio Gradle builds) -* quick "webview" which can serve as starting point for people that can to PWA and websites -* Assisted initial configuration provides access to configure almost all types of [Android app permissions](app/.Makefile.scripts/make--app-config.sh#L127) -* no need to have Kotlin, Gradle setup -/ -## basic info - -This repo should allow to generate an empty "android app". by simply cloning this repo and -``` -./build-android-app.sh -``` -It does so via: - -1. building a container (in any of the runtime/daemons it finds: i.e. docker,podman,etc..) -2. running this container having the `./app` folder being mounted within as `/app` -3. executing the [`app/Makefile`](app/Makefile) which will then: -4. either work with the configuration stored in an `app/app-config.sh` in case such file exists or -5. if not go through a `whiptail` text menu wizzard to configure a new empty app. (Makefile recipe: `./app-config.sh`) -6. it will then download the required android sdk files as necessary (Makefile recipe: `./android-sdk/installed`) -7. go through the further steps to setup the blank app. - - - -## files and purpose - -Upon `clone` of this repo the `app` folder is setup with these files: -``` -# The (GNU) Makefile which... -app/Makefile -# ... has recipes that call scripts in folder.... -app/.Makefile.scripts -# .. which creates an `app-config.sh`, a file to keep -# the configuration (app name,lable,api-levels,permissions etc)... -app/.Makefile.scripts/make--app-config.sh -# .. which creates an `AndroidManifest.xml` -app/.Makefile.scripts/make--AndroidManifest.xml -# .. which creates an `AppActivity.java` file (which just setup a Webview and loads `assets/index.html`) -app/.Makefile.scripts/make--AppActivity.java.sh -# .. which installs the necessary Android SDK in the correct versions -app/.Makefile.scripts/make--android-sdk.sh -app/assets -# the index.html file -app/assets/index.html -app/res -app/res/drawable -# the icon of the app -app/res/drawable/appicon.xml -``` - -Upon further `./build-android-app.sh` execution more folders will appear -``` -# a folder in which the Android-sdk stuff (installed via sdkmanager) is stored -android-sdk -# folders used during build... -# ... for temporary files -bin/ -obj/ -result/ -# app configuration resulting from text whiptail menu -app-config.sh -# the Manifest file as resulted from data from app-config.sh -AndroidManifest.xml -``` +![screenshot of calender app](screenshots/screenshot.01.avif) diff --git a/screenshots/screenshot.01.avif b/screenshots/screenshot.01.avif new file mode 100644 index 0000000000000000000000000000000000000000..f69926fcd9d18d98fb95e3fbca7d8d6cf1e17091 GIT binary patch literal 3894 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 literal 0 HcmV?d00001