A plugin for Termux to use native Android GUI components from CLI applications.

Related tags

App termux-gui
Overview

Termux:GUI

This is a plugin for Termux that enables command line programs to use the native android GUI.

In the examples directory you can find demo videos and sample code.

There are also prepackaged programs you can use.

Installation notes
There is currently no release on f-droid, so the only method to install this plugin is to use the apk from the releases and the Termux apk from Github Actions.
Releases on f-droid will be provided as soon as possible. When there is a release, the f-droid badge at the top will show a version number. The f-droid builds currently don't work, Github builds are the only option for now.
See this comment for links to install Termux and its plugins from Github.

Protocol.md describes the Protocol used and the available functions you can use.
If you want to use overlay windows or be able to open windows from the background, go into the app settings for Termux:GUI, open the advanced section and enable "Display over other apps".

Comparison with native apps

Native app With Termux:GUI
Has to be installed Program can be run in Termux
Full access to the Android API Access to the Android API through Termux:GUI and Termux:API
Limited to C, C++, Kotlin and Java for native development Any programming language can be used, prebuilt library for python available
Lower performance caused by IPC
Accessing files in Termux only possible via SAF Direct access to files in Termux
Has to be started with am from Termux Can be started like any other program in Termux
Can receive command line arguments and output back to the Terminal

Language Bindings

Using the plugin

Using this plugin requires a bit of knowledge of the Android GUI system. You can read about it in detail in the official documentation.
Relevant documentation is also linked in Protocol.md for more specific subjects.
Here is a crash-course:

Tasks

Tasks are the individual screens you can switch between. Each Task has a stack of Activities, called the back stack, with the top one being visible.

Activities

Activities are the individual screens of apps, like a home screen, a settings screen etc.
When an Activity finishes itself, it is removed from the Activity stack of its Task, showing the underlying Activity.
An Activity can also launch another Activity in the Task, adding it to the back stack on top of itself.
To not let the device do unneeded work like drawing Elements that aren't visible, the System informs Activities of certain changes.
These are the Activity lifecycle events.

Activity Lifecycle

The most important lifecycle events for you will be onDestroy, onStart and onStop. When an Activity is started, it is visible. An Activity is destroyed if the user finishes it (by dismissing it), when it finishes itself or when a configuration change occurs.
The plugin will tell you if the Activity is finishing when onDestroy is fired, so you know the Activity will be closed.
Configuration changes are handled for you, so you don't need to worry about onDestroy if the Activity is not finishing.

Views

Views are the Elements that are displayed in Activities.
They are divided into Views and Viewgroups, which can themselves contain Views or Viewgroups.
That results in a hierarchy of Elements, with one at the top.
The Viewgroups are Layouts that position the contained Views according to your configuration.

The most used Layout is LinearLayout. It simply displays Views in a horizontal or vertical list, giving each Element the same space by default.
TextViews can display text.
EditText can get text input from the user.
Buttons can be clicked.
ImageViews can display images.

With these fundamentals you can go ahead and use this plugin. If you need more sophisticated Views or Layouts look into Protocol.md for what's available.

