- Docente: Luciano Bononi
- Credits: 6
- SSD: INF/01
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Bologna
- Corso: First cycle degree programme (L) in Information Science for Management (cod. 8014)
Learning outcomes
At the end of the course, the student knows methodological and
technological aspects, and application development tools for mobile
devices both under iOS (iPhone, iPad, iPod Touch) and Android
platforms. Students will understand the management of devices with
innovative user interfaces, multi-touch, event management,
ObjectiveC programming, Xcode and Cocoa Touch, Eclipse and Android
SDK, design patterns, I/O, sensors and geo-localization/maps APIs,
networking services, debugging and testing of applications. In
addition, students will understand the basic issues of
applications' execution in wireless mobile scenarios, and will
experience the most relevant platforms for mobile applications'
development, APIs of internal devices, multimedia management,
iPhone and Android SDK and design of applications under a
Model-View-Control pattern.
Course contents
Technology illustration for iPhone, iPod Touch e iPad.
Technology illustration for Android devices.
iOS technology layers: Core OS, Core Services, Media, Cocoa
Touch.
iOS e iOS SDK.
iOS development tools: Xcode, Interface Builder, Simulator,
Instruments.
Android app components, Applications, Activities, Activity stack,
tasks, Intents.
ObjectiveC.
Java and XML.
Object initialization and memory management.
Properties, protocols and categories in Objective-C.
Cocoa design pattern, Model-View-Controller.
Target, Action, Outlets.
Singleton, Notification, Delegate.
Foundation Framework e UIKit (Cocoa Touch).
User interface, UIWindow e UIView.
UIViewController and management of MultiViews, controllers e
views.
Touch e Multi-touch event management, gestures.
Text input and management.
Tools and models for data persistence in iOS.
CoreData e Table Views.
external (and web) data inclusion and management.
Maps and geo-localization services.
Movement and accelerometer sensors.
Networking services.
Debugging e Testing for iOS apps.
App Store.
Readings/Bibliography
Bill Dudney, Chris Adamson, Sviluppare applicazioni con iPhone SDK,
Apogeo 11/2009, ISBN: 978-88-503-2895-6
Massimo Carli, Android(tm) Guida per lo sviluppatore, Apogeo
02/2010, ISBN: 978-88-503-2921-2
Teaching methods
The course is scheduled in the second semester, as a single module totalling 6 cfus. The course is structured with live lessons, in italian, with the slides and material in english. After the introduction to the fundamentals and principles of mobile applications' design, the basic notion of MVC (model-view-controller) design pattern and the software development kit for iOS (Xcode) and Android environments, the course is splitted into two concurrent lines with lessons and lab-programming specifically devoted to development of mobile applications in iOS and Android.
Evey lesson is self-contained and illustrates a specific topic. Many references in each lesson are provided to libraries, tools and SDK, debug, etc. In most cases, the lessons are finalized with a live programming demo realizing a composite application which incorporates all the design, methodologied, best practices illustrated in the lesson. This allows the students to learn the concepts and understand their application in practice. Studens are immediately able to realize their own applications on their own devices or in the laboratories in total autonomy.
Assessment methods
The course requires the development of a individual project (group projects, opportunely defined, are allowed in special cases, upon request) with the realization of a iOS and/or Android application. A oral part will be planned to discuss the choices and motivations int he project realization (more or less 60 minutes). By the end of the classes, some project templates will be proposed, with various degrees of extensions possible. Interested students could proposed personalized projects (in this case the project application must be preliminary defined and agreed with the teacher, by sending an email with subject "Proposta progetto esame corso LAM A.A. X/Y" to the email address <lam-projects@cs.unibo.it> . Once defined a project (predefined or personalized) the candidate must develop the application in iOS or Android (or both) and prepare a 20 minutes presentation (with no more than 25 slides) and a summary (pdf, ps, html) with the contents of the oral illustration, material, source code, device used, etc. The project must be delivered within one of the 6 deadlines that will be defined in the academic year: June, July, September, October, December, February. The project must be submitted within the planned deadlines (which will be communicated via mailing lists and website), by sending an email to <lam-projects@cs.unibo.it> with subject "progetto LAM<anno> - <iOS/Android> - Nome, Cognome, Matricola" and attaching a zipped archive (lower than 2 MB) or including a link for downloading the archive from the Web. Once submitted the project, the students are invited to the oral part in the week following the submission deadline. The oral part will be kept in the teacher's office or in a room of the Department of Computer Science and Engineering, in Mura Anteo Zamboni 7. The oral part also includes questions on all the program of the course, and questions on the modifications to the demos presented during the lessons on both the platforms (iOS and Android). Students must be equivalently prepared to provide answers to both the development platforms. The outcome of the project evaluation and oral part will provide two different evaluations in the range [0..30]. Both evaluations must be greater or equal to 18/30 to receive a sufficient evaluation and pass the exam. The final score is provided with different weights: project (75%) and oral (35%), total 110%. If the final total score is equal or exceeds 30/30 the student could be awarded with "cum laude" evaluation.
Teaching tools
Electronic slides, personal computer and projector.
Laboratory devices.
Recommended readings and Web material.
Links to further information
http://www.cs.unibo.it/~bononi/
Office hours
See the website of Luciano Bononi