We are about to switch to a new forum software. Until then we have removed the registration on this forum.
The goal of the p5.js Native project is to develop a tool that can create simple, cross-platform, standalone mobile applications from p5.js sketches. The supported platforms will be iOS, Android, and potentially Windows Phone. The target user base for the tool is novice to intermediate developers and designers. In order to reach this audience, the tool will require minimal configuration on the part of the developer. The implementation of p5.js Native will likely depend on Apache Cordova for wrapping the sketch in a WebView and exposing the OS APIs to the sketch.
Currently, p5.js sketches are executed in a mobile web browser. One problem with this model is that not all browsers behave consistently (particularly in regards to experimental Web APIs) which can make for an unpleasant experience for the end user. There are many open GitHub issues in the p5.js repo describing strange bugs related to OS/browser behavior, see #884, #1313, #1672, #1847. By running p5.js apps in a native environment many of the browser bugs can be completely avoided.
Furthermore, running code in the browser restricts p5.js sketches to only sensors that are supported by Web APIs, some of which are either experimental or have not yet been standardized. p5.js Native will use Cordova plugins to expose a whole slew of APIs that are normally only accessible to native applications (see the core Cordova plugins for a sampling of the APIs that can be supported). Giving developers access to more mobile device APIs will allow them to create richer mobile applications.
A production-ready tool for creating cross-platform mobile applications from p5.js sketches.
User-friendly documentation and/or tutorials about how to use the p5.js Native tool.
Two years ago, I created the Processing Mobile library that exposed touch controls and mobile device sensors to Processing sketches so that developers could easily extend their creations to the mobile platform. (Nearly all of the library’s functionality has been essentially subsumed under p5.js at this point.) p5.js Native would greatly expand upon the Processing Mobile project by making it possible for developers and designers to create entirely native mobile experiences using only p5.js.
Additionally, I have extensive experience with Processing. I have used it for numerous projects over the past 3+ years, including an interactive art exhibit. I understand the Processing community, the goals of the Processing Foundation, and the role that Processing serves for developers and designers. These attributes make me confident that I can successfully complete the p5.js Native project.