LambdaNative, a development environment bringing functional programming to mobile and embedded application development, is being primed for expansion to the Internet of things.
The open source cross-platform environment was written in the Scheme language and enables sharing of modular code between applications. “LambdaNative is a software development kit that manages the details of delivering applications on diverse platforms, beyond the scope of the Scheme compiler itself,” LambdaNative team lead Chris Petersen said. “This includes the handling of application resources, artwork generation, code signing, packaging, as well as cross-compilation of supporting libraries. This functionality reduces the complexities of app development, and helps reduce the overall development time.”
Next on the agenda is support for IoT protocols, such as the MQTT messaging protocol, and strong authentication technologies like U2F. “We are also developing a sister project, LNHealth, that uses LambdaNative for creating mHealth [mobile health] surveys with support for sensor input, etc.,” said Petersen.
Released as an open source project in 2013, LambdaNative supports Apple iOS, Google Android, and BlackBerry OS 10, as well as OS X, Linux, and Windows. Applications are built from a single source code.
The environment was developed by Pediatric Anesthesia Research Team (PART) at the British Columbia Children’s Hospital, in conjunction with the Electrical Computing and Computing Engineering in Medicine (ECEM) group at the University of British Columbia. Petersen is technology director at PART. “Our interest is pragmatic, stemming from a need to produce high-quality code with very short turn-around and limited manpower and resources,” he said. “We have found functional programming, and Scheme in particular, to be an effective way to maximize our productivity.”
LambdaNative’s founders have developed applications with it, including Clip, a survey tool for screening of pregnant women for preeclampsia; iControl, for managing intravenous drug infusion; and RRate, for measuring the breath rate in sick children. PART and ECEM have an internal repository of about 80 applications built with it.