Prerequisite: cis345/545. Instructor: Dr. Victor Matos Office Location



Download 42.6 Kb.
Date21.06.2017
Size42.6 Kb.
#21399

Cleveland State University
CIS 470 - Mobile Application Development (3 credits). – Fall 2015
Class No. 1977 – Section 1. Mo, We, Fr. 10:15 – 11:05PM @ LB242


Prerequisite: CIS345/545.
Instructor: Dr. Victor Matos
Office Location: BU342 (Mo, Tu. & Th.) and FT223
Office Hours: Tue & Thu. BU342 04:00-06:00PM (or by appointment)
Mo BU342 11:15-01:15PM (or by appointment)
Phone:
216 687-3911
Email:
v.matos@csuohio.edu
Webpage: http://grail.cba.csuohio.edu/~matos

Class Location:
LB-242 Mo, We, Fr 10:15 – 11:05PM

Catalog Description: The course provides an in-depth review of concepts, design strategies, tools and APIs needed to create, test and deploy advanced applications for mobile phones and occasionally connected mobile devices. Topics include: design of mobile user interfaces, application life-cycle, multi-threading, inter-process communication, data persistency, content providers, background services, geo-location and mapping, networking and web services, telephony, messaging, peer-to-peer communication. The target computing environment changes overtime; currently the course explores the Android Operating System and its supporting SDK.

Student Outcomes: At the end of the course the student will be able to (1) engineer effective software systems for cell phones and other occasionally connected mobile devices based on the selected operating system, (2) understand the life-cycle mechanism of mobile software, (3) construct rich multi-threaded graphical interfaces sensitive to tactile, oral, and positional interactions, (4) manage advanced mobile data-stores, (5) integrate multimedia objects in their solutions, (6) develop location-aware applications.

Class Format: The class will be based on the instructor’s recitation of material, study of tutorials, weekly lab assignments, and individual and team oriented projects.

Final Portfolio: Students will prepare a final portfolio including all the programming assignments and projects. Material should be operational, complete, well organized and documented. Include code, screen snapshots. Print and present in a document binder (it will be returned to you). Transfer all of this material to a CD or DVD (to be retained by the instructor).

Textbook: Lecture Notes: Mobile Application Development for Android OS by Victor Matos, 2015.

References:

  • The Busy Coder's Guide to Android Development by Mark L. Murphy. CommonsWare Pub, 2014, ISBN: 978-0-9816780-0-9 (available at: http://commonsware.com/Android/index.html).

  • Android Developer’s Guides – available at: http://developer.android.com/

Official Calendar Please consult the page http://www.csuohio.edu/enrollmentservices/registrar/calendar/index.html

Final Exam: Visit: http://www.csuohio.edu/enrollmentservices/registrar/calendar/index.html

Grading: The course grade is based on a student's overall performance through the entire Semester. The final grade is distributed among the following components:
Laboratory Assignments 70% (5 to 8 assignments – Successful Completion is required for obtaining a passing grade)

Final Project 25% (to de demonstrated in class)



Final Portfolio 5% (nicely printed compilation of all projects)


A

94% +

