AppJar

Last updated

AppJar
Developer(s) Richard Jarvis
Initial release2015;6 years ago (2015) [1]
Stable release
0.94 / May 26, 2019;21 months ago (2019-05-26)
Written in Python
Operating system Cross-platform
License Apache License v2.0 [2]
Website appjar.info

appJar is a cross-platform, open source Python library for developing GUIs (graphical user interfaces). [3] It can run on Linux, OS X, and Windows. It was conceived, and continues to be developed with educational use as its focus, [4] so is accompanied by comprehensive documentation, as well as easy-to-follow lessons. [5]

Contents

License

appJar is licensed under the Apache License v2.0. [2]

History

appJar was originally envisaged as a simple wrapper around tkinter, to allow secondary school pupils to develop simple graphical user interfaces in Python. It was meant to hide away the complexity, so that pupils could focus on writing algorithms, without having to worry about how to position widgets and link to functions. It was started out in the winter of 2014, as a simple in-house project, but soon started to grow. It was published to GitHub on July 31, 2015, [1] and first added to the PyPi repository on 20 December 2016. [6] In June 2017, appJar was featured in an article in The MagPi, detailing how it could be used to interact with Minecraft. [7]

Example

This is a simple "Hello world" example:

#!/usr/bin/env python3fromappJarimportguiapp=gui("Demo")app.addLabel("l1","Hello World")app.go()

The above example is getting even simpler in the 1.0 release (available in beta in the 0.9 release):

#!/usr/bin/env python3fromappJarimportguiwithgui("Demo")asapp:app.label("Hello World")

Related Research Articles

In computer programming, standard streams are interconnected input and output communication channels between a computer program and its environment when it begins execution. The three input/output (I/O) connections are called standard input (stdin), standard output (stdout) and standard error (stderr). Originally I/O happened via a physically connected system console, but standard streams abstract this. When a command is executed via an interactive shell, the streams are typically connected to the text terminal on which the shell is running, but can be changed with redirection or a pipeline. More generally, a child process inherits the standard streams of its parent process.

PyQt

PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing. It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License (GPL) and commercial license, but not the GNU Lesser General Public License (LGPL). PyQt supports Microsoft Windows as well as various flavours of UNIX, including Linux and MacOS.

The FOX toolkit is an open-source, cross-platform widget toolkit, i.e. a library of basic elements for building a graphical user interface (GUI). FOX stands for Free Objects for X.

wxPython

wxPython is a wrapper for the cross-platform GUI API wxWidgets for the Python programming language. It is one of the alternatives to Tkinter. It is implemented as a Python extension module.

IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. IronPython 2.0 was released on December 10, 2008. After version 1.0 it was maintained by a small team at Microsoft until the 2.7 Beta 1 release. Microsoft abandoned IronPython in late 2010, after which Hugunin left to work at Google. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

The Linux Desktop Testing Project (LDTP) is an open-source testing tool that uses computer assistive technology to automate GUIs. The GUI functionality of an application can be tested in Windows, Mac, Linux, Solaris, FreeBSD and embedded environments. The Mac OS X version is called PyATOM, and the Windows version is Cobra.

Orange (software)

Orange is an open-source data visualization, machine learning and data mining toolkit. It features a visual programming front-end for explorative rapid qualitative data analysis and interactive data visualization.

Tkinter is a Python binding to the Tk GUI toolkit. It is the standard Python interface to the Tk GUI toolkit, and is Python's de facto standard GUI. Tkinter is included with standard Linux, Microsoft Windows and Mac OS X installs of Python.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

Cython Programming language

Cython is a programming language that aims to be a superset of the Python programming language, designed to give C-like performance with code that is written mostly in Python with optional additional C-inspired syntax.

RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol (AMQP) and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol (STOMP), MQ Telemetry Transport (MQTT), and other protocols.

Flask (web framework) Python web framework

Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions. However, Flask supports extensions that can add application features as if they were implemented in Flask itself. Extensions exist for object-relational mappers, form validation, upload handling, various open authentication technologies and several common framework related tools.

OCRFeeder

OCRFeeder is an optical character recognition suite for GNOME, which also supports virtually any command-line OCR engine, such as CuneiForm, GOCR, Ocrad and Tesseract. It converts paper documents to digital document files and can serve to make them accessible to visually impaired users.

Kivy (framework)

Kivy is a free and open source Python framework for developing mobile apps and other multitouch application software with a natural user interface (NUI). It is distributed under the terms of the MIT License, and can run on Android, iOS, GNU/Linux, macOS, and Windows.

sigrok

sigrok is a portable, cross-platform, free open source signal analysis software suite that supports various device types, such as logic analyzers, MSOs, oscilloscopes, multimeters, LCR meters, sound level meters, thermometers, hygrometers, anemometers, light meters, DAQs, data loggers, function generators, spectrum analyzers, power supplies, IEEE-488 (GPIB) interfaces, and more.

Nim (programming language)

Nim is an imperative, general-purpose, multi-paradigm, statically typed, systems, compiled programming language designed and developed by Andreas Rumpf. It is designed to be "efficient, expressive, and elegant", supporting metaprogramming, functional, message passing, procedural, and object-oriented programming styles by providing several features such as compile time code generation, algebraic data types, a foreign function interface (FFI) with C, C++, Objective-C, and JavaScript, and supporting compiling to those same languages.

This is a comparison of GUIs of the software Git.

Fyne (software) Graphical toolkit for building cross platform GUIs

Fyne is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs) across desktop and mobile platforms. Fyne uses OpenGL to provide cross-platform graphics. It is inspired by the principles of Material Design to create applications that look and behave consistently across all platforms. It is licensed under the terms of the 3-clause BSD License, supporting the creation of free and proprietary applications. In December 2019 Fyne became the most popular GUI toolkit for Go, by GitHub star count and in early February 2020 it was trending as #1 project in GitHub trending ranks.

References

Notes
  1. 1 2 "First released" . Retrieved 2017-04-08.
  2. 1 2 "Copyright notice" . Retrieved 2017-04-09.
  3. "GUI programming in Python" . Retrieved 2017-04-09.
  4. "Educational intentions" . Retrieved 2017-04-09.
  5. "Lessons" . Retrieved 2017-04-09.
  6. "PyPi created" . Retrieved 2017-04-08.
  7. Jarvis, Richard (June 2017). "Build a Python GUI to Control Minecraft". MagPi. UK: Raspberry Pi Foundation. Retrieved 2017-12-11.