AND102 - Introduction to Java Programming for Android Developers (5 days)
Course Outline
This course is for those who have relatively little programming experience and who would like to be able to develop Android applications. This course aims to provide a sound introduction to Java programming that will equip those completing the course with the necessary skills to develop Android applications and to understand how to program using the Android development framework. The Java programming skills learned on this course will also be applicable to studying Java programming for Java enterprise application development.
Prerequisites
Attendees are expected to have some programming experience such as might have been learned by writing PHP programs or Javascript programs in the context of web application development, or possibly shell programming. An awareness of object oriented programming would be helpful.
Course Contents
Programming Languages - An overview
- Interpreted vs. compiled programming languages
- Procedural, declarative and object oriented languages
The essential building blocks of any programming language - and associated Java syntax
- Data types
- Functions and procedures
- Passing arguments to functions - by reference or by value
- Sequence
- Choice
- if .. else, switch
- Iteration
- while and do .. while loops
- for loops
The essential aspects of object oriented programming
- Classes and objects
- Creating objects and calling methods
- Inheritance
- Polymorphism
- Accessibility - private, public and protected
- State
- Object interactions
The Android Studio and IntelliJ IDEs (Integrated Development Environment)
- Creating Java and Java Android projects
- Editing and compiling Java code
- Running applications
- Java Archive (JAR) files
- The importance of testing
- The importance of version control
Basic Data Types
- Numeric types - character and integer types, floating point number types
- Arrays
- References
Basic Terminal Input and Output
- Keyboard input
- Output to the screen
Java classes
- Java application class
- Using Java classes within an application
- Instance variables
- Creating and using instances of classes
- String class
- Method overloading
- Arrays
Simple Introduction to UML
- Overview of UML notation
- Class diagrams
- Interaction diagrams
- Sequence diagrams
- Use case diagrams
More advanced classes and programming
- Subclassing and inheritance
- Overriding methods
- Static methods
- Final methods
- Exceptions and exception handling
- Casting
- Superclass constructors
- Abstract methods and interfaces
- Packages and compilation units
- Access modifiers
- Inner classes
- Inner classes within methods
- Scope and scoping
An introduction to collections
- Motivation and underlying concepts
- Creating and using collections
- Different collection types - arrays, lists, sets and maps
An introduction to Java threads
- Concept of threads
- Java threads vs. operating system threads
- Creating and using threads
- Communication between threads
- Thread synchronisation
Basics of GUI programming
- Event driven programming
- Android User Interface (UI) elements - buttons (radio, check, popup) , dialogs - modal and non-modal, canvases, menus
- Layout
- Describing user interfaces in XML in Android
- Overview of the Java Swing GUI API
- Comparing the Android GUI API with the Java Swing GUI API