A: Outstanding (student's performance is genuinely excellent)

A-

90% - 93%




B+

88% - 89%




B

82% - 87%

B: Very Good (student's performance is clearly commendable but not necessarily outstanding)










B-

80% - 81%

 

C

75% - 79%

C: Good (student's performance meets every course requirement and is acceptable; not distinguished)

D

65%-75%

D: Below Average (student's performance fails to meet course objectives and standards)

F

<65%

F: Failure (student's performance is unacceptable)

How to submit your homework.

  • Copy/paste your Java code and Console output into a single MS-Word (or equivalent) file. Save it as .pdf (Acrobat format).

  • Compress your code. It is found in the java workspace you defined in your computer, by default it is at c:\Users\your_user_name\workspace.

  • Add to the zip file the pdf version of your work. Name the file as follows:

HWx_FirstName_LastName.zip (where x is the current homework number).

  • Print all your code, screen shots, and additional files. Turn this package to your professor.


Software/Hardware Requirements: Android applications can be made using the Windows XP/Vista, Mac OS X (Intel only) or Linux environment. Students could (for free) download the Google Android and the Eclipse environment along with the Android Developer Tools plug-in for Eclipse.

It is not necessary to own an Android device as almost all the features to be used could be tested on the Android’s emulator.

Course Schedule: The schedule of topics and their order of coverage is given below. Every effort will be made to follow the schedule, but topics covered may vary depending upon the progress made.



Week

Chapter - Topic


1

Introduction

    1. Mobile phone evolution

    2. What is, and why Android?

    3. Android Hardware/software components

    4. Examples of built-in Intents

    5. Dissecting a simple Java+Android API application (Currency converter)

    6. Size of the mobile market – Year 2009

2

Development Environment.

Review of the Android development environment, including key tools and concepts for building apps.


2.1 Development Environment (1) Android Studio, (2) Java + Eclipse + ADT + SDK, (3) VS2015

2.2 Setup and configuration of the Android workbench

2.3 Building an Android application in Eclipse & Android-Studio

2.4 The Android Emulator – running apps and simulating telephony actions

2.5 Debugging

2.6 Login into the OS shell




3

Application’s Life Cycle

Understanding the steps followed by a typical Android app from the beginning to the end of its execution.


3.1 App’s anatomy (Activity, Service, Broadcast Receiver, Content Provider)

3.2 The ‘Activity Stack’

3.3 Activity’s life-cycle states (onCreate, onStart, onResume, onPause, onStop, onDestroy,…)

3.4 Saving state information using ‘Preferences’ storage

3.5 Example.


4-7

4,5,6,7,8,9. Graphical User Interfaces

An overview of most commonly used Android UI controls and their connecting to Java code.




  1. Android’s Model-View-Controller Pattern (MVC)

  2. The View class

  3. A brief sample of UI controls

  4. Creating XML layouts with Eclipse

  5. Common layouts: FrameLayout, LinearLayout, RelativeLayout, TableLayout, ScrollView, AbsoluteLayout.

  6. Plumbing: attaching UI components to Java code

  7. Basic Widgets: TextView, EditText, Button, ImageButton, ImageView,

  8. Example1: login screen

  9. Example2: wiring multiple buttons

  10. CheckBoxes, RadioButtons and RadioGroup widgets

  11. Appendices: DroidDraw, Asset Studio, Measuring graphic elements, customizing widgets(color, shape, background bleeding)

5. List Based Widgets

6. Fragments and Action-Bar Design Elements

7. Menus


8. WebView Apps

9. Dialog Boxes




8

10. Intents and services.

Expands on the concepts learned in chapter 3 and delves into the Android Intent concept to demonstrate interaction between screens, activities, and entire applications. Also we introduce and utilize the Service, which brings the notion of background process into discussion.


10.1 Working with Intent classes
10.2 Listening in with broadcast receivers
10.3 Building a Service
10.4 Performing Inter-Process Communication

9

11. Multi-Threading

11.1 Concurrency control


11.2 Creating and executing Treads
11.3 Classic Java JDK Monitors (Mutex)
11.4 Java JDK ReadWriteLocks
11.5 Java JDK Semaphores & BlockingQueues.
11.6 Advantages / Disadvantages of Multi-Threading
11.7 Android’s Native Strategies for Execution of Slow Activities
11.8 Android’s Handler class
11.9 Android’s Handler-Message Protocol (Messages & Runnables)
11.10 Using the AsyncTask Class


10

12 & 13. Storing and retrieving data: Files, SharedPreferences, Databases

12.1 Using SharedPreferences

12.2 Using the file-system
13.1 Using SQLite Databases


11-12

14, 15, 16. Networking and Web-Services.

14. Processing XML and JSON Encoded Data

14.1 Overview of XML

14.2 Strategies for Reading/Parsing an XML File

14.3 SAX-Parsing of a Resource KML File

14.4 The W3C DocumentBuilder Class

14.5 JSON encoding
15. Consuming RSS Feeds: Reading Internet Data

15.1 Crafting an RSS reader


16. Consuming Web Services Using SOAP and REST Apps

16.1 Advantages of Using the WebService Architecture

16.2 Example1: Android SOAP-Client Consuming C#.NET Webservices

16.3 Example2: Using an Android REST-based Client + PHP Webservices

16.4 Example 3: Android REST consuming Java ServLet Webservices


13

17. Android Background-Services

17.1 Broadcast Receiver Lifecycle


17.2 Types of Broadcasts
17.3 Example1: Simple Broadcaster (no IPC)
17.4 Example2: Interaction between Broadcaster and Receiver
17.5 Example3: An App Connected to Multiple Background Services
17.6 Example 4. Music Player
17.7 Example 5. Slow Fibonacci Number Generator


14

18. Notifications

18.1 Examples



14

19. Location Based Services

19.1 How does the Global Positioning System (GPS) Works?

19.2 2D Trilateration

19.3 3D Trilateration

19.4 Cell Tower Triangulation

19.5 Android Location Classes

19.6 Example1: Obtaining Location from GPS


15

20. Google Maps Android API V2
20.1 Google Maps API Key

20.2 Example1: Hello GoogleMap

20.3 Example2: Using the Geocoder class

20.4 Example3: Using Reverse Geocoding



20.5 Example4: Using GroundOverlays







Download 42.6 Kb.

Share with your friends:




The database is protected by copyright ©ininet.org 2024
send message

    Main page