This page contains resources related to the Mobile Application Development: A Coding Companion book.
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 United States License, described at this URL: https://creativecommons.org/licenses/by-nc-nd/3.0/us/. Unless required by applicable law or agreed to in writing, code listed in this site is distributed on "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
The included projects are:
-
HelloJava provides a brief introduction to Object Oriented programming with Java
-
FingerChase describes a custom-defined
View
which demonstrates inheritance, custom drawing, background threads and handling of touch events
-
HelloAndroid introduces the core building blocks for Android Apps
-
LifecycleAndIntents describes how the components' lifecycle is used and also how Intents help realizing Apps
-
Resources explains what are the Android resources and how they are used
-
UIDesign discusses core Android UI design elements and layouts
-
ConstraintLayout covers the latest design layout introduced to enable custom-tailored designs with better support for Android Studio's tools
-
ListOfItems describes how to build custom
ListView
s -
RecyclerView describes the use of
RecyclerView
in an example -
CustomView demonstrates how to define a
CustomView
by specializing an existingView
-
Persistence explains how data persistence is achieved in Android and describes the preferences mechanism
-
Databases discusses how to use the underlying SQLite database using standard SQL queries
-
Room describes the use of the Room high-level library for achieving persistence
-
ImagesDatabase elaborates on the use of Room and covers storing of images or other large files in the database
-
NetworkedServices describes how to enable network connection using low-level Java sockets
-
HandlingJSON discusses JSON as the standard format for encoding and transporting data - covers both built-in support and Gson
-
Volley explains how to use the Volley library to enable high-level networking in Android
-
ArchComp provides an overview of Android Architecture Components and their use to simplify data-intensive apps - this project demonstrates the
ViewModel
andLiveData
elements as well as the Repository pattern
-
Debugging describes the main methods for debugging, and Android Studio's support for it
-
Testing describes various methods to automate testing in Android development
-
PositioningAndMaps provides examples on how to access the device position and how to show a map (from Google Maps)
-
Compass provides examples on how to interface with sensors in general and demonstrates an example which uses the magnetometer sensor to implement a compass
-
PowerMonitor demonstrates the use of
ViewModel
andReceiver
via a simple app for monitoring the battery -
BarcodeScanner demonstrates the use of the
ZXing
library to easily embed a Barcode Scanner in your app