DV-CEIS320.AJ1
CEIS320 Mobile Programming
Beginner Self-paced · 1 year access
35 Hands-On LiveLabs
Practice real IT tasks in guided environments.
- Real environments
- Auto-graded
- No installation
01 / Lessons & labs
See exactly what you will learn and practice
Lessons
55 Interactive Lessons · 337 topics01 Beginning Android and Java 12 topics · 1 LiveLab +
- 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
1 LiveLab in this lesson — see the labs panel →
02 First Contact: Java, XML, and the UI Designer 8 topics · 2 LiveLab +
- 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
2 LiveLab in this lesson — see the labs panel →
03 Exploring Android Studio and the Project Structure 6 topics · 2 LiveLab +
- 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
2 LiveLab in this lesson — see the labs panel →
04 Getting Started with Layouts and Material Design 7 topics · 2 LiveLab +
- 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
2 LiveLab in this lesson — see the labs panel →
05 Beautiful Layouts with CardView and ScrollView 5 topics · 2 LiveLab +
- Attributes quick summary
- Building a UI with CardView and ScrollView
- Creating a tablet emulator
- Frequently asked question
- Summary
2 LiveLab in this lesson — see the labs panel →
06 The Android Lifecycle 8 topics · 1 LiveLab +
- 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
1 LiveLab in this lesson — see the labs panel →
07 Java Variables, Operators, and Expressions 7 topics · 1 LiveLab +
- 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
1 LiveLab in this lesson — see the labs panel →
08 Java Decisions and Loops 6 topics · 1 LiveLab +
- Making decisions in Java
- Switching to make decisions
- Repeating code with loops
- for loops
- Loops demo app
- Summary
1 LiveLab in this lesson — see the labs panel →
09 Learning Java Methods 9 topics · 1 LiveLab +
- Methods revisited
- Method structure
- Using method demo apps
- Exploring method overloading
- Scope and variables revisited
- Method recursion
- Questions
- Summary
- Further reading
1 LiveLab in this lesson — see the labs panel →
10 Object-Oriented Programming 6 topics · 1 LiveLab +
- Important memory management warning
- Object-oriented programming
- Looking at the code for a class
- Basic classes app
- Frequently asked questions
- Summary
1 LiveLab in this lesson — see the labs panel →
11 More Object-Oriented Programming 8 topics · 2 LiveLab +
- Remember that encapsulation thing?
- Static methods
- Encapsulation and static methods mini-app
- OOP and inheritance
- Inheritance example app
- Polymorphism
- Frequently asked questions
- Summary
2 LiveLab in this lesson — see the labs panel →
12 The Stack, the Heap, and the Garbage Collector 4 topics · 1 LiveLab +
- All the Android UI elements are classes too
- Inner and anonymous classes
- Frequently asked questions
- Summary
1 LiveLab in this lesson — see the labs panel →
13 Anonymous Classes – Bringing Android Widgets to Life 9 topics · 1 LiveLab +
- 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
1 LiveLab in this lesson — see the labs panel →
14 Android Dialog Windows 3 topics · 1 LiveLab +
- Dialog windows
- The Note to Self app
- Summary
1 LiveLab in this lesson — see the labs panel →
15 Arrays, Maps, and Random Numbers 11 topics · 3 LiveLab +
- 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
3 LiveLab in this lesson — see the labs panel →
16 Adapters and Recyclers 5 topics · 1 LiveLab +
- RecyclerView and RecyclerAdapter
- Adding RecyclerView, RecyclerAdapter, and ArrayList to the Note to Self project
- Running the app
- Frequently asked questions
- Summary
1 LiveLab in this lesson — see the labs panel →
17 Data Persistence and Sharing 9 topics · 1 LiveLab +
- 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
1 LiveLab in this lesson — see the labs panel →
18 Localization 3 topics · 1 LiveLab +
- Making the Note to Self app accessible for Spanish and German speakers
- Running Note to Self in German or Spanish
- Summary
1 LiveLab in this lesson — see the labs panel →
19 Animations and Interpolations 4 topics · 1 LiveLab +
- Animations in Android
- Animation demo app – introducing SeekBar
- Frequently asked questions
- Summary
1 LiveLab in this lesson — see the labs panel →
20 Drawing Graphics 9 topics · 2 LiveLab +
- 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
2 LiveLab in this lesson — see the labs panel →
21 Threads and Starting the Live Drawing App 6 topics · 1 LiveLab +
- Creating the Live Drawing project
- The game loop
- Threads
- Implementing the game loop with a thread
- Running the app
- Summary
1 LiveLab in this lesson — see the labs panel →
22 Particle Systems and Handling Screen Touches 6 topics · 1 LiveLab +
- Adding custom buttons to the screen
- Implementing a particle system effect
- Handling touches
- Running the app
- The Android Studio Profiler tool
- Summary
1 LiveLab in this lesson — see the labs panel →
23 Supporting Different Versions of Android, Sound Effects, and Spinner Widget 4 topics · 1 LiveLab +
- Handling different versions of Android
- The SoundPool class
- Sound demo app introducing the Spinner widget
- Summary
1 LiveLab in this lesson — see the labs panel →
24 Design Patterns, Multiple Layouts, and Fragments 10 topics · 2 LiveLab +
- 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
2 LiveLab in this lesson — see the labs panel →
25 Building a Simple Image Gallery App 3 topics · 1 LiveLab +
- Angry Birds classic swipe menu
- Building an image gallery/slider app
- Summary
1 LiveLab in this lesson — see the labs panel →
26 Advanced UI with Navigation Drawer and Fragment 7 topics · 1 LiveLab +
- 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
1 LiveLab in this lesson — see the labs panel →
27 Android Databases 7 topics +
- 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 5 topics +
- Publishing
- Make an app!
- Keep learning
- My other channels
- Goodbye and thank you
29 Exploring Xcode 6 topics +
- 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 8 topics +
- 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 4 topics +
- Technical requirements
- Introducing conditionals
- Introducing optionals and optional binding
- Summary
32 Range Operators and Loops 4 topics +
- Technical requirements
- Exploring range operators
- Exploring loops
- Summary
33 Collection Types 5 topics +
- Technical requirements
- Exploring arrays
- Exploring dictionaries
- Exploring sets
- Summary
34 Functions and Closures 4 topics +
- Technical requirements
- Exploring functions
- Exploring closures
- Summary
35 Classes, Structures, and Enumerations 5 topics +
- Technical requirements
- Understanding classes
- Understanding structures
- Understanding enumerations
- Summary
36 Protocols, Extensions, and Error Handling 5 topics +
- Technical requirements
- Exploring protocols
- Exploring extensions
- Exploring error handling
- Summary
37 Swift Concurrency 6 topics +
- 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 6 topics +
- 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 6 topics +
- 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 4 topics +
- Technical requirements
- Implementing the Journal Entry Detail screen
- Implementing the Map screen
- Summary
41 Modifying App Screens 5 topics +
- 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 5 topics +
- Technical requirements
- Understanding the Model-View-Controller design pattern
- Understanding table views
- Revisiting the Journal List screen
- Summary
43 Getting Data into Table Views 6 topics +
- 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 6 topics +
- 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 6 topics +
- 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 5 topics +
- 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 5 topics +
- 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 5 topics +
- 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 6 topics +
- 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 6 topics +
- 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 6 topics +
- Technical requirements
- Introducing SwiftData
- Modifying the JournalEntry class
- Implementing SwiftData components
- Modifying the JournalListViewController class
- Summary
52 Getting Started with SwiftUI 7 topics +
- 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 7 topics +
- 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 6 topics +
- 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 6 topics +
- Technical requirements
- Getting an Apple Developer account
- Exploring your Apple Developer account
- Submitting your app to the App Store
- Testing your app
- Summary
Hands-On Labs Our edge
35 LiveLabs- Building an Android App
- Adding Button
- Handling Button Clicking using Java Methods
- Exploring an Empty Activity and Android Emulator
- Exploring a Basic Activity Project
- Creating and Exploring a Layout Project
- Creating a Table Layout
- Building a UI using CardView and ScrollView
- Creating a Tablet Emulator
- Creating the Lifecycle Demo App
- Understanding Java Syntax
- Understanding Loops
- Using Method Overloading
- Using Class
- Using Encapsulation and Static Methods
- Using inheritance
- Using Buttons and TextView Widgets
- Exploring Widgets
- Creating a Dialog Window
- Creating an App using Array
- Using Dynamic Array
- Using Multidimensional Array
- Adding and Displaying Notes Using RecyclerView, RecyclerAdapter, and ArrayList
- Adding Settings Page to an App
- Running App in German or Spanish
- Using Animations
- Using the Canvas
- Using Bitmap Manipulation
- Creating the Live Drawing Project and Implementing the Game Loop using Thread
- Implementing a Particle System Effect
- Creating a Sound App using a Spinner Widget
- Creating a Device Detection App
- Creating a Fragment App
- Building an Image Slider App
- Creating a Simple Database Project
02 / FAQs
Questions before you start
Prepare for CEIS320 Mobile Programming
One-time payment. Full access for 1 year. Start with a free trial if you want to look around first.
- 1 year of full access
- 35 LiveLab included
- Certificate of completion
No credit card required