CEIS320 Mobile Programming

(DV-CEIS320.AJ1)
Lessons
Lab
AI Tutor (Add-on)
Get A Free Trial

Skills You’ll Get

1

Beginning Android and Java

  • Technical requirements
  • What's new in the third edition?
  • Why Java and Android?
  • The beginner's first stumbling block
  • How Java and Android work together
  • Setting up Android Studio
  • What makes an Android app?
  • The structure of Android's Java code
  • Building our first Android app
  • Deploying the app so far
  • Frequently asked questions
  • Summary
2

First Contact: Java, XML, and the UI Designer

  • Examining the logcat output
  • Exploring the project Java and the main layout XML
  • Adding buttons to the main layout file
  • Leaving comments in our Java code
  • Coding messages to the user and the developer
  • Writing our first Java code
  • Frequently asked questions
  • Summary
3

Exploring Android Studio and the Project Structure

  • Project Explorer and project anatomy
  • Exploring the file and folder structure of the Empty Activity project template
  • Exploring the file and folder structure of the Basic Activity project template
  • Exploring a Basic Activity project
  • Exploring the Android emulator
  • Summary
4

Getting Started with Layouts and Material Design

  • Finding out about Material Design
  • Exploring Android UI design
  • Introducing layouts
  • Building a precise UI with ConstraintLayout
  • Laying out data with TableLayout
  • Linking back to the main menu
  • Summary
5

Beautiful Layouts with CardView and ScrollView

  • Attributes quick summary
  • Building a UI with CardView and ScrollView
  • Creating a tablet emulator
  • Frequently asked question
  • Summary
6

The Android Lifecycle

  • The life and times of an Android app
  • How Android interacts with our apps
  • A simplified explanation of the Android lifecycle
  • How we handle the lifecycle phases
  • Lifecycle demo app
  • The structure of Java code – revisited
  • Introducing fragments and the lifecycle
  • Summary
7

Java Variables, Operators, and Expressions

  • Java is everywhere
  • Understanding Java syntax and jargon
  • Storing and using data with variables
  • Using variables
  • Changing values in variables with operators
  • Trying out expressions
  • Summary
8

Java Decisions and Loops

  • Making decisions in Java
  • Switching to make decisions
  • Repeating code with loops
  • for loops
  • Loops demo app
  • Summary
9

Learning Java Methods

  • Methods revisited
  • Method structure
  • Using method demo apps
  • Exploring method overloading
  • Scope and variables revisited
  • Method recursion
  • Questions
  • Summary
  • Further reading
10

Object-Oriented Programming

  • Important memory management warning
  • Object-oriented programming
  • Looking at the code for a class
  • Basic classes app
  • Frequently asked questions
  • Summary
11

More Object-Oriented Programming

  • Remember that encapsulation thing?
  • Static methods
  • Encapsulation and static methods mini-app
  • OOP and inheritance
  • Inheritance example app
  • Polymorphism
  • Frequently asked questions
  • Summary
12

The Stack, the Heap, and the Garbage Collector

  • All the Android UI elements are classes too
  • Inner and anonymous classes
  • Frequently asked questions
  • Summary
13

Anonymous Classes – Bringing Android Widgets to Life

  • Declaring and initializing the objects
  • Creating UI widgets from pure Java without XML
  • Exploring the palette – part 1
  • Anonymous classes
  • Exploring the palette and more anonymous classes – part 2
  • The Widget Exploration app
  • Using WebView
  • Running the Widget Exploration app
  • Summary
14

Android Dialog Windows

  • Dialog windows
  • The Note to Self app
  • Summary
15

Arrays, Maps, and Random Numbers

  • A random diversion
  • Handling large amounts of data with arrays
  • Simple array example mini-app
  • Getting dynamic with arrays
  • Entering the nth dimension with arrays
  • ArrayList
  • Arrays and ArrayList instances are polymorphic
  • More Java collections – meet the Java HashMap
  • The Note to Self app
  • Frequently asked questions
  • Summary
16

Adapters and Recyclers

  • RecyclerView and RecyclerAdapter
  • Adding RecyclerView, RecyclerAdapter, and ArrayList to the Note to Self project
  • Running the app
  • Frequently asked questions
  • Summary
17

Data Persistence and Sharing

  • Android intents
  • Adding a settings page to Note to Self
  • Persisting data with SharedPreferences
  • Reloading data with SharedPreferences
  • Making the Note to Self settings persist
  • More advanced persistence
  • Backing up user data in Note to Self
  • Frequently asked questions
  • Summary
18

Localization

  • Making the Note to Self app accessible for Spanish and German speakers
  • Running Note to Self in German or Spanish
  • Summary
19

Animations and Interpolations

  • Animations in Android
  • Animation demo app – introducing SeekBar
  • Frequently asked questions
  • Summary
20

