Mobile Devices Programming



The proliferation of mobile devices in all sectors of human activity is spectacular. Todays’ mobile devices comprise several applications and capabilities, as well as access to the Internet thus tend to replace computers, as well as a variety of other devices such as cameras, MP3 players, etc. This has made mobile devices extremely popular while the widespread use of mobile devices and the rapid development of corresponding applications help accelerate business innovation. The objective of this course is to provide basic knowledge of technologies that will allow students to capitalize upon the opportunities offered by mobile application development industry. More specifically, the course presents network technologies for mobile and wireless communications. Moreover, the course presents location discovery techniques that can be exploited for location-based services for mobile devices. In addition the course provides an overview of requirements and functionalities for “smart” devices. An overview of the main platforms for mobile devices is also provided, such as iPhone, Android, Windows Mobile, Symbian, RIM. The design and development of applications for mobile devices is addressed. Finally the course aims to familiarize students with main concepts of developing Android mobile applications.

Course Contents

  • Mobile and wireless communication networks: Wireless access technologies and networks, characteristics of wireless personal area networks (WPANs), local area networks (WLANs), metropolitan area networks (WMANs) and wide area cellular networks (WWANs). Multimode terminals and wireless access selection.
  • Conversational applications, data applications and web browsing via wireless packet access networks, effects of wireless environment and mobility on network/transport layer and applications, mobility management protocols and TCP adaptation in wireless packet networks
  • Location discovery technologies and location based services, IP multimedia subsystem wireless internet support technologies, architecture, layering and services.
  • Overview of “smart” devices: Requirements for “smart” mobile devices: Personalization, context awareness, always best connectivity, ubiquitous service provision, seamless mobility. Functionalities: Acquiring user information, acquiring context information, policies, selection of optimal device configuration. Advantages – drawbacks, potential business benefits.
  • Mobile device platforms: Overview of main mobile device platforms: iPhone, Android, Windows Mobile, Symbian, RIM, iPhone, overview of iPhone Operating System (IOS), main concepts of Objective C, tools for developing IOS applications, Xcode.
  • Android SDK: Main concepts, Android application model, introduction to the Android platform, platform architecture, application building blocks, activities, services, content providers, broadcast receivers, intents, development tools.
  • Android Lab 1: Development of applications with Android Software Development Kit (SDK) and the Eclipse framework, design and implementation of Graphical User Interface (GUI), use of XML layouts, main widgets (labels, check boxes, buttons, input boxes, etc), containers (widget collections), input method framework, drop-down menus, fonts. Examples and lab exercises.
  • Android Lab 2: Data management in Android applications. Shared Preferences, local files, SQLite data bases, table creation, insert and modification of records, queries, use of ContentProvider for the exchange of information between applications.
  • Android Lab 3: Access to device location information, Android classes and interfaces for management of location information in applications, use of Google Maps, MapViews, Geocoding, examples and lab exercises.
  • Security for mobile devices and applications: Threads and security risks, principles, concerns, best practices and critical success factors, Mobile devices’ security policy.
  • E. Burnette (2010): Hello, Android: Introducing Google’s Mobile Development Platform, Pragmatic Bookshelf, ISBN: 9781934356562.
  • P.J. Deitel, H. M. Deitel, A. Deitel, M. Morgano (2011): Android for Programmers: An App-Driven Approach, Prentice Hall, ISBN: 978-0132121361.
  • M. L. Murphy (2010): Android Programming Tutorials, 3rd Edition, CommonsWare, ISBN: 978-0981678047.
  • J. Steele, N. To (2010): The Android Developer’s Cookbook: Building Applications with the Android SDK, Addison-Wesley Professional, ISBN: 978-0321741233.
  • F. Ableson, C. Collins, R. Sen (2012): Unlocking Android: A Developer’s Guide, Manning Publications, ISBN: 9781933988672.

Additional Readings:

  • S. Hoober, E. Berkman (2012): Designing Mobile Interfaces, O’Reilly, ISBN: 9781449394639.
  • M. Firtman (2010): “Programming the Mobile Web”, O’Reilly, ISBN: 9780596807788.
  • J. Conway, A. Hillegass (2010): iPhone Programming: The Big Nerd Ranch Guide, Pearson Technology Group, ISBN: 9780321706249.
  • M. Poikselka, G. Mayer (2009): The IMS: IP Multimedia Concepts and Services, Wiley, ISBN: 9780470721964.