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.
The course presents modern technologies, methodologies and tools for the design and development of innovative applications for mobile devices, which exploit the rich set of features integrated into these devices. Location discovery techniques, user interaction, internet networking as well as communication with smart devices (e.g. sensors and smartwatches) in the frame of the Internet of Things paradigm. An overview of the main platforms for mobile devices is also provided, such as iPhone, Android, Windows, as well as hybrid platforms based on web technologies, which cover the complete application lifecycle, from the design and development, to the testing and deployment in a production environment.
A series of laboratory lectures will allow students to gain hands-on experience and expertise with respect to mobile devices programming, as well as development, configuration and optimization of related applications, as well as of the systems that support them (e.g. servers, web services etc.), aiming to increase their competitiveness based on the market emerging requirements for mobile devices and application programming skills.
Mobile Device Platforms
Main concepts, Android application model, introduction to the Android platform, platform architecture, application building blocks, activities, services, content providers, broadcast receivers.
Principles, Techniques and Tools
Architectural Concepts, Design and Development of Systems and Services to support both web applications and applications for mobiles. Integrated Development Environments, Code Versioning, Build Automation, Continuous Integration.
Application Development with Android Studio
Design and Implementation of Graphical User Interface (GUI), use of XML layouts, main widgets (labels, check boxes, buttons, input boxes), containers (widget collections), input method framework, drop-down menus, fonts.
Services and Background Processes
Development of services and background processes for working on the background. Communication between services and activities.
Data Management in Android Applications
Shared Preferences, settings implementation, state storage.
Communication with web servers, data exchange using web services, integration of web applications.
Location Based Services
Access to device location information, Android classes and interfaces for management of location information in applications, use of Google Maps, MapViews, Geocoding.
Addition of external sources and libraries, local files storage and editing, management of images and graphics. Design for different screens and devices.
Databases for Mobile Applications
SQLite, realm.io, table creation, insert and modification of records, queries.
Communication with External Devices
Use of Bluetooth technology and APIs for data exchange between mobile and external devices such as sensors and smartwatches.
- B. Phillips, C. Stewart, B. Hardy, K. Marsicano, “Android Programming: The Big Nerd Ranch Guide”, July 2015
- J. Annuzzi, L. Darcey, S. Conder, “Advanced Android Application Development”, November 2014
- R. Meier, “Professional Android 4 Application Development”, April 2012
- G. Berkowski, “How to Build a Billion Dollar App: Discover the secrets of the most successful entrepreneurs of our time”, September 2014