Call Us: +32 2 466 00 16
Email: info@u2u.be
Follow Us:

Developing Android apps

5days
Training code
uandr

Upcoming sessions

06 Nov 2017
22 Jan 2018
Book this course

Introduction

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
  • Resources
  • Android Package

Development Environment

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
  • Interaction
  • Fragments

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
  • Assets

Basic Layout

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
  • Units
  • ViewGroups

CollectionViews

This module is about dynamically generating an interactive view based on a collection. E.g. creating a contact list.

  • AdapterViews: ListView and GridView
  • Adapters
  • 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
  • Themes
  • Material Design

Menus

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

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

Broadcast Receivers

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

Data Options

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

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
  • Divisions

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
  • CursorAdapter
  • Using an ORM

Content Providers

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

Loaders

Async is hard... Activity life cycle is hard... How do you load your data without screwing up? One answer: Loaders.

  • AsyncTask
  • Loaders
  • Creating a Cursor Loader

Navigation

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

Fragments

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

Adaptive Layout

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.

  • Challenges
  • Dealing with Various Resolutions and DPIs
  • Scaling Bitmaps
  • Using Resource Alternatives

Services

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
  • Priority
  • AlarmManager

Networking

Hello from the other side! Talk to your backend using REST.

  • Challenges
  • Threading
  • Optimizing for Battery

Sync Adapters

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?
  • Authentication
  • Prepare Content Provider
  • Creating and Running the Sync Adapter

Notifications

Everybody hates those constant on-screen notifications. Learn how to be annoying in this module!

  • Notifications Anatomy
  • Creating a Notification
  • Notification Actions
  • Metadata

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...

  • Overview
  • Setting Up the Google Service
  • Creating the Client App
  • Creating the Backend

Android is the most popular platform in the world of mobile devices, and is currently the highest selling OS in the world. Not only does Android dominate the mobile phone, it also runs on TVs, tablets, wearables, Chromebooks, digital cameras, etc. making it a very versatile and powerful environment. For technology companies which require a ready-made, low-cost and customizable operating system, Android is the obvious choice. This course will teach you the essentials of building an Android App using Android Studio and focusses on Phone and Tablet.

Participants of this course need to have a solid understanding of Object-Oriented Programming. Basic knowledge of Java is required, or at least a similar language like C#, as this is not part of the course.

© 2017 U2U All rights reserved.