11:15am to 12:15pm |
|
Using a Type-centric, Multi-dimensional Event Dispatch Strategy to Simplify Android Programming by Stephen H. Edwards
(Seminar/Conference)
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.
About the speaker:
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.
|