Published using Google Docs
android_2014_07
Updated automatically every 5 minutes

Android Java Applications (July 2014)

This course focuses on software applications development for the android platform using the Java programming language. This course includes 140 academic hours organized in four parts. The course was developed for people with background in software development. The course doesn’t assume any previous knowledge in OOP. The training material is organized in online courses available through the elearning platform we use during the course. If you are a bit confused and not sure whether this course is for you or maybe you should take the HTML5 Cross Platform Mobile applications course it is highly recommended that you watch the Android Jump Start video clip. This video clip overviews today approaches in software applications development for mobile telephones in general and focuses on the android platform.


Programming in Java (First Part)
This part covers all topics we must be familiar with when writing code in Java for the Android platform. We focus on OOP and especially the use of Inner Classes. During this part we also start with a short warm up for the Android platform and start writing our first simple applications. (30 academic hours)

Fundamental Topics (Second Part)

This part focuses on the main components each android application is composed of, including activities, services, broadcast receivers and content providers. The pace in beginning of this part is a bit slower comparing with the next parts of the course in order to allow the students getting the required solid understanding in the Java programming language. (85 academic hours)

Advance Topics (Third Part)

This part covers advanced topics their understanding is based on a solid understanding for the android application components and the android platform in general. (20 academic hours)

Analysis & Design using UML (Fourth Part)

This part covers the usage of UML, SysML and SoaML in the process of applications development for the android platform. We go over the available diagrams and their notation and we do it by going through practical examples in the context of the android platform. (5 academic hours)

Meeting

Date

Topic

Online Course

Comments

1

10/7/2014

Procedural Programming

Developing Java SE Applications
Let’s Start
The Basic

1. strongly recommended to watch the ‘java jump start’ and the ‘android jump start’ lectures:
https://www.youtube.com/watch?feature=player_embedded&v=3134yXe5PQ4 
https://www.youtube.com/watch?feature=player_embedded&v=eMmYmZ9UVTc 

2. please install the required software on your computer (according to the published topic in our group).

3. specifically for the oop topic next meeting i strongly recommend on watching the video clip https://www.youtube.com/watch?feature=player_embedded&v=PHlcxlC6LoU.

4. towards next meeting please watch the video clips (in hebrew) at www.javabook.co.il in the following topics:
הקדמה
יסודות השפה
מחלקות ואובייקטים

5. towards next meeting you should complete and submit all assignments (level 1 and 2)  in topic “the basic” and “lets start” at
haim.michael.homework@gmail.com as explained in our google group.

2

17/7/2014

Object Oriented Programming

Developing Java SE Applications
Introduction to OOP
Object Oriented Programming

1. please complete all assignments (level 1,2) in topic ‘object oriented programming’.

2. towards next meeting please watch the video clips in topic arrays & strings at www.javabook.co.il. no need to watch the
שליחת ארגומנטים לתכנית video clip.

3

24/7/2014

Arrays & Strings

Developing Java SE Applications
Arrays & Strings

1. towards next meeting please complete the assignments level 1+2 in topic arrays & strings.

2. towards next meeting please watch the video clips about inheritance in
www.javabook.co.il.

3. towards next meeting please go over the inheritance slides. the official slides in abelski.

4

31/7/2014

Inheritance

Developing Java SE Applications
Inheritance

1. towards next meeting please get ready for the inner class topic. please watch the video clips about inner classes at www.javabook.co.il. please watch all video clips in this topics. highly important.

2. please complete and submit all assignments in topic ‘inheritance’.

5

7/8/2014

Inner Classes


Exceptions

Developing Java SE Applications
Inner Classes


Developing Java SE Applications
Exceptions Handling

1. please complete assignmetns level 1 and 2 in topics “inner classes” and “exceptions handling”.

2. towards next meeting please watch the video clips:
http://javabook.co.il/wp/?p=108

http://javabook.co.il/wp/?p=111

http://javabook.co.il/wp/?p=156

http://javabook.co.il/wp/?p=284

3. towards next meeting (as part of our android warming up) please develop a simple hello world following the clip at http://androidbook.co.il/wordpress/?p=26 

6

Threads


I/O Streams


Generics


Collections

Developing Java SE Applications
Threads

Developing Java SE Applications
I/O Streams

Java SE Generics Introduction
Introduction

Java SE Collections Framework
Introduction

1. towards next meeting please get ready with developing hello world on android by yourself. u can find video clips… at www.androidbook.co.il.

2. in topic threads please complete the following assignments:
Left Right Threads
Bonga Kaponga Threads

3. in topic streams please complete the following assignments:
File Length
File Exist

4. in topic collections (subtopic ‘introduction’)  please complete the following assignemnts:

Simple Iterator
Simple ForEach

5. those who want to move forward… getting to the highest possible level… i recommend start doing the tricky questions at http://www.abelski.com/moodle/course/view.php?id=3 in the following topics:
Object Oriented Programming

Strings & Arrays

Inheritance

Inner Classes

Threads *
I/O Streams *
Exceptions Handling

7

21/8/2014

Activities

Android Fundamentals
Introduction

1. towards next meeting please complete the following assignments:
in topic ‘introduction’:

lotto numbers

simple calculator
in topic ‘resources’:

road prayer

8

28/8/2014

Resources

Android Fundamentals
Resources

1. please go over the texts and watch the video clips about intents… both at abelski.lifemichael.com and at www.androidbook.co.il. those who have strict time limits please at the minimum watch the 2 video clips about intents at www.androidbook.co.il.

2. please complete the following assignments in the resources topic:
a. listactivity countries

b. simple countries list

c. assets files
d. android logo in webview

3. please start workin on phase #1 in the lotto numbers tiny project.

9

4/9/2014

Intents

Android Fundamentals
The Intent Concept

1. towards next meeting please complete the following assignments:

a. phone number calling
b. mambo sms
c. favorite links

2. towards next meeting please go over all topics covered so far and please come ready with questions… specific topics that need a second explanation.

10

11/9/2014

User Interface

Android Fundamentals
User Interface Controls

1. towards next meeting please complete all assignments in the User Interface Controls topic.

11

18/9/2014

User Interface

Android Fundamentals
Layout Managers
Introduction (Tasks)
User Interface Controls (GridView)
Resources (Dimension Resources, Color State List Resource)

1. towards next meeting please complete the lotto numbers phase #1.

2. towards next meeting please go over the post (in our group) named “points to pay attention to when coding in java” and list questions for unclear points so we could discuss them in class.

12

2/10/2014

please note the following meetings won’t take place:
9/10/2014
16/10/2014
23/10/2014

User Interface

Android Fundamentals
Menus & Dialogs
Device Rotation
Localization
Basic Graphics


1. please get ready for the activity life cycle topic by watching the video clip at http://androidbook.co.il/wordpress/?p=81 

2. please complete in lotto numbers phase #2 and phase #2.5.

3. please complete all assignments in the menus and dialogs topic.

4. please complete the assignments in basic graphics.  

13

30/10/2014

Life Cycle

Android Fundamentals
SharedPreferences (till fragment preferences)
Activity Life Cycle
Debugging

Activity Data
Java Language

1. please complete in lotto numbers phase #2 and phase #2.5.  

2. please complete the ‘camera activity’ assignment. (tip: you can find relevant code samples to learn from at
http://www.abelski.com/courses/android/camera.pdf)

14

6/11/2014

Fundamental Topics

Android Fundamentals
Touch Screen
Development Tools
Customized Views

Adapters
Files

1. please complete the topic ‘introduction’ the following assignments:
a. the finish method
b. date to date calculator
c. karmic number calculator


2. towards next meeting please watch the android jump start lecture video at
https://www.youtube.com/watch?v=eMmYmZ9UVTc. (curious about phonegap…? u can get a jump start at https://www.youtube.com/watch?v=QVde5pZtMnM).

3. please complete in ‘files management’ topic the ‘simple countries list’. please use the DOM parser (you can find a video clip that explains how to use the DOM parser at
http://www.lifemichael.com/en/2012/07/xml-dom-parsing-in-java-pro/ please note the code sample doesn’t work today.. twitter changed their api).

4. please complete in ‘files management’ topic the ‘simple note’ assignment.

15

13/11/2014

User Interface

Android Fundamentals
Media Framework
Web View

Graphics Animation
OpenGL Graphics
Vibration

1. please complete the topic ‘user interface controls’ the following assignments:
a. Installed Applications Packages Assignment
b. ListView of System Properties

2. please complete in topic ‘introduction’ the following assignments:
a. the build version
b. Device ID Assignment
c. Minimum SDK Version

3. please complete the Tel Aviv Tourist Guide tiny project.

4. please develop in topic ‘animation’ the ‘slideshow animation’ assignment.

5. please complete in topic ‘web view’ the ‘bmi form’ assignment (this assignment is for students who are familiar with forms in html).

16

20/11/2014

Web Services
Threads

Android Fundamentals
Android Threads
Web Services
Styles

1. towards next meeting please complete currency exchange rate tiny project phases: 1,2,3.

17

27/11/2014

Database
Security
Memory
Services

Android Fundamentals
SqliteDatebase
Android Security Model


1. please complete the passwords ongoing project phase #2 (please don’t develop the content provider at this stage… just define the class that extends SQLiteOpenHelper and write a simple activity for testing the class.

2. towards next meeting make sure you go over the code sample and the slides for the remote service topic. please execute the remote service code sample you can find in the slides and please make sure you watch the video clip that explains it @
https://www.youtube.com/watch?v=Fdk2pHU0o9c.

3. please get ready for the content provider topic. developing a new content provider is a very complex topic. please make sure you go over the slides in advance.

18

4/12/2014

Content Providers

Android Fundamentals
Content Provider
Android Services (local service)

1. towards next meeting please install the android studio on your laptop. we will overview this new ide.

2. please complete phase #2 and phase #3 in the passwords application (on going project).

3. please complete phase #4 in the currency exchange rate application (tiny project).

19

11/12/2014

Broadcast Receivers
Telephony

Android Fundamentals
Broadcast Receivers
SMS Messages
Content Provider (answering unresolved questions)
Android Services (remote service)

1. please complete the SMS to Voice application (both phases).

20

18/12/2014

User Interface

Android Fundamentals
Sensors

Android  Unified UI
Activity Fragments
User Interface Widgets
Action Bar
User Notifications
Drag & Drop

1. please complete list of sensors tiny project, phases #1 #2.

2. in the passwords application on going project please complete phases #0, #1, #2, #3 and #4

3. please complete phase #3.5 in the lotto numbers tiny project.

21

25/12/2014

User Interface

Android Fundamentals
Camera

App Widgets Development
Introduction
Basic App Widget
Configuration Activity
Design Guidelines

1. please complete phase #5 in currency exchange rate tiny project.

2. please complete flashlight application tiny project.

22

1/1/2015

on 8/1/2015 we won’t have a meeting

User Interface

Android Fundamentals
Telephony
Live Wallpapers
Memory Management

1. please complete the Da Vinci Wallpaper tiny project, phases #1, #2 and #3.

23

15/1/2015

WiFi
Search
Bluetooth
Networking

Android Fundamentals
Android Search
Bluetooth
WiFi Connectivity
Networking

Runtime Environment (Art + Dalvik)

Developing Java SE Applications
Networking

1. please watch the short video clip (in hebrew) that summerizes the tcp/ip client server topic @ http://javabook.co.il/wp/?p=193 

2. please complete the assignments in the bluetooth topic (solutions are provided online).

24

22/1/2015

Quality Assurance











In App Billing



Analytics



Android Fundamentals

Android Testing
Introduction
Instrumentation
JUnit Framework

On Device Testing
Remote Testing

JUnit Framework
Introduction
Eclipse & JUnit
Assertions

Robotium Basics
Introduction
Jump Start

Google inApp Billing Basics

Introduction
Jump Start

Android Fundamentals
Speech Input  
Text to Speech

1. please run the text-to-speach sample application on your device. please complete the sms-to-voice tiny project.
2. a. execute the code sample in robotium. b. please add one more test for testing the minus operation.

3. a. execute the code sample for unit testing using the instrumentation framework.
b. select one of the tiny projects we did so far and add unit tests (both simple classic tests and instrumentation based tests).

4. towards next meeting please go over the corporate chat tiny project document. without coming ready to class it would be impossible to understand this assignment requirements.

25

29/1/2015

Near Field Communication  

Near Field Communication
Introduction

Google Analytics for Android
Introduction
Jump Start

1. please complete the corporate chat tiny project (phases #1 #2 #3).

2. select one of the tiny projects you developed so far and add the required code in order to track it using google analytics.  

26

5/2/2015

on 12/2/2015  we won’t have a meeting

Android TV




Wifi Direct




Renderscript



Google Cloud Messaging

Android TV Basics
Introduction
Jump Start
User Interface Design

Rendering Basics
Introduction
Jump Start  

Google Cloud Messaging Basics
Introduction
Jump Start

1. please complete phase #6 in the ‘currency exchange rates’ tiny project.

27

26/2/2015

this meeting will end at 22:20

Material Design





Android Fundamentals



Android Fundamentals


NFC

Material Design
Introduction
Basics
Material Theme
GUI Components

Android Fundamentals
Location Based Services (+Google Maps)
SharedPreferences (fragment preferences)


Android Fundamentals

Input Method Framework

Near Field Communication
Jump Start
Manifest File
Intent Dispatching System

1. Develop a simple application that shows a map using the Android Google Maps API v2.

2. Execute the simple code sample for using NFC. You can find it within the NFC Introduction topic (samples folder).

3. Select one of the application you developed so far and implement the material design in its user interface.

4. Execute the code sample for the Input Method Framework.

5. Execute the PreferencesFragment code sample.

6. Complete LottoNumbers phases #4 #5 #6 #7

 28

12/3/2015


Wifi Direct




Applications Analysis & Design

WiFi Direct Basics
Introduction
The Receiver
Wrap Up as Application


UML 2.X Fundamentals
Introduction
General Guidelines
Basic Elements
Use Case Diagram
Class Diagram
Activity Diagram
Deployment Diagram
Package Diagram
Object Diagram
UML Tools

SysML Fundamentals
Introduction
System Modeling
Requirements Diagrams

SoaML Fundamentals
Introduction
Notation

November 6th, 2013

The Loader sub-topic was added to the Android User Interface topic.