Drawing Graphics

  • Understanding the Canvas class
  • Using the Canvas class
  • Canvas demo app
  • The Android coordinate system
  • Creating bitmaps
  • Manipulating bitmaps
  • Bitmap manipulation demo app
  • Frequently asked question
  • Summary
21

Threads and Starting the Live Drawing App

  • Creating the Live Drawing project
  • The game loop
  • Threads
  • Implementing the game loop with a thread
  • Running the app
  • Summary
22

Particle Systems and Handling Screen Touches

  • Adding custom buttons to the screen
  • Implementing a particle system effect
  • Handling touches
  • Running the app
  • The Android Studio Profiler tool
  • Summary
23

Supporting Different Versions of Android, Sound Effects, and Spinner Widget

  • Handling different versions of Android
  • The SoundPool class
  • Sound demo app introducing the Spinner widget
  • Summary
24

Design Patterns, Multiple Layouts, and Fragments

  • Introducing the model-view-controller pattern
  • Android design guidelines
  • Real-world apps
  • Device detection mini-app
  • Configuration qualifiers
  • Fragments
  • Our first Fragment app
  • Fragment reality check
  • Frequently asked question
  • Summary
25

Building a Simple Image Gallery App

  • Angry Birds classic swipe menu
  • Building an image gallery/slider app
  • Summary
26

Advanced UI with Navigation Drawer and Fragment

  • Introducing NavigationView
  • Examining the Simple Database app
  • Starting the Simple Database project
  • Exploring the autogenerated code and assets
  • Coding the Fragment classes and their layouts
  • Using the Fragment classes and their layouts
  • Summary
27

Android Databases

  • Databases 101
  • SQL syntax primer
  • Android SQLite API
  • Coding the database class
  • Coding the Fragment classes to use the DataManager class
  • Running the Age Database app
  • Summary
28

A Quick Chat before You Go

  • Publishing
  • Make an app!
  • Keep learning
  • My other channels
  • Goodbye and thank you
29

Exploring Xcode

  • Technical requirements
  • Downloading and installing Xcode from the App Store
  • Exploring the Xcode user interface
  • Running your app in Simulator
  • Running your app on an iOS device
  • Summary
30

Simple Values and Types

  • Technical requirements
  • Introducing Swift playgrounds
  • Exploring data types
  • Exploring constants and variables
  • Understanding type inference and type safety
  • Exploring operators
  • Using the print() statement
  • Summary
31

Conditionals and Optionals

  • Technical requirements
  • Introducing conditionals
  • Introducing optionals and optional binding
  • Summary
32

Range Operators and Loops

  • Technical requirements
  • Exploring range operators
  • Exploring loops
  • Summary
33

Collection Types

  • Technical requirements
  • Exploring arrays
  • Exploring dictionaries
  • Exploring sets
  • Summary
34

Functions and Closures

  • Technical requirements
  • Exploring functions
  • Exploring closures
  • Summary
35

Classes, Structures, and Enumerations

  • Technical requirements
  • Understanding classes
  • Understanding structures
  • Understanding enumerations
  • Summary
36

Protocols, Extensions, and Error Handling

  • Technical requirements
  • Exploring protocols
  • Exploring extensions
  • Exploring error handling
  • Summary
37

Swift Concurrency

  • Technical requirements
  • Understanding Swift concurrency
  • Examining an app without concurrency
  • Updating the app using async/await
  • Improving efficiency using async-let
  • Summary
38

Setting Up the User Interface

  • Technical requirements
  • Learning useful terms in iOS development
  • A tour of the JRNL app
  • Modifying your Xcode project
  • Setting up a tab bar controller scene
  • Summary
39

Building Your User Interface

  • Technical requirements
  • Adding a table view to the Journal List screen
  • Connecting storyboard elements to the view controller
  • Configuring data source methods for the table view
  • Presenting a view modally
  • Summary
40

Finishing Up Your User Interface

  • Technical requirements
  • Implementing the Journal Entry Detail screen
  • Implementing the Map screen
  • Summary
41

Modifying App Screens

  • Technical requirements
  • Modifying the Journal List screen
  • Modifying the Add New Journal Entry screen
  • Modifying the Journal Entry Detail screen
  • Summary
42

Getting Started with MVC and Table Views

  • Technical requirements
  • Understanding the Model-View-Controller design pattern
  • Understanding table views
  • Revisiting the Journal List screen
  • Summary
43

Getting Data into Table Views

  • Technical requirements
  • Understanding model objects
  • Creating a class to represent a journal entry
  • Creating sample data
  • Displaying data in a table view
  • Summary
44

Passing Data between View Controllers

  • Technical requirements
  • Passing data from the Add New Journal Entry screen to the Journal List screen
  • Removing rows from a table view
  • Exploring text field and text view delegate methods
  • Passing data from the Journal List screen to the Journal Entry Detail screen
  • Summary
45

Getting Started with Core Location and MapKit

  • Technical requirements
  • Getting your device location using the Core Location framework
  • Updating the JournalEntry class to conform to the MKAnnotation protocol
  • Displaying annotation views on the Map screen
  • Displaying a map snapshot on the Journal Entry Detail screen
  • Summary
46

Getting Started with JSON Files

  • Technical requirements
  • Creating a singleton
  • Modifying the JournalEntry class to be JSON-compatible
  • Loading and saving JSON data
  • Summary
47

Getting Started with Custom Views

  • Technical requirements
  • Creating a custom UIStackView subclass
  • Adding your custom view to the Add New Journal Entry screen
  • Adding your custom view to the Journal Entry Detail screen
  • Summary
48

Getting Started with the Camera and Photo Library

  • Technical requirements
  • Creating a new UIImagePickerController instance
  • Implementing UIImagePickerControllerDelegate methods
  • Getting permission to use the camera or photo library
  • Summary
49

Getting Started with Search

  • Technical requirements
  • Implementing a search bar for the Journal List screen
  • Modifying table view data source methods
  • Modifying the prepare(for:sender:) method
  • Modifying the method to remove journal entries
  • Summary
50

Getting Started with Collection Views

  • Technical requirements
  • Understanding collection views
  • Modifying the Journal List screen to use a collection view
  • Dynamically modifying collection view cell size using size classes
  • Testing your app on different devices
  • Summary
51

Getting Started with SwiftData

  • Technical requirements
  • Introducing SwiftData
  • Modifying the JournalEntry class
  • Implementing SwiftData components
  • Modifying the JournalListViewController class
  • Summary
52

Getting Started with SwiftUI

  • Technical requirements
  • Creating a SwiftUI Xcode project
  • Creating the Journal List screen
  • Adding model objects and configuring navigation
  • Using MapKit for SwiftUI
  • Completing the Journal Entry Detail screen
  • Summary
53

Getting Started with Widgets

  • Technical requirements
  • Introducing widgets
  • Adding a widget target to your app
  • Providing timeline entries to your widget
  • Customizing your widget’s view
  • Adding a widget to your Home and Lock screens
  • Summary
54

Getting Started with visionOS

  • Technical requirements
  • Introducing visionOS
  • Adding a visionOS target to your project
  • Improving your app’s appearance in visionOS
  • Adding 3D objects to your app
  • Summary
55

Testing and Submitting Your App to the App Store

  • Technical requirements
  • Getting an Apple Developer account
  • Exploring your Apple Developer account
  • Submitting your app to the App Store
  • Testing your app
  • Summary

1

Beginning Android and Java

  • Building an Android App
2

First Contact: Java, XML, and the UI Designer

  • Adding Button
  • Handling Button Clicking using Java Methods
3

Exploring Android Studio and the Project Structure

  • Exploring an Empty Activity and Android Emulator
  • Exploring a Basic Activity Project
4

Getting Started with Layouts and Material Design

  • Creating and Exploring a Layout Project
  • Creating a Table Layout
5

Beautiful Layouts with CardView and ScrollView

  • Building a UI using CardView and ScrollView
  • Creating a Tablet Emulator
6

The Android Lifecycle

  • Creating the Lifecycle Demo App
7

Java Variables, Operators, and Expressions

  • Understanding Java Syntax
8

Java Decisions and Loops

  • Understanding Loops
9

Learning Java Methods

  • Using Method Overloading
10

Object-Oriented Programming

  • Using Class
11

More Object-Oriented Programming

  • Using Encapsulation and Static Methods
  • Using inheritance
12

The Stack, the Heap, and the Garbage Collector

  • Using Buttons and TextView Widgets
13

Anonymous Classes – Bringing Android Widgets to Life

  • Exploring Widgets
14

Android Dialog Windows

  • Creating a Dialog Window
15

Arrays, Maps, and Random Numbers

  • Creating an App using Array
  • Using Dynamic Array
  • Using Multidimensional Array
16

Adapters and Recyclers

  • Adding and Displaying Notes Using RecyclerView, RecyclerAdapter, and ArrayList
17

Data Persistence and Sharing

  • Adding Settings Page to an App
18

Localization

  • Running App in German or Spanish
19

Animations and Interpolations

  • Using Animations
20

Drawing Graphics

  • Using the Canvas
  • Using Bitmap Manipulation
21

Threads and Starting the Live Drawing App

  • Creating the Live Drawing Project and Implementing the Game Loop using Thread
22

Particle Systems and Handling Screen Touches

  • Implementing a Particle System Effect
23

Supporting Different Versions of Android, Sound Effects, and Spinner Widget

  • Creating a Sound App using a Spinner Widget
24

Design Patterns, Multiple Layouts, and Fragments

  • Creating a Device Detection App
  • Creating a Fragment App
25

Building a Simple Image Gallery App

  • Building an Image Slider App
26

Advanced UI with Navigation Drawer and Fragment

  • Creating a Simple Database Project

Related Courses

All Courses
scroll to top