Seminar Series - Using a Type-centric, Multi-dimensional Event Dispatch Strategy to Simplify Android Programming

Speaker: Prof. Stephen Edwards, Computer Science, Virginia Tech
Date: Friday, April 13, 2012
Time: 11:15am-12:15pm
Location: 2150 Torgersen

The Android Platform is a popular choice for mobile application developers because of its large user base and the open-source development tools that are available. Further, because Android applications are built using Java, many computer science educators look toward Android as a way to bring mobile application development into the classroom and get students excited about the real-world applicability of their computing skills. At the same time, however, the Android API was not developed for beginners, and it requires a number of software practices that one would only expect of more seasoned developers.

This talk will present a brief overview of SOFIA, the Simple Open Framework for Inventive Android applications. SOFIA is currently being developed at Virginia Tech as a better API for writing Android applications, both for beginners and pros alike. Among the many API improvements in SOFIA, this talk will focus on one area in particular: event dispatch and event handling in client programs. The shortcomings of more conventional Java-based event dispatch designs, such as those in Swing and Android GUIs, will be discussed, including the difficulties that accompany these designs. SOFIA uses an alternative event dispatch model with a reflection-based implementation strategy to offer a cleaner, simpler solution. This approach combines the type safety of a statically typed language with the run-time flexibility of modern dynamic languages and greatly enhances the readability (and writability) of event handling code.

Stephen H. Edwards is an associate professor in the Department of Computer Science at Virginia Tech. He received the BS degree in electrical engineering from the California Institute of Technology, and the MS and PhD degrees in computer and information science from the Ohio State University. His research interests include software engineering, component-based development and reuse, automated testing, formal methods in programming languages, and computer science education. He is the project lead for Web-CAT, the most widely used open-source automated grading system in the world. Web-CAT is known for allowing instructors to grade students based on how well they test their own code.