In this rather theoretical module you will learn what it means to be an Android developer.
You will learn about the OS, the apps and their building blocks.
- The Android Platform
- Flavors and Versions
- App Components: Activities, Services, Content Providers, Broadcast Receivers
- Intents and Tasks
- Android Package
Developing Android requires more than writing proper code. You need to know your tools.
Which is exactly what you'll learn in this module.
- Working with Android Studio
- Projects and Modules
- Building and Running
- Emulators and Real Devices
Activities and Views
One of the first things you need as an Android developer is to manipulate the screen and respond to user's interactions.
You will learn how to build a simple screen and manage it's content by using an Activity.
- Common Views
Resources and Assets
How do you provide localization in your app? How do you provide a different layout for landscape versus portrait?
How to deal with low and high resolution devices?
Android has a pretty cool way of dealing with all of this and this module will teach you all about it.
- Providing and Accessing Resources
In this module you how to do proper layout. You'll explore things like RelativeLayout and GridLayout to get a clean good looking UI on any screen.
- Layout in Android
- Layout Properties
This module is about dynamically generating an interactive view based on a collection. E.g. creating a contact list.
- AdapterViews: ListView and GridView
- Built-in and Custom ItemViews
- Source Updates and Interactions
Styles and Themes
Who wants a good looking app? Everybody, that's who! In this module you will dive into existing Styles and Themes
and learn how to extend them or create your own.
- Style XML
- Style Inheritance
- State List
- Material Design
Menus appear in the Action Bar, as pop-ups, when selecting an item. Take your chef's hat and become a master of menus.
- Options Menu
- Contextual Menu
- Popup Menu
Intents are real core elements within the Android eco-system.
Not only do they connect the different components in your app, they also allow you to communicate with other apps and the OS.
- Explicit and Implicit Intents
- Intent Filters
- Pending Intents
- Communicating with Other Apps
Hey! I found a Bluetooth device. Hey! I'm running out of battery power. Want to repond to this?
Learn how to say yes and other cool stuff with Broadcast Receivers.
- Creating a Broadcast Receiver
- Broadcasting Custom Intents
- Sticky Broadcasts
This module is about dealing with data. Where do I store a piece of data. Should I always get it from the web?
Should I do caching? This module answers all these questions.
- User Data versus App Data
- Device Storage
- Web Services
Preferences, who doesn't have them? And your app will probably need to support them.
Android has a nice way of dealing with Preferences by using PreferenceScreens.
Of course you can ignore all of that and spend ages writing it yourself. The choice is yours.
- SharedPreferences API
- Building the screen: PreferenceScreen and PreferenceFragment
- Preference Widgets
Working with SQLite
In this module you will learn how to store object in a client-side relational database.
This is crucial for any type of offline experience.
- Using SQLite
- Using an ORM
By using Content Providers you can make your data available to the system, home screen widgets and even other apps.
But it also notifies your app when data has changed automatically.
- The What and the Why
- Accessing a Content Providers
- Creating a Content Providers
Async is hard... Activity life cycle is hard... How do you load your data without screwing up? One answer: Loaders.
- Creating a Cursor Loader
In this module you will learn how to set up navigation that is clear and easy to use.
We both talk about UX and technical details.
- Navigation Patterns
- Basic Navigation
- Managing the Back Stack
- Various Navigation Views
App Life Cycle
Unlike traditional applications, the life cycle of a mobile app is not managed by the user. It is managed by the system.
This has a major impact to our code. For example, what do you do when the system decides to terminate your app?
- When do Apps run?
- Activity Life Cycle States and Methods
- Handling the Pause, Stop and Destroy Cycle
Activities manage an entire screen. Fragments can manage only a part of that.
This way Fragments are far more reusable and more flexible in adaptive layouts.
- A First Look at Fragments
- Fragment Life Cycle, Navigation, Menu
- Static and Dynamic Fragments
- Communicating with the Activity
Basic Layout? Check! But what if I rotate my screen, or pick up my tablet instead of my phone?
In this module you will combine the things you learned for Resources, Fragments and Layout
to create an adaptive layout that looks great no matter what the circumstances are.
- Dealing with Various Resolutions and DPIs
- Scaling Bitmaps
- Using Resource Alternatives
Your code is frozen when your app is not visible. So what if you want to do some location tracking, or play some music?
The solution is to work with Services and that's what we'll do in this module.
- Running in the Background
- Service Lifecycle
- Started and Bound Services
Hello from the other side! Talk to your backend using REST.
- Optimizing for Battery
Ever taught kids to cross the street all at the same time?
What if you could teach all the apps to fetch their data at the same time? I'm sure the battery will like it.
- What is a Sync Adapter?
- Prepare Content Provider
- Creating and Running the Sync Adapter
Everybody hates those constant on-screen notifications. Learn how to be annoying in this module!
- Notifications Anatomy
- Creating a Notification
- Notification Actions
Google Services Overview
Android is just Android. Until Google gets involved. This module is a quick overview of what google services can do for your app.
- Google Play
- Google+ Authentication
- Android Backup Service
- Google Analytics
- Google Cloud Messaging
- Google Admob Ads
Google Cloud Messaging
You got a new friend request! But how does your phone know?
You can use a polling mechanism... if you hate your backend and your user's battery. Or you can use push!
It's not straightforward how to send a message to a device that is constantly moving around, but with a little help from a friend...
- Setting Up the Google Service
- Creating the Client App
- Creating the Backend