WEB Application for Mobile Systems
To understand the main architectural and implementation spects related to web applications and mobile applications, for some of the most widespread technologies.
To acquire the capability in designing and developing Web and mobile applications.
Object Oriented Programming
Introduction to the Java language. Origins and objectives. Life cycle of a Java program. Implementation, compilation and execution of a Hello, World program.
Basic constructs of the Java language. Introduction of the Eclipse development environment. I / O in Java. Exception handling. Types of abstract data: arrays and collections.
Inheritance and polymorphism. Interfaces and implementation. User interface in Java. Events and listeners.
Programming exercise in Java: creation of an interactive application for the calculation of the tax code from existing libraries for calculation.
Introduction to Android. Android architecture. Real and virtual machines. Life cycle of an application. Introduction to Gradle
Introduction to the Android Studio development environment. Implementation of the static part of an Android application. Manifest. Resources and internationalization. Graphic layout. Layouts, styles and themes.
Activity. Fundamental widgets. Events and listeners. Implementation of a first Hello, World application.
Further elements of the user interface of an Android application: fragment, menu, dialog, toast. Intent and communication between Activity.
Management of persistent data in the Android environment: Shared Preferences, files, databases, access to Web services, use of remote databases with Firebase.
Publishing of an Android application. Signature, safety and business models. Thread, Task and Services. Access to sensors and maps. Introduction to testing of Android applications
Android programming exercise: creation of an application to calculate the tax code starting from the interactive Java application made previously.
Introduction to Concurrent Versioning Systems. Key features offered by Git. Creation and sharing of software projects with Github
Introduction to Web applications. Basic architectures and languages. Client server model and subsequent evolutions. Introduction to Client Side languages for Web applications.
Server side languages. Introduction to PHP. Node.js: general features, tools and hosting. Creation of a Web Server (Hello, World) in node.js Basic forms.
Creation of new modules in Node.js. Management of requests and responses http. Access to the file system. Events and listeners. Sending emails.
Programming tutorial with Node.js: creation of a static server in node.js
The course aims to provide the basic theoretical and methodological notions for the design and development of web applications and mobile applications.
To this purpose, after an introduction to Java language programming, the main methodological and architectural issuesrelated to mobile applications are presented.
The study of mobile applications is specialized by focusing on Android applications, for which the development and execution environments and the design and programming techniques necessary for their realization are presented.
Theoretical lectures are alternated with some practical lessons aimed at the development of prototypes of web and mobile applications.
For java programming:
Bruce Eckel, Thinking in Java, Apogeo
Massimo Carli, Android 6, guide for the developer, Apogeo
Fabio Collini, Matteo Bonifazi, Alessandro Martellucci, Android. Advanced programming, LSWR editions
Doug Sillars, Developing high-performance Android applications, O'Reilly
Marc Wandschneider, Node.js, Apogeonline
Evaluation and discussion of an Android mobile application and a node.js web application realized by the students, possibly organized in small groups.
Single oral exam for each student.