Videos
Tools & Code
- IntelliJ: Free IDE for developing Java applications; get Community Edition. Works under most PC OS's. Only used for assignment 1.
- Android Studio: Free tool based on IntelliJ for developing Android applications. Works under most PC OS's.
- Suggested Java code style guide.
- Intro Java chapter if you want a brief guide to Java for programmers.
Special thanks to Dr. Brian Fraser for the video tutorials below. I highly recommend them as a first stop for learning about the programming skills required for this course.
Android Tutorials
Basic Android Videos
- Creating a button: Create simple project and add a button calling Log and Toast.
- (old video using Eclipse) Creating a button.
- TextView and strings.xml: Move text to strings.xml, use Java to access string and display on TextView.
- Debugging in Android Studio
- Switching activities in Android Studio. Here is a previous version of this video..
- Floating Action Button & Material Design icons
- Constraint Layout
- Old video on nesting UI Layouts.
- Forcing activity orientation (to portrait or landscape mode).
- UI & model separation: Separate business logic (Java classes) from the UI (Activities); a pet rock.
Highly recommended! - ImageButton.
- Resource by Name: accessing a resource (image) by its name, not its ID.
- Context menu.
- Trouble shooting: resource problems, Java problems, cleaning a project, and working with R file problems.
- ListView: basic ListView with text (from an Array).
- Complex ListView: ListView with text and images from an list of objects (https://github.com/drbfraser/video-tutorial-code/tree/master/DemoListView_Complex)).
- Passing data to an Activity using Extras in an Intent. [Old video]
- Returning data from an Activity using Extras in an Intent. [Old video]; source code.
- SharedPrefernces and TextView.
- Dynamic Buttons and Images: populating a table of buttons at runtime and setting text and images on the buttons. source code
- Radio Buttons: build radio buttons from data in a resource file.
- Options Screen: create custom options/settings screen with SharedPreferences.
- SharedPrefernces and TextView.
- Dialog (AlertDialog): create a custom AlertDialog and interacting with parent Activity.
-
Read CSV file: Read in a CSV file from the raw resource directory into Java objects.
- Google Maps API Getting Started: Getting an API key and app showing map.
- Google Maps API v2: Getting started, and moving the camera. Source code.
-
Intro to Google Maps API tutorial.
Internationalization: Translating to multiple languages
- Demo code for database operations and internationalization
- Create a Pie Graph: Using the MPAndroidChart library, create a pie graph.-->
Database on Android
- SQLite database: simple example
- DB to ListView: Populate a complex ListView with text & image IDs from the SQLite database
- Demo code for database operations and internationalization
Testing
- JUnit 5: Setting up IntelliJ Java Project
- JUnit 5: Testing
- JUnit 4 in IntelliJ: Quick introduction (not Android specific).
- JUnit 4 with Exceptions and Ignore (not Android specific).
- Creating a Java project for JUnit 3 (not Android specific).
- Creating a Robotium test project.
Intro Java Programming
- Basics: main(), functions, if, for loop
- Data class (fields, constructor, toString()...)
- ArrayList and For-Each loop
- Model/View Separation
Revision Control
Git Videos
- Android Studio / IntelliJ
- Git in Android Studio: Creating a GitLab repo, SSH key, and initial push of code.
- Clone Git repo in Android Studio: Cloning an existing Git (or GitLab) repo via Android Studio.
- Git Merge Conflicts in Android Studio: Resolving merge conflicts.
- GitLab workflow with Merge Request: Creating an issue, feature branch, switching branches, commit/push, merge request.
- GitLab workflow with Conflicting Changes: Resolving conflicting changes before submitting a merge request in Android Studio with GitLab.
Miscellaneous Videos
- Run Java JAR from IntelliJ Terminal: How to make a Jar file in IntelliJ, then run it via built-in terminal with external dependencies.
- Deserializing JSON with GSON: What is JSON and how to deserialize a file.
- Running a Java application from the IntelliJ build-in terminal.