Comments
  • java.lang.ClassNotFoundException: Didn't find class

    java.lang.ClassNotFoundException: Didn't find class "android.webkit.PacProcessor"

    Android 9 do not have android.webkit.PacProcessor

    Ref: https://stackoverflow.com/questions/70756680/java-lang-noclassdeffounderror-failed-resolution-of-landroid-webkit-pacprocess

    Logs: Termux_GUI logcat.txt

    opened by MrAdityaAlok 7
  • Python. Display gif in ImageView

    Python. Display gif in ImageView

    Hi there! I really love this project, thanks for your work! Can you suggest, please, how can I display gifs in ImageView and handle events? First, I tried to open gif like in python bindings example, with io.open, but ImageView displays only first (0) frame. Then I tried to open image with PIL image library and loop over frames. It worked, but I cant handle events, till frame loop is not finished, but also I would like the gif to be shown infinitely. I can do this with while loop, but, again, cant handle events. Now, I have a code like this:

    from io import BytesIO
    from time import sleep
    from PIL import Image
    
    file = 'some.gif'
    gif = Image.open(file)
    
    with tg.Connection() as c:
        a = tg.Activity(c, dialog=True)
        lay = tg.LinearLayout(a)
        e = tg.ImageView(a, lay)
        button = tg.Button(a, 'Text', lay)
        for ev in c.events():
            print (ev.type, ev.value)
            for frame in range(gif.n_frames):
                gif.seek(frame)
                buf = BytesIO()
                gif.save(buf, format='PNG')
                e.setlinearlayoutparams(0)
                e.setheight(gif.height*5, px=True)
                e.setwidth(gif.width*5, px=True)
                e.setimage(buf.getvalue())
                sleep(1.5)
    

    It's looped over all frames only one time, and till loop is not finished, events cant be handled

    opened by m00n-err0r 3
  • Cannot install by myself signed.

    Cannot install by myself signed.

    Because Termux did not provide a pre-compiled package before, and I added two fonts to the Styling plugin, so I have always used the APK editor to sign by myself. But now not only the GUI plugin cannot be installed, the latest version of the Widget, the API plug-in is also cannot be installed.

    here is my info

    ## Termux App Info
    
    **APP_NAME**: `Termux`  
    **PACKAGE_NAME**: `com.termux`  
    **VERSION_NAME**: `0.118.0`  
    **VERSION_CODE**: `118`  
    **TARGET_SDK**: `28`  
    **IS_DEBUGGABLE_BUILD**: `false`  
    **APK_RELEASE**: `Unknown`  
    **SIGNING_CERTIFICATE_SHA256_DIGEST**: `A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC`  
    ##
    
    
    ## Termux:API App Info
    
    **APP_NAME**: `Termux:API`  
    **PACKAGE_NAME**: `com.termux.api`  
    **VERSION_NAME**: `0.49`  
    **VERSION_CODE**: `49`  
    **TARGET_SDK**: `28`  
    **IS_DEBUGGABLE_BUILD**: `false`  
    **APK_RELEASE**: `Unknown`  
    **SIGNING_CERTIFICATE_SHA256_DIGEST**: `A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC`  
    ##
    
    
    ## Termux:Styling App Info
    
    **APP_NAME**: `Termux:Styling`  
    **PACKAGE_NAME**: `com.termux.styling`  
    **VERSION_NAME**: `0.29`  
    **VERSION_CODE**: `29`  
    **TARGET_SDK**: `28`  
    **IS_DEBUGGABLE_BUILD**: `false`  
    **APK_RELEASE**: `Unknown`  
    **SIGNING_CERTIFICATE_SHA256_DIGEST**: `A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC`  
    ##
    
    
    ## Termux:Widget App Info
    
    **APP_NAME**: `Termux:Widget`  
    **PACKAGE_NAME**: `com.termux.widget`  
    **VERSION_NAME**: `0.12`  
    **VERSION_CODE**: `12`  
    **TARGET_SDK**: `28`  
    **IS_DEBUGGABLE_BUILD**: `false`  
    **APK_RELEASE**: `Unknown`  
    **SIGNING_CERTIFICATE_SHA256_DIGEST**: `A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC`  
    ##
    
    
    ## Device Info
    
    ### Software
    
    **OS_VERSION**: `4.19.113-perf-g18f438a3f5fe`  
    **SDK_INT**: `30`  
    **RELEASE**: `11`  
    **ID**: `RKQ1.200826.002`  
    **DISPLAY**: `RKQ1.200826.002 test-keys`  
    **INCREMENTAL**: `V12.5.7.0.RJSCNXM`  
    **SECURITY_PATCH**: `2022-01-01`  
    **IS_DEBUGGABLE**: `0`  
    **IS_TREBLE_ENABLED**: `true`  
    **TYPE**: `user`  
    **TAGS**: `release-keys`  
    
    ### Hardware
    
    **MANUFACTURER**: `Xiaomi`  
    **BRAND**: `Redmi`  
    **MODEL**: `M2007J17C`  
    **PRODUCT**: `gauguinpro`  
    **BOARD**: `gauguinpro`  
    **HARDWARE**: `qcom`  
    **DEVICE**: `gauguinpro`  
    **SUPPORTED_ABIS**: `arm64-v8a, armeabi-v7a, armeabi`  
    ##
    
    
    ## Important Links
    
    ### Github
    
    [Termux](https://github.com/termux/termux-app)  
    [Termux:API](https://github.com/termux/termux-api)  
    [Termux:Boot](https://github.com/termux/termux-boot)  
    [Termux:Float](https://github.com/termux/termux-float)  
    [Termux:Styling](https://github.com/termux/termux-styling)  
    [Termux:Tasker](https://github.com/termux/termux-tasker)  
    [Termux:Widget](https://github.com/termux/termux-widget)  
    [termux-packages](https://github.com/termux/termux-packages)  
    
    ### Email
    
    [[email protected]](mailto:[email protected])  
    
    ### Reddit
    
    [r/termux](https://www.reddit.com/r/termux)  
    
    ### Wiki
    
    [Termux Wiki](https://wiki.termux.com)  
    [Termux](https://github.com/termux/termux-app/wiki)  
    [termu## Termux App Info
    
    **APP_NAME**: `Termux`  
    **PACKAGE_NAME**: `com.termux`  
    **VERSION_NAME**: `0.118.0`  
    **VERSION_CODE**: `118`  
    **TARGET_SDK**: `28`  
    **IS_DEBUGGABLE_BUILD**: `false`  
    **APK_RELEASE**: `Unknown`  
    **SIGNING_CERTIFICATE_SHA256_DIGEST**: `A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC`  
    ##
    
    
    ## Termux:API App Info
    
    **APP_NAME**: `Termux:API`  
    **PACKAGE_NAME**: `com.termux.api`  
    **VERSION_NAME**: `0.49`  
    **VERSION_CODE**: `49`  
    **TARGET_SDK**: `28`  
    **IS_DEBUGGABLE_BUILD**: `false`  
    **APK_RELEASE**: `Unknown`  
    **SIGNING_CERTIFICATE_SHA256_DIGEST**: `A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC`  
    ##
    
    
    ## Termux:Styling App Info
    
    **APP_NAME**: `Termux:Styling`  
    **PACKAGE_NAME**: `com.termux.styling`  
    **VERSION_NAME**: `0.29`  
    **VERSION_CODE**: `29`  
    **TARGET_SDK**: `28`  
    **IS_DEBUGGABLE_BUILD**: `false`  
    **APK_RELEASE**: `Unknown`  
    **SIGNING_CERTIFICATE_SHA256_DIGEST**: `A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC`  
    ##
    
    
    ## Termux:Widget App Info
    
    **APP_NAME**: `Termux:Widget`  
    **PACKAGE_NAME**: `com.termux.widget`  
    **VERSION_NAME**: `0.12`  
    **VERSION_CODE**: `12`  
    **TARGET_SDK**: `28`  
    **IS_DEBUGGABLE_BUILD**: `false`  
    **APK_RELEASE**: `Unknown`  
    **SIGNING_CERTIFICATE_SHA256_DIGEST**: `A40DA80A59D170CAA950CF15C18C454D47A39B26989D8B640ECD745BA71BF5DC`  
    ##
    
    
    ## Device Info
    
    ### Software
    
    **OS_VERSION**: `4.19.113-perf-g18f438a3f5fe`  
    **SDK_INT**: `30`  
    **RELEASE**: `11`  
    **ID**: `RKQ1.200826.002`  
    **DISPLAY**: `RKQ1.200826.002 test-keys`  
    **INCREMENTAL**: `V12.5.7.0.RJSCNXM`  
    **SECURITY_PATCH**: `2022-01-01`  
    **IS_DEBUGGABLE**: `0`  
    **IS_TREBLE_ENABLED**: `true`  
    **TYPE**: `user`  
    **TAGS**: `release-keys`  
    
    ### Hardware
    
    **MANUFACTURER**: `Xiaomi`  
    **BRAND**: `Redmi`  
    **MODEL**: `M2007J17C`  
    **PRODUCT**: `gauguinpro`  
    **BOARD**: `gauguinpro`  
    **HARDWARE**: `qcom`  
    **DEVICE**: `gauguinpro`  
    **SUPPORTED_ABIS**: `arm64-v8a, armeabi-v7a, armeabi`  
    ##
    
    
    opened by zixijian 3
  • [question] How to integrate SurfaceView to make a gui for mpv

    [question] How to integrate SurfaceView to make a gui for mpv

    Hello, your project is very promising to me because I want to make a simple gui for mpv inside termux. Currently, mpv only need the id to android.view.Surface to play its video through the option --wid=<ID>:

    On  Android,  the  ID  is  interpreted as android.view.Surface.
    Pass it as a value cast to intptr_t.
    Use with --vo=mediacodec_embed and  --hwdec=mediacodec for  direct  rendering  using  MediaCodec,
    or  with  --vo=gpu   --gpu-context=android (with or without --hwdec=mediacodec-copy).
    

    Could you tell me how to integrate a SurfaceView? In this way I can return the Surface id from its SurfaceHolder.Callback.

    Would it be as simple as adding a TextView?

    opened by JingMatrix 1
  • "setBackgroundColor" is not working

    Hi, I was testing Termux-gui API and discovered setBackgroundColor was not working as intended. (For example, if I create a text view and use set background color to change it to white, it wont work.). This issue also affects test15.py

    opened by ArtemisX64 1
  • how to install for f-droid version of Termux???

    how to install for f-droid version of Termux???

    I installed Termux from F-droid but F-droid build Termux it self then i can't install Termux-GUI from F-droid and Github can you make a release for f-droid???

    opened by dontknowhy 1
  • demo test3.py cannot display image

    demo test3.py cannot display image

    [~]$ python test3.py 1.png
    Traceback (most recent call last):
      File "/data/data/com.termux/files/home/test3.py", line 11, in <module>
        with open("icon.png","rb") as f:
    FileNotFoundError: [Errno 2] No such file or directory: 'icon.png'
    

    delete line 11

    [~]$ python test3.py 1.png
    /data/data/com.termux/files/usr/bin/sh: 1: identify: not found
    Traceback (most recent call last):
      File "/data/data/com.termux/files/home/test3.py", line 50, in <module>
        sock.bind("\0test")
    OSError: [Errno 98] Address already in use
    
    opened by zixijian 1
  • "App not installed " issue on Android 11 ( redmi note 10 )

    Kindly Solve this issue and give update

    image

    • when i download and installed from F-Droid website
    • i tried uninstall Termux and Termux:API and install Termux:GUI, then it installed without any error .
    • Solve this problem and please give a update for this issue .
    opened by sdp4377 1
  • Bump actions/upload-artifact from 2 to 3

    Bump actions/upload-artifact from 2 to 3

    Bumps actions/upload-artifact from 2 to 3.

    Release notes

    Sourced from actions/upload-artifact's releases.

    v3.0.0

    What's Changed

    • Update default runtime to node16 (#293)
    • Update package-lock.json file version to 2 (#302)

    Breaking Changes

    With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.

    v2.3.1

    Fix for empty fails on Windows failing on upload #281

    v2.3.0 Upload Artifact

    • Optimizations for faster uploads of larger files that are already compressed
    • Significantly improved logging when there are chunked uploads
    • Clarifications in logs around the upload size and prohibited characters that aren't allowed in the artifact name or any uploaded files
    • Various other small bugfixes & optimizations

    v2.2.4

    • Retry on HTTP 500 responses from the service

    v2.2.3

    • Fixes for proxy related issues

    v2.2.2

    • Improved retryability and error handling

    v2.2.1

    • Update used actions/core package to the latest version

    v2.2.0

    • Support for artifact retention

    v2.1.4

    • Add Third Party License Information

    v2.1.3

    • Use updated version of the @action/artifact NPM package

    v2.1.2

    • Increase upload chunk size from 4MB to 8MB
    • Detect case insensitive file uploads

    v2.1.1

    • Fix for certain symlinks not correctly being identified as directories before starting uploads

    v2.1.0

    • Support for uploading artifacts with multiple paths
    • Support for using exclude paths
    • Updates to dependencies

    ... (truncated)

    Commits
    • 83fd05a Bump actions-core to v1.10.0 (#356)
    • 3cea537 Merge pull request #327 from actions/robherley/artifact-1.1.0
    • 849aa77 nvm use 12 & npm run release
    • 4d39869 recompile with correct ncc version
    • 2e0d362 bump @​actions/artifact to 1.1.0
    • 09a5d6a Merge pull request #320 from actions/dependabot/npm_and_yarn/ansi-regex-4.1.1
    • 189315d Bump ansi-regex from 4.1.0 to 4.1.1
    • d159c2d Merge pull request #297 from actions/dependabot/npm_and_yarn/ajv-6.12.6
    • c26a7ba Bump ajv from 6.11.0 to 6.12.6
    • 6ed6c72 Merge pull request #303 from actions/dependabot/npm_and_yarn/yargs-parser-13.1.2
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump actions/checkout from 2 to 3

    Bump actions/checkout from 2 to 3

    Bumps actions/checkout from 2 to 3.

    Release notes

    Sourced from actions/checkout's releases.

    v3.0.0

    • Updated to the node16 runtime by default
      • This requires a minimum Actions Runner version of v2.285.0 to run, which is by default available in GHES 3.4 or later.

    v2.5.0

    What's Changed

    Full Changelog: https://github.com/actions/checkout/compare/v2...v2.5.0

    v2.4.2

    What's Changed

    Full Changelog: https://github.com/actions/checkout/compare/v2...v2.4.2

    v2.4.1

    • Fixed an issue where checkout failed to run in container jobs due to the new git setting safe.directory

    v2.4.0

    • Convert SSH URLs like org-<ORG_ID>@github.com: to https://github.com/ - pr

    v2.3.5

    Update dependencies

    v2.3.4

    v2.3.3

    v2.3.2

    Add Third Party License Information to Dist Files

    v2.3.1

    Fix default branch resolution for .wiki and when using SSH

    v2.3.0

    Fallback to the default branch

    v2.2.0

    Fetch all history for all tags and branches when fetch-depth=0

    v2.1.1

    Changes to support GHES (here and here)

    ... (truncated)

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v3.1.0

    v3.0.2

    v3.0.1

    v3.0.0

    v2.3.1

    v2.3.0

    v2.2.0

    v2.1.1

    • Changes to support GHES (here and here)

    v2.1.0

    v2.0.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Leveraging react/svelte native?

    Leveraging react/svelte native?

    Hi, I just notice this project and I really love the idea of gui from termux programs.

    A lot of work is been put into view binding work with c/c++/python, it make me think that React Native, or similar projects like svelte native, did similar stuff binding java side ui api with javascript. The binding works could be very similar to this project.

    Would you consider leveraging their work and put some integration with termux-gui and reacte/svelte native, or even flutter? If this could be done, then gui development in termux could be much easier. We can even run a lot of github react native projects directly without very little modifications.

    opened by ccaapton 1
  • [question]How to integrate SDL2

    [question]How to integrate SDL2

    It's not an issue just asking for help, because I haven't studied your project in depth yet

    I wonder if it is possible to support SDL2 with c/c++, I have seen someone using termux-gui and ffplay.py to play video.

    opened by Lzhiyong 8
  • Questions regarding this project

    Questions regarding this project

    Hi, I have some questions regarding this project.

    1. Using Rust, I want to make a GUI application using either conrod or iced GUI library. Is it easily portable to termux-gui?
    2. Do I have to compile it for Android ARM processor? Or what would I do to compile it?
    3. Is it possible to have like some sort of a shortcut to my launcher for the GUI Linux application that will automatically launch it as soon as I press it?
    4. If I have scrollable content that can be scrolled only using the mouse wheel on Linux, then if I run it on Android (through termux-gui) would I be able to scroll using the touch screen?
    5. Am I expecting things to be difficult to configure, and have a lot of breakage?
    opened by Raj2032 26
  • App can not be installed. Honor 9X

    App can not be installed. Honor 9X

    I have honor 9X and I wanted to try this app but it is not installing. This is probably something to do with architecture.

    (Translation: "Aplikaci nelze nainstalovat" is "Application can not be installed" ) Screenshot_20211127_161239_com google android packageinstaller

    opened by mobilex1122 7
Releases(0.1.5)
  • 0.1.5(Sep 26, 2022)

    Changed

    • Fixed: add aid to onUserLeaveHint event
    • Added: method to set selected tab for TabLayout
    • Added: method to set clickability of views
    • Added: option to specify View visibility at creation
    • Added: notifications with custom layout
    • Added: normal notifications in addition to custom ones
    • Added: method to get plugin version code
    • Added: method the set text gravity
    • Added: WebView
      • navigating history
      • set document
      • load from URI
      • run Javascript code in the WebView
    • Added: GridLayout
    • Added: method to set the coordinates of views directly. Useful to use FrameLayout to overlay views
    • Added: ability to catch the back button as an event.
    • Added: method to move views in the layout hierarchy, e.g. to make it go on top of everything else in FrameLayout or reposition it in GridLayout or LinearLayout. This is added to the layout parameters methods.
    Source code(tar.gz)
    Source code(zip)
    Tgermux.GUI-0.1.5.apk(3.79 MB)
  • 0.1.4(Jan 7, 2022)

    Added screen on/off events Added events for airplane mode, locale, timezone and configuration changes Added requestFocus to focus an EditText and display the soft keyboard Added HorizontalScrollView Added item snapping for HorizontalScrollView and NestedScrollView Added a settings screen Added a method to turn the screen on Added a method to request the user to unlock the screen Added TabLayout

    Source code(tar.gz)
    Source code(zip)
    app-debugMinify.apk(2.50 MB)
  • 0.1.3(Nov 22, 2021)

    Changelog: Added Spinners Made shared buffers available for Android 8.0 and earlier Added RadioButtons and RadioGroups Added event control methods Added touch events Added ToggleButtons You can now set the visibility of Views and the background and text colors Added SwipeRefreshLayout

    Source code(tar.gz)
    Source code(zip)
    app-release.apk(1.76 MB)
Owner
Termux
Android terminal emulator and Linux environment.
Termux
Shreyas Patil 2.1k Dec 30, 2022
AdpPad is a GUI application to use adb. adb is a command line tool to control android device.

AdbPad AdpPad is a GUI application to use adb. adb is a command line tool to control android device. Demo.mp4 ✨ Feature Observe a connected android de

katz 31 Dec 30, 2022
Wireguard-android - Android GUI for WireGuard

Android GUI for WireGuard Download from the Play Store This is an Android GUI fo

Wolfram Liebchen 0 Jan 28, 2022
Android developer tool to draw overlay layout for GUI debug

LayoutOverlay Overview Make a overlay window to show transparent shape to compare size with view, margin. Features Overlay window Drag Drag and drop t

7loro 1 Oct 11, 2021
Linux GUI for Kuri's userspace tablet drivers. Supports non-wacom (XP-Pen, Huion, Gaomon) graphics tablets and pen displays

Kuri's Userspace tablet driver utility (GUI) This is a new GUI implementation for the userland driver I've written here: https://github.com/kurikaesu/

Aren Villanueva 12 Jan 4, 2023
An Animated Scrolling View for React Native applications, supported on both iOS and Android

react-native-focused-scroll An Animated Scrolling View for React Native applications, supported on both iOS and Android Preview react-native-focus-scr

Fatemeh Marzoughi (Saba) 3 Aug 12, 2022
A framework for building native applications using React

React Native Learn once, write anywhere: Build mobile apps with React. Getting Started · Learn the Basics · Showcase · Contribute · Community · Suppor

Meta 106.9k Jan 8, 2023
📲💬 react-native-fontext is a lightweight library to integrate fonts in your React Native application that works seamlessly in android and iOS devices.

React Native Fontext react-native-fontext is a lightweight library to integrate fonts in your React Native application that works seamlessly in androi

mroads 9 Dec 3, 2021
Matomo wrapper for React-Native. Supports Android and iOS. Fixed issues for native platforms build that are present in the official package.

@mccsoft/react-native-matomo Matomo wrapper for React-Native. Supports Android and iOS. Fixed issues for native platforms build that are present in th

MCC Soft 4 Dec 29, 2022
A Python native extension written in Kotlin Native

Kotlin Python Ext This is a proof of concept for a Python extension in Kotlin. It is recommended to read the Official Python C API Documentation befor

Martmists 20 Jun 22, 2022
Native-loader - Safely load native libraries in Java

Native Loader ??️ Safe native loading in Java based off of the native-loader use

Mixtape 1 Oct 19, 2022
React-native-user-interface - Change React Native userinterface at runtime

react-native-user-interface change RN userinterface at runtime. Installation npm

Ahmed Eid 0 Jan 11, 2022
🛒A Minimal Expense E-Commerce App built to demonstrate the use of modern android architecture components [Navigation, Room, MotionLayout, etc..] with MVVM Architecture. ✔

E-Store A Simple E-Commerce App ?? built to demonstrate the use of modern android architecture component with MVVM Architecture ?? . Made with love ❤️

Ameen Essa 14 Nov 3, 2022
PyCharm plugin for ruff. This plugin provides reformat code using ruff.

Ruff PyCharm Plugin A JetBrains PyCharm plugin for ruff. Help See documentation for more details. Sponsors ScreenShots Features Run ruff --fix as an a

Koudai Aono 4 Dec 17, 2022
simple-flank is a Gradle plugin to use Flank in Android projects with no configuration needed

simple-flank simple-flank is a new gradle plugin with a clear focus: make the setup as simple as possible. Applied to any application or library modul

Flank 8 May 10, 2022
Android Study Jams - These are applications built for Android Study Jams 2022 at Chitkara University

Project Description These are applications built for Android Study Jams 2022 at

Armaan Jain 3 Sep 16, 2022
Examples of Android applications

Android Demos This is a collection of basic android examples created by Novoda. CarouselFragment CompassExample ContactSelector CustomActivityTransiti

Novoda 2k Dec 16, 2022
An open source application to make your own android applications without coding!

Stif An Open source project for building Android Application at a go both with and without coding. This project was inspired from Scratch and Sketchwa

Nethical org 5 Aug 28, 2021
Android Kotlin Completed Training Applications.

Android Kotlin Completed Training Applications. This Repo is used to track a series of Android Kotlin apps I've created based on Google & Udacity trai

Tc2r 3 Dec 4, 2021