Apps & Services
Q&A with Francis Li of Mobile Processing
Josh Knowles
Find out about the past, present and future of Mobile Processing from its founder, interaction designer and software engineer Francis Li. Francis Li, [1] the founder of the Mobile Processing project that I've been writing about quite a bit on Workshop, was kind enough to answer my questions via e-mail about the Mobile Processing [2] project and mobile phone development in general. So how did you discover Processing and how did you decide to start Mobile Processing? It's the first (as far as I know) of the now several subspecies and offshoots of Processing. How did the process of getting up and running - of getting the first version of Mobile Processing out the door - go? I had the privilege to be a student at the Interaction Design Institute Ivrea where Processing co-founder Casey Reas was a professor for two years. It was Casey's ambition to expand Processing to new platforms, and, knowing my interest in mobile design and development, he contacted me shortly after I graduated to work on building what became Mobile Processing. The first step in proving out the concept was showing that programs written to the Processing API could even run on mobile phones. I started by porting the core Processing runtime, including its custom 2D and 3D renderer, from Java SE to Java ME. Once that was complete, simple sketches written for Processing could be compiled and run on mobile phones without modification. With that in place, it was easy to adapt the Processing IDE to provide one-button building and running of Java ME applications, known as Midlets, instead of Applets. However, the performance of those early demonstrations was very poor, achieving only a few frames per second in its animation loop. The Processing renderer, designed for desktop computers, is computationally too expensive for the relatively limited hardware in mass market mobile phones. Still, encouraged by the results, I re-wrote the core runtime and renderer, removing the more expensive functionality, such as 3D drawing, and mapping as many of the Processing API functions directly to Java ME APIs as possible. It was with this new core runtime that Mobile Processing was finally released to the public. Is Mobile Processing still just you, or is it an open project that anyone can contribute to? It is an open project with its source code freely available, hosted at http://dev.processing.org [3] with Processing. Many contributions from the community have been incorporated into the project. Recently, a number of sections within the Mobile Processing website have been turned into Wiki pages that anyone in the community can edit. I'd also like to credit Marlon J. Manrique for his extensive participation within the community through his many contributed libraries and evangelism of Mobile Processing in workshops and conferences. You appear to monitor the message boards fairly closely - many of the questions and issues I see brought up are answered by you, which is very cool. But it's difficult to get a sense of the size and nature of the developer base. Do you cater mostly to students at this point, or do companies also use the app for real-world game design or application design? I see that you are (obviously, I guess) a mobile phone developer: Do you use Mobile Processing yourself on your professional applications? I believe that students and hobbyists are currently the primary users of Mobile Processing, but the community is larger than what is apparent in the Discourse boards on the website. When I attend conferences and workshops, I am often surprised by the amount of awareness and recognition there is for the project. I'm not currently aware of any commercial developers using it as part of their development practice. As a game developer, I used Mobile Processing to make rapid, early prototypes of game and user interface design concepts. The ability to see and interact with a prototype on an actual handset was a powerful way to communicate with producers and artists and refine the look and feel of designs early in the process, even before the actual engineering and implementation would be started on the final platform. In a few cases, I was able to copy code for key algorithms like collision detection and motion dynamics directly out of the Mobile Processing prototype and into the final game. There are a few other platforms out there with the stated goal of making mobile application development a much smoother process. Mobile Processing, obviously. Nokia's <a href="http://www.mupe.net/">MUPE</a>. Where.com. Even just WAP and AJAXy web sites on the iPhone. Have you dabbled with any of these other platforms? Are they competitors to Mobile Processing or are they something else entirely? In my current job at a mobile industry startup, keeping up with existing and emerging technologies is a key part of managing our design and development strategy. However, Mobile Processing is not designed or intended to "compete" with other mobile development platforms, particularly those intended specifically for commercial distribution of applications or services. Rather, Mobile Processing is intended to be a platform for experimentation, and being based on the widely deployed and actively developed industry standard that is Java ME, it has the ability to keep up with many of the latest developments in mobile technology, particularly through external libraries such as those contributed by community members like Marlon. Where is Mobile Processing heading? This might be a more general question, as well, since Mobile Processing seems to be able to access just about every feature currently available on the phone. GPS seems to be the most recent tool that's become common on mobile phones and it's causing all sorts of new ideas for mobile applications. What's coming next on these devices that excites you? I'm happy to see that the mobile industry is making progress towards recognizing the need for open access to hardware, operating systems, and the wireless network. Although Mobile Processing can utilize and expose programming interfaces to almost every feature possible on a phone, they are generally inaccessible on actual phones due to privacy and security concerns. While it is certainly important to protect the very personal information stored on a phone and to prevent the abuse of a wireless network, it shouldn't come at the expense of placing a stranglehold on the ability of independent developers to experiment with new applications. You design mobile games, right? Actually, I no longer work in the mobile games industry. For the past two years, I've been working on a picture and video sharing and messaging service for mobile phones called Radar [4]. Currently, I'm the VP of Product Design and Development for Radar and am overseeing its continued development across the mobile platforms as well as the desktop. Thanks for this opportunity to "speak", Josh! Thank you, Francis! [1] http://francisli.com [2] http://mobile.processing.org [3] http://dev.processing.org [4] http://radar.net/
No Comments