Degree in Design and Creation of Interactive Products La Salle Campus Barcelona

Degree in Design and Creation of Interactive Products

Interactive Media Programming II

Description
Programming is a mainly practical science and, like most practical sciences, it is structured in projects. This is the premise of which the subject of Programming Projects 2 starts. The main objective of the subject is to expand the knowledge of students in the field of programming, introducing a new field: programming for mobile devices. Given that the world of programming for mobile devices is very broad, the subject will focus on the system that, for now, has a greater presence in the market. This system is Android. The subject will also aim to equip the student with techniques and knowledge, both practical and theoretical, that will allow him to face the world of programming with the necessary tools. The subject aims to use an eminently practical methodology to impart new knowledge. In this way it will be usual for theoretical knowledge to be accompanied by exercises, and / or projects, both individually and as a team.
Type Subject
Tercer - Obligatoria
Semester
Second
Course
3
Credits
6.00

Titular Professors

Previous Knowledge

It is advisable that the student has previous knowledge of programming in Java and knows how to properly use the UML modeling language.

Objectives

Introduce the student in the world of mobile programming.
Introduce the student in the world of development for Android.
Provide the student with tools and knowledge for the design of software architectures for Android.

Contents

Topic 1. Introduction to the Android platform
1. Java and SDK
2. APK
3. Operating system and architecture
4. Environment and life cycle of an App
5. Components of an App
6. Debugging - Emulation and real environment
7. Creating Android projects

Topic 2. Development of user interfaces
1. Measurement and density of screen
2. Layouts and graphic components
3. Activity controllers
4. Strings and internationalization

Topic 3. Flexible user interfaces
1. Fragments
2. FrameLayout
3. FragmentManager

Topic 4. Applications with multiple activities
1. Activities
2. Intents
3. Activities with results

Topic 5. Data storage and retrieval
1. Work with SQLite
2. Work with Web Services

Topic 6. Geolocalització
1. Maps

Methodology

The subject is oriented so that the student takes an active part in their own learning. The teaching methodology is designed so that the subject is dynamic and participatory. The master classes are combined with exercise classes, class activities and group practices.

At the content level of the subject, the technologies used are the Java language and XML. It is also used around Android Studio programming. Methodologically, UML diagrams are used to document the work.

Evaluation

- The grade of the subject will be calculated from the set of exercises and the practice developed throughout the course:

Subject grade = 60% * Exercises_grade + 40% * Practice_grade

As long as:
Practice_Grade >= 5

- The grade of the exercises and controls (Exercises_grade) will be calculated by weighting the grades of the different exercises and controls that are developed throughout the course.

- The subject will not be evaluated through exams, so there will be no semester exam.

Evaluation Criteria

1. Basic general knowledge about the studied area [, I]
2. Oral and written expression in the own language [A, F, I]
3. Information management abilities (abilities to search and analyze information coming from different sources) [F, I]
4. Problem solving [A, F, G]
5. Team work [F, G]
6. Capacity to communicate with not-expert-in-the-subject people [I]
7. Capacity to apply knowledge into practice [F, G]

Basic Bibliography

ANDROID. Material Design for Android. [En línea] https://developer.android.com/design/material/index.html.

ANDROID. Getting Started - Android Developers. [En línea] https://developer.android.com/training/index.html.

ANDROID. Introduction to Android. [En línea] https://developer.android.com/guide/index.html.

ANDROID. Download Android Studio and SDK Tools. [En línea] https://developer.android.com/studio/index.html.

COCKBURN, ALISTAIR. Hexagonal architecture. [En línea] http://alistair.cockburn.us/Hexagonal+architecture

WILSON, JIM. 4 reasons to use Android Fragments. [En línea] Pluralsight. https://www.pluralsight.com/blog/software-development/android-fragments.

SOURCE MAKING. Design Patterns. [En línea] Source Making. https://sourcemaking.com/design_patterns.

FACEBOOK. Getting Started - SDK for Android. [En línea] https://developers.facebook.com/docs/android/getting-started/.

TWITTER. Getting Started - Twitter Developers. [En línea] https://dev.twitter.com/docs/authhttps://dev.twitter.com/mopub/android/g....

GOOGLE. Getting Started - Google Maps Android API - Google Developers. [En línea] https://developers.google.com/maps/documentation/android-api/start.

ATLASSIAN. Git Tutorials and Training. [Online] https://www.atlassian.com/git/tutorials/

GIT. Git – Documentation. [Online] https://git-scm.com/doc

Additional Material

GENERAL
https://developer.android.com/guide/index.html
https://developer.android.com/guide/index.html
https://developer.android.com/about/dashboards/index.html

TEMA 1
https://developer.android.com/studio/index.html
http://socialcompare.com/en/comparison/android-versions-comparison
https://developer.android.com/studio/run/oem-usb.html

TEMA 2
https://material.io/guidelines/
https://developer.android.com/design/material/index.html
https://developer.android.com/training/material/index.html
https://developer.android.com/guide/topics/ui/declaring-layout.html
http://www.vogella.com/tutorials/AndroidListView/article.html
https://www.raywenderlich.com/124438/android-listview-tutorial
https://material.io/guidelines/components/snackbars-toasts.html
http://www.truiton.com/2015/06/android-snackbar-example/
https://developer.android.com/training/appbar/index.html
http://www.vogella.com/tutorials/AndroidActionBar/article.html
https://www.mkyong.com/java/java-object-sorting-example-comparable-and-c...
https://developer.android.com/guide/topics/ui/dialogs.html
https://material.io/guidelines/components/dialogs.html

TEMA 3
https://developer.android.com/guide/components/intents-filters.html

TEMA 4
https://developer.android.com/guide/components/fragments.html
https://www.pluralsight.com/blog/software-development/android-fragments
https://medium.com/@ali.muzaffar/should-i-use-fragment-or-activity-in-an...

TEMA 5
https://developer.android.com/training/basics/data-storage/databases.html
http://www.vogella.com/tutorials/AndroidSQLite/article.html#creating-and...
https://developer.android.com/guide/components/broadcasts.html
http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html
https://developer.android.com/training/basics/network-ops/connecting.html
https://developer.android.com/reference/java/net/HttpURLConnection.html
https://developer.android.com/reference/android/os/AsyncTask.html
http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html
http://www.androidhive.info/2014/05/android-working-with-volley-library-1/
https://developer.android.com/training/volley/index.html

TEMA 6
https://developer.android.com/training/location/index.html
https://developer.android.com/guide/topics/location/strategies.html
https://developer.android.com/guide/topics/location/index.html
https://developer.android.com/training/permissions/requesting.html
http://www.vogella.com/tutorials/AndroidPermissions/article.html