LambdaNative
Developer(s) | Pediatric Anesthesia Research Team, Digital Health Innovation Lab |
---|---|
Stable release | 1.0.10
/ May 15, 2018 |
Written in | Scheme |
Operating system | iOS, Android, BlackBerry 10, Windows, Mac OS X, Linux, OpenBSD, OpenWrt |
Type | Software development kit |
License | BSD |
Website | www |
LambdaNative is an open-source cross-platform development environment written on top of the Gambit-C Scheme implementation of the Scheme programming language, supporting the creation of native applications on a range of mobile, desktop and embedded platforms. The underlying Scheme programming language has a long tradition of use in theoretical computer science, artificial intelligence and rapid program development.
History
The Scheme programming language was designed as a simplified and more abstract variant of the early Lisp programming language. The first Lisp implementation was available in 1958, Scheme was introduced in 1975.
Development of LambdaNative toolkit started in 2009 at the Pediatric Anesthesia Research Team (PART) [1] in Vancouver, Canada. It was initially used as an in-house platform for a closed-loop intravenous anesthesia system. Support for mobile platforms was added as PART became engaged in global health projects in 2010. The core LambdaNative framework was open-sourced in 2013.[2]
Features
LambdaNative combines the possibilities of a rapid prototyping environment using Scheme and C programming languages (feature of the underlying Gambit-C implementation) with easy cross-platform software generation and a set of modules including GUI programming, fast Fourier transform and modules to access typical phone hardware components such as camera, GPS and audio.
Licensing
LambdaNative is released under the BSD License.
Platforms
LambdaNative supports building native applications for the following operating systems:
Scheme based development
LambdaNative applications are written in the Scheme language which can be easily mixed with C code. Scheme is a high level functional language with a very simple and expressive syntax. LambdaNative uses Gambit-C Scheme,[3] a portable standards-compliant Scheme to C compiler.
Applications written in the framework can be either event-loop driven graphical applications or console applications, and code can be abstracted in the form of modules and plugins. LambdaNative does not require the use of an Integrated Development Environment (IDE). The build system follows the conventional configure, make, make install command format.
Graphics and user interface
LambdaNative utilizes the OpenGL and OpenGL ES hardware accelerated graphics layer on the target platforms, and provides a full widget-based 2D graphics engine. It is also possible to render 3D scenes, and overlay a 2D user interface.
The cross-platform GUI is based on the highly portable glGUI widget toolkit.
Audio
LambdaNative supports both playback of audio files (OGG or WAV) format, and real-time full-duplex bidirectional audio.
Sensors
LambdaNative supports access to accelerometers, gyroscopes, GPS locators and other sensors where available on mobile devices.
Applications built with LambdaNative
LambdaNative has been used for a diverse range of medical applications, for example the Phone Oximeter,[4] a smartphone based low-cost pulse oximeter. The Phone Oximeter was selected as one of the ten innovations for 2015 to achieve the United Nations Millennium Development Goals to decrease maternal and child mortality.[5]
LambdaNative-based applications have been used in clinical trials on >50,000 subjects in Canada, France, India, Uganda, Bangladesh, and South Africa, in >10 separate clinical studies.[6][7]
See also
References
- ^ PART (November 19, 2013). "Pediatric Anesthesia Research Team :: Home". Pediatric Anesthesia Research Team. Retrieved 19 November 2013.
- ^ Jennifer Kohm (Oct 9, 2013). "Powerful platform for mobile health apps now available as open source software". Child & Family Research Institute. Retrieved 19 Nov 2013.
- ^ Marc Feeley; et al. (September 22, 2013). "Main Page - Gambit wiki". Marc Feeley. Retrieved 19 November 2013.
- ^ Joanne Lim (December 12, 2012). "ecem: PhoneOximeter.org". The University of British Columbia. Retrieved 19 November 2013.
- ^ PATH/Evelyn Hockstein (September 23, 2013). "Breakthrough Innovations That Can Save Women and Children Now - PATH" (PDF). PATH. Retrieved 30 November 2018.
- ^ Petersen, Christian L; Görges, Matthias; Dunsmuir, Dustin; Ansermino, J Mark; Dumont, Guy A (19 November 2013). "Experience report: Functional programming of mHealth applications" (PDF). Proceedings of the 18th ACM SIGPLAN international conference on Functional programming. Boston, MA: ACM. pp. 357–362. doi:10.1145/2500365.2500615. ISBN 9781450323260. S2CID 14055790.
- ^ "COMMUNITY-LEVEL INTERVENTIONS FOR PRE-ECLAMPSIA". PRE-EMPT CO-ORDINATING CENTRE. 29 September 2015.