Published using Google Docs
android_2014_09
Updated automatically every 5 minutes

Android Java Applications (September 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 (abelski.lifemichael.com)

Comments

1

2/9/2014

Procedural Programming

Developing Java SE Applications 
Let’s Start
The Basic

1. towards next meeting please read the texts and watch the relevant video clips in www.javabook.co.il in the following topics:
הקדמה

יסודות השפה

אובייקטים ומחלקות

2. towards next meeting please complete and submit all assignments  (levels 1,2) in abelski ‘developing java se applications’ course… in topics:
let’s start

the basics

3. towards next meeting please watch the following video clip (although it is in php it is a pretty good intro for oop):
https://www.youtube.com/watch?v=PHlcxlC6LoU 

2

9/9/2014

Object Oriented Programming

Developing Java SE Applications
Introduction to OOP
Object Oriented Programming

1. towards next meetign please compelte all assignments level 1 + 2 in topic Object Oriented Programming (except those assignments that refer the topics: static methods, static variables, enum)

2. towards next meeting please go over the texts and the video clips about strings and arrays at http://www.javabook.co.il.

3

16/9/2014

on 23/9/2014 we don’t have a meeting

Arrays & Strings

Developing Java SE Applications
Arrays & Strings

Object Oriented Programming (static members from page 25 in the slides)

1. towards next meeting please complete all level 2 assignments in topic arrays & strings (except for those assignments that require you to pass arguments to main using the command line).

2. please get ready for inheritance by watching the video clips about inheritance at
www.javabook.co.il.

3. in order to strength your understanding in oop please complete the tricky questions listed at the following links (you should submit your score only):
http://www.zindell.com/books/prep/q3.pdf 
http://www.zindell.com/books/prep/q4.pdf 
answers with detailed explanations can be found at:
http://www.zindell.com/books/prep/a3.pdf 
http://www.zindell.com/books/prep/a4.pdf 

4

30/9/2014

Inheritance

Developing Java SE Applications
Inheritance

1. please watch all video clips about inner classes at www.javabook.co.il.
מחלקות פנימיות

2. please complete all level 1 assignments in the inheritance topic.

5

7/10/2014

please note the lessons on the following dates won’t take place:
14/10/2014
21/10/2014

Inner Classes


Exceptions

Developing Java SE Applications
Inner Classes
Exceptions Handling

1. please complete all level 2 assignments in the inheritance topic.

2. please complete the tricky questions about inheritance and please submit a summary that specifies the number of questions you succeeded to solve.
http://www.zindell.com/books/prep/q5.pdf 

http://www.zindell.com/books/prep/a5.pdf 


3. please complete all assignments (level 1,2 only) in inner classes and exceptions handling (all levels) topics.

4. please complete the tricky questions about inner classes and please submit a summary that specifies the number of questions you succeeded to solve.
http://www.zindell.com/books/prep/q6.pdf 

http://www.zindell.com/books/prep/a6.pdf 

5. please complete the tricky questions about exceptions handling and please submit a summary that specifies the number of questions you succeeded to solve.
http://www.zindell.com/books/prep/q11.pdf 

http://www.zindell.com/books/prep/a11.pdf 

6. towards next meeting please watch the following video clips in order to come ready to class:

threads

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

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

generics

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

i/o streams

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

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

collections

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

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

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

 6

28/10/2014

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. in generics topic (introduction) please complete the following assignments:
simple generics sample
simple linked list
address book

2. in collections topic(introduction) please complete the following assignments:
simple for each
simple iterator
students comparator

3. in collections topic (map) please complete:
simple hashmap assignment

4. in i/o streams please complete the following assignments:
file length
file delete
file exist
simple list
reverse order copy
You can learn about the File class using the video clip at
http://javabook.co.il/wp/?p=284 

5. in threads please complete the following assignments:
left right threads
bonga kapona threads

6. towards next meeting please try to follow the clip at
http://androidbook.co.il/wordpress/?p=26 and write your first android application.Make an effort to do it twice. We want to master both the Android Studio (IntelliJ) and the Eclipse IDE.

7. towards next meeting please go over the slides at
http://www.abelski.com/courses/android/introduction.pdf 

8. i also recommend on bringing your android devices and try running your apps on them.

9. please go over all topics we covered in our first six meetings and please come ready with specific questions about those topics. If there is a topic for which a video clip can assist please let me know.

7

4/11/2014

Activities

Android Fundamentals
Introduction

1. towards next meeting please go over the slides and watch the video clips of the resources topic.

2. please complete the ‘simple lotto numbers’ assignment.
http://www.abelski.com/moodle/mod/assignment/view.php?id=7042 

3. please complete the ‘simple calculator’ assignment.
http://www.abelski.com/moodle/mod/assignment/view.php?id=7043 

4. please complete the ‘road prayer’ assignment.
http://www.abelski.com/moodle/mod/assignment/view.php?id=7308 

please save the prayer text into the assets folder. please start with displaying the prayer in english…. when completing this requirement try to display the text in hebrew (tip: you can use the InputStreamReader class for translating from UTF-8 into Unicode).

8

11/11/2014

Resources

Android Fundamentals
Resources

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

2. please complete in the ‘resourcs’ topic the following assignments:
a. Simple Countries List (now)
b. Friends Names
c. ListActivity Countries
d. Assets Files

9

18/11/2014

Intents

Android Fundamentals
The Intent Concept

1. Towards next meeting please complete the following assignments:
a. Favorite Links
b. Phone Number Calling
c. Mambo SMS
d. From One Activity to Another

10

25/11/2014

User Interface

Android Fundamentals
User Interface Controls
The Intent Concept (Flags)


1. please complete in 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 following assignments:
a. Auto Complete Country
b. Basic Calculator Image Buttons

11

2/12/2014

User Interface

Android Fundamentals
Layout Managers
Basic Graphics
Localization
Debugging

1. towards next meeting please install the android studio on your laptop.

2. please complete the Simple Calculator assignment.

12

9/12/2014

finish @21:00

User Interface

Android Fundamentals
Menus & Dialogs
Development Tools

Customized Views

1. please complete the Simple Calculator assignment (you should add a popup window or an alert for your solution from the previous meeting).

2. towards next meeting please install the android studio (version 1.0) on your laptop. please watch the video clip about lambda expressions at
http://javabook.co.il/wp/?p=637.

3. please complete Simple Menu assignment.  

13

16/12/2014

finish @22:20

Life Cycle






Android Studio

Android Fundamentals
SharedPrefereces (Part 1)
Activity Life Cycle
Device Rotation
Introduction (Android Tasks)

Android Studio
Introduction
Migrating from Eclipse
Lambda Expressions
Debugging
Code Layous

1. towards next meeting please complete lotto numbers tiny project following phases:
#1, #2, #2.5

14

23/12/2014

finish @22:20

Fundamental Topics

Android Fundamentals
Graphics Animation
Files
Touch Screen

1. please go over the slides and video clips of the activity fragments topic. http://www.abelski.com/courses/android3ui/activityfragments.pdf 

2. in the files management topic please complete:
a. simple note *

* you can take the simple note assignment and improve it in the following way:
you add an activity that shows a list of all notes currently saved. when the user selects a specific note a new activity is opened.. that activity will show an edit text with the note itself and smaller edit text with the name of the note. on the bottom there will be a “save” button. pressing that button saves the note and takes us back to the list of all notes. the activity that shows the list of all notes will also include a button the user can press in order to get the other activity (the activity that allows you to enter or edit the data of a note).




3. in the graphics animation topic please complete:
a. simple list animation
b. slideshow animation

15

30/12/2014

finish @22:20

User Interface

Android Fundamentals
OpenGL Graphics
Web View

Adapters
Media Framework

1. please complete ‘tel-aviv tourist guide’ tiny project.

16

6/1/2015

Web Services
Threads

Android Fundamentals
Android Threads
Web Services


link to the additional slides about restful web services:
http://www.abelski.com/courses/rest/rest_introduction.pdf 

http://www.abelski.com/courses/rest/rest_constraints.pdf 
http://www.abelski.com/courses/rest/rest_characteristics.pdf 

check the table at
http://en.wikipedia.org/wiki/Representational_state_transfer 

1. towards next meeting please complete the ‘currency exchate rates’ tiny project phases #1 #2

17

13/1/2015

User Interface

Database
Security
Memory
Services

Android Fundamentals
SqliteDatebase
Memory Management

Android Services (Local)

1. towards next meeting please go over the code sample (and the material itself) for android remote service. please watch the video clip that explains this code sample @ https://www.youtube.com/watch?v=Fdk2pHU0o9c 

2. please start working on phase #2 of the ‘passwords application’ (on going project). please develop a class that extends SqliteOpenHelper that includes methods for adding a new password, deleting a  password, updating a password and getting a list of all passwords.

3. please execute the code samples for local service and for remote service.

18

20/1/2015

Content Providers

Android Fundamentals
Content Provider
Android Security Model
Dalvik VM
Android Services (Remote)

1. please complete phase #2 in the passwords ongoing project.

19

27/1/2015

meetings on
3/2/2015
10/2/2015
won’t take place

Broadcast Receivers
Telephony

Android Fundamentals
Broadcast Receivers

Telephony

Android  Unified UI
Activity Fragments

1. please complete phases #3  #4  #4.5  in the currency exchange tiny project.

2. please complete the flash light application phases #1  #3

3. please execute the code sample in broadcast receiver topic.

4. please complete ‘device id’ assignment in topic introduction.

20

17/2/2015

finish @22:15

Camera
User Interface

Android Fundamentals
Styles
Sensors
Java Language
Java Language

Vibration

Text to Speech
SMS Messages
SMS Messages
Speech Input  

1. complete phase #3 in lotto numbers tiny project.

2. complete phase #1 in list of sensors tiny project.

3. complete phase #1 #2 in light sensor application tiny project.

4. execute the text to speech code sample shown in our slides.

5. please complete the SMS to Voice application.

21

24/2/2015

meeting ends at 2130

User Interface

Android Fundamentals
Live Wallpapers
Camera

App Widgets Development
Introduction
Basic App Widget
Configuration Activity
Design Guidelines

0. please execute each one of the code samples for calling the camera activity (in Camera topic).

1. towards next meeting please complete phase #5 of the currency exchange rate titiny project.

2. towards next meeting please complete Da Vinci Live Wallpaper tiny project.

22

3/3/2015

meetings ends at 2215

User Interface

Android Fundamentals
Location Based Service (maps)
SharedPrefereces

Android User Interface
User Notifications
Action Bar

1. please develop a simple application that displays a map. the application should use google maps api v2.

2. please complete phase #4 in the lotto numbers tiny project.

23

10/3/2015

meeting ends at 2215

on 17/3/2015 we are going to have elections

Camera
WiFi
Search
Bluetooth
Networking

Android Fundamentals
Android Search
WiFi Connectivity
Networking

Developing Java SE Applications
Networking


Material Design
Introduction
Basics
Material Theme
UI Widgets

Android User Interface
User Interface Widgets
Drag & Drop

1. please complete the ‘corporate chat’ tiny project phases 0, 1, 2 and 3.

2. complete the passwords application till phase 9.

24

24/3/2015

finish @22:15

Testing







Google TV

The JUnit Framework
Introduction
Eclipse & JUnit


Android Testing
Introduction
Jump Start

Google TV Basics
Introduction
Google TV Features
User Interface

1. please complete phase 6 in the lotto numbers tiny project.

25

31/3/2015

7/14/2015 is passover

WiFi Direct




Near Field Communication  

WiFi Direct Basics
Introduction
The Receiver
Wrap Up as Application

Near Field Communication
Introduction
Jump Start
Manifest File
Intent Dispatching System

Android Fundamentals
Bluetooth

1. please develop a simple application that shows all peers around you (wifi direct). you can follow the slides code samples.

26

28/4/2015

meeting on 21/4/2015 doesn’t take place. it is yom azicaron.

Robotium



Inapp Billing



Analytics



Robotium Basics
Introduction
Jump Start


Google inApp Billing Basics

Introduction
Jump Start

Google Analytics for Android
Introduction
Jump Start

Android User Interface
Activity Fragments

1. execute the robotium code sample on your end.

2. set up an account on google analytics for one of your applications.

27

5/5/2015

Renderscript



Google Cloud Messaging



Alarm Manager Basics

Rendering Basics
Introduction
Jump Start  

Google Cloud Messaging Basics
Introduction
Jump Start

AlarmManager Basics
Introduction
Jump Start

 28

12/5/2015

Input Method Framework



Applications Analysis & Design

Input Method Framework Basics
Introduction
Jump Start


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.