The popularity of mobile interfaces and application development is increasing along with the rapid expansion of the mobile electronics market and its migration from text-based applications to various multimedia applications. Real-time graphics and web applications are becoming one of the most attractive applications in mobile terminals due to their benefits for enterprise, gaming, and social media.
This hands-on course will cover a comprehensive set of topics for developing mobile visual interfaces, including an overview of the mobile market, a comparison of mobile and desktop applications, and a survey of mobile development environments. We will also undertake a detailed discussion of UI development for mobiles, and graphics development for mobiles. During the course, various smartphones will be loaned to attendees for trying out several in-class exercises.
Level
Intermediate
Intended Audience
Journeyman level developers who have not yet built any applications for mobile devices.
Prerequisites
Good programming skills in Java, C, C++ or variants, and familiarity with a programming environment such as Eclipse or Visual Studio. Some knowledge of at least one graphics API such as OpenGL or DirectX would also be helpful.
Course Schedule
Session 1: 14:15-16:00
14:15-15:20 Ben Watson: Introduction
14:15-14:20 Welcome
14:20-14:35 Why develop for mobiles?
14:35-14:55 Survey of the mobile field
14:55-15:05 Developing for mobiles
15:05-15:20 iOS coding examples
15:20-16:00 Vidya Setlur: Programming mobile UIs
15:20-15:30 Good design practice
15:30-15:40 UI layouts
15:40-15:50 UI components
15:50-16:00 Event handling
Break: 16:00-16:15
Session 2: 16:15-18:00
16:15-16:40 Vidya Setlur: More mobile UI programming
16:15-16:25 Maps and sensors
16:25-16:40 Windows Phone coding examples
16:40-17:45 Kari Pulli: 3D graphics and cameras
16:40-16:50 OpenGL ES 1.1
16:50-17:00 OpenGL ES 2.0
17:00-17:15 WebGL
17:15-17:30 Cameras
17:30-17:45 Android/Tegra coding examples
17:45 -18:00 Watson, Setlur & Pulli: open questions
Presenter(s)
Benjamin Watson is Associate Professor of Computer Science at North Carolina State University. His Design Graphics Lab focuses on the engineering of visual meaning, and spans the intersections between graphics, perception, design, and interaction. Much of his work has migrated to the mobile platform, as the most pervasive of visual interfaces. Watson co-chaired the Graphics Interface 2001, IEEE Virtual Reality 2004 and ACM Interactive 3D Graphics and Games (I3D) 2006 conferences, and was co-program chair of I3D 2007. Watson is an ACM and senior IEEE member. He earned his doctorate at the Graphics, Visualization and Usability Center of the Georgia Institute of Technology.
Vidya Setlur is a principal research scientist at Nokia Research Center. Her research interest lies at the intersection of HCI and computer graphics, particularly in the area of iconography and content retargeting. At Nokia, much of her work emphasizes practicality and usefulness to better facilitate tasks performed with a mobile computational device. Vidya has taught mobile courses at conferences such as MobiSys, ACM CHI Conference on Human Factors in Computing Systems, the International Society for Optics and Photonics (SPIE) conferences as well as at universities such as Carnegie Mellon University and San Jose State University. She earned her doctorate in Computer Graphics at Northwestern University.
Kari Pulli has worked for 20 years on visual computing, and 12 years on mobile visual computing. Since April 2011, he has been the Senior Director of Research at Nvidia (since April 2011), following an appointment as a Nokia Fellow at Nokia Research Center. He has previously organized and taught courses on mobile 3D graphics both at SIGGRAPH and Eurographics conferences, and has taught graphics and imaging at University of Oulu and Stanford University. He earned a PhD in computer science at University of Washington, Seattle, and was a Research Associate at Stanford University as well as a visiting scientist at the Massachusetts Institute of Technology.