Using a Type-centric, Multi-dimensional Event Dispatch Strategy to Simplify Android Programming (CS Seminar Lecture Series)
MetadataShow full item record
Abstract: 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. Bio: 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. The Computer Science Seminar Lecture Series is a collection of weekly lectures about topics at the forefront of contemporary computer science research, given by speakers knowledgeable in their field of study. These speakers come from a variety of different technical and geographic backgrounds, with many of them traveling from other universities across the globe to come here and share their knowledge. These weekly lectures were recorded with an HD video camera, edited with Apple Final Cut Pro X, and outputted in such a way that the resulting .mp4 video files were economical to store and stream utilizing the university's limited bandwidth and disk space resources.