Book Image

Mastering Android Application Development

By : Antonio Pachon
Book Image

Mastering Android Application Development

By: Antonio Pachon

Overview of this book

There are millions of Android apps out there for people to download – how do you make sure yours has the edge? It’s not always about innovation and ideas – the most successful apps are those that are able to satisfy customer demands – they’re the ones that look the best, the fastest, and the easiest and most intuitive to use. This book shows you how to create Android applications that do precisely that – it has been designed help you consider and answer those questions throughout the development process, so you can create applications that stand out against the crowd. Learn how to create exemplary UIs that contribute to a satisfying user experience through the lens of Material Design, and explore how to harness the range of features within the Android SDK to help you. Dive deeper into complex programming concepts and discover how to leverage concurrency and navigate memory management and image handling. You’ll also find further guidance on testing and debugging so you can guarantee that your application is reliable and robust for users. Beyond this you’ll find out how to extend your app and add greater functionality, including notifications, location services, adverts and app billing (essential if you want to properly monetize your creation!). To make sure you have confidence at every stage in the process, the book also shows you how to release your app to the Play store – to make sure your maximising your efforts to create a popular Android application!
Table of Contents (19 chapters)
Mastering Android Application Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Index

A

  • action bar
    • about / Toolbar, action bar, and app bar
  • activity references / Activity and context references
  • Adapter pattern / Introducing the Adapter pattern
  • AdToApp
    • used, for adding advertisements / Adding advertisements with AdToApp
  • advertisement monetization
    • about / Key points in advertisement monetization
  • advertisements
    • adding, AdToApp used / Adding advertisements with AdToApp
  • analytics
    • about / The importance of analytics
    • with Parse / Analytics with Parse
    • error report / The error report
  • Android
    • testing on / Testing on Android
    • monetization / Monetization in Android
  • Android 6 Marshmallow
    • about / Introducing Android 6 Marshmallow
    • runtime permissions / Runtime permissions
    • power-saving, optimizations / Power-saving optimizations
    • text, selecting / Text selection
    • fingerprint authentication / Fingerprint authentication
    • direct share / Direct share
  • AndroidManifest.xml
    • configuring / Configuring AndroidManifest.xml
  • Android Studio
    • URL / Getting the tools ready
  • AnimatedVectorDrawable
    • animating with / Animating with AnimatedVectorDrawable
  • API key
    • getting / Getting the API key
  • app
    • debugging / Debugging our app
    • releasing, to Play Store / Releasing our app to Play Store
    • code obfuscation / Code obfuscation
    • exporting / Exporting the app
    • uploading, to Play Store / Uploading our app to Play Store
    • Google developer account, URL / Uploading our app to Play Store
    • publisher account, creating / Creating a publisher account
    • publishing / Publishing an app
    • APK file, uploading / Uploading the APK file
    • store listing, preparing / Preparing the store listing
    • content rating, URL / Preparing the store listing
  • app-navigation pattern
    • selecting / Selecting an app-navigation pattern
    • basic structure / Basic structure
    • dashboard pattern / The dashboard pattern
    • sliding panel / The sliding panel
    • tabs pattern / Tabs
  • app bar
    • about / Toolbar, action bar, and app bar
  • app standby / Power-saving optimizations
  • AsyncTasks / Introducing AsyncTasks

B

  • Back navigation
    • about / Back navigation and up navigation
  • build types
    • debug type / Creating build types
    • release type / Creating build types
  • build variants
    • using / Using build variants
    • build types, creating / Creating build types
    • product flavors / Product flavors

C

  • CardView
    • about / CardView and UI design tips, Introducing CardView
    • Design-time layout attributes / Design-time layout attributes
  • cloud database
    • creating / Creating your own cloud database, Creating the database
    • Androids Application class / Android's Application class
  • concurrency
    • about / Concurrency in Android
    • handlers and threads / Handlers and threads
    • AsyncTasks / Introducing AsyncTasks
    • services / Understanding services
    • loaders / Introducing loaders
  • content
    • storing, in Parse / Storing and consuming content from Parse, Storing content, Displaying content
    • consuming, from Parse / Storing and consuming content from Parse, Consuming content
  • content provider
    • about / Content providers
    • creating / Content providers
    • adding / Content providers
  • context references / Activity and context references
  • continuous integration
    • about / Continuous integration
  • CoordinatorLayout
    • used, for adding motion / Adding motion with CoordinatorLayout
  • CPC (Cost Per Click) / Monetization in Android
  • CTR (Click Through Rate) / Monetization in Android
  • cursor
    • about / Introducing cursors
  • CursorAdapter
    • about / RecyclerView and CursorAdapter
  • CursorLoader
    • implementing / Implementing CursorLoader
  • custom fonts
    • in Android / Working with custom fonts in Android

D

  • dashboard pattern / The dashboard pattern
  • data
    • persisting, mechanisms / Creating the database
  • database
    • creating / Creating the database
    • contract / The database contract
    • open helper / The database open helper
  • Database Access Object (DAO)
    • about / Database Access Object
    • query, performing / Performing a query
    • raw query, using / Using a raw query
    • cursor / Introducing cursors
  • database sync, with UI
    • about / Sync database with UI
    • CursorLoader, implementing / Implementing CursorLoader
    • RecyclerView and CursorAdapter / RecyclerView and CursorAdapter
    • pull, to refresh with SwipeRefreshLayout / Introducing pull to refresh with SwipeRefreshLayout
  • debug certificate / Getting the API key
  • debug certificate fingerprint
    • displaying / Displaying the debug certificate fingerprint
  • deserialization / JSON and Gson
  • design support library
    • about / The design support library
  • doze mode / Power-saving optimizations

E

  • Espresso
    • integration tests with / Integration tests with Espresso
    • configuring / Espresso configuration

F

  • fragments
    • about / Fragments
    • importance / Understanding the importance of fragments
    • Fragment Manager / The Fragment Manager
    • stack / Fragments stack
  • freemium model / Monetization in Android

G

  • garbage collector (GC) / Memory management
  • GCM (Google Cloud Messaging)
    • used, for sending push notifications / Sending and receiving notifications using GCM
    • about / Sending and receiving notifications using GCM
    • used, for receiving zapush notifications / Sending and receiving notifications using GCM
  • Google
    • doze mode / Power-saving optimizations
    • app standby / Power-saving optimizations
  • Google Developer Console project
    • creating / Creating a Google Developer Console project
  • Google Volley
    • about / Google Volley and OkHttp, Google Volley
    • benefits / Google Volley
    • lightning-fast network / A lightning-fast network
  • Gson
    • about / JSON and Gson

H

  • handlers / Handlers and threads

I

  • images
    • downloading / Downloading images
    • downloading, traditional way / The traditional way of downloading images
    • downloading, with Volley / Downloading images with Volley
    • mastering / Mastering images
    • vector drawables / Vector drawables
  • integration test
    • with Espresso / Integration tests with Espresso
    • Espresso, configuring / Espresso configuration
    • writing / Writing an integration test
    • running / Running integration tests

J

  • J2EE (Java 2 Enterprise Edition) / Database Access Object
  • JSON
    • about / JSON and Gson

L

  • leaks
    • detecting / Detecting and locating leaks
    • locating / Detecting and locating leaks
    • preventing / Preventing leaks
  • leaks, preventing
    • activity references / Activity and context references
    • context references / Activity and context references
    • WeakReference, using / Using WeakReference
  • lists
    • about / Starting with lists
    • ListViews using, built-in views used / Using ListViews with built-in views
    • custom Adapter, creating / Creating a custom Adapter
    • views, recycling / Recycling views
    • ViewHolder pattern, applying / Applying the ViewHolder pattern
  • ListViews
    • using, with built-in views / Using ListViews with built-in views
  • loaders / Introducing loaders
  • logs
    • about / Logs and the debug mode
    • working with / Working with logs

M

  • map
    • adding / Adding the map
    • fragment, adding / Adding the fragment
    • fragment, implementing / Implementing MapFragment
  • marker
    • adding / Adding a marker
    • data, retrieving from Parse / Retrieving data from Parse
    • displaying, for each location / Displaying a marker for each location
    • title, adding to mark / Adding a title to a marker
  • MasteringAndroidApp
    • creating / Creating MasteringAndroidApp
  • material design
    • URL / Basic structure
  • Material Design
    • about / Introducing Material Design
  • memory management
    • about / Memory management
    • leaks, detecting / Detecting and locating leaks
    • leaks, locating / Detecting and locating leaks
    • leaks, preventing / Preventing leaks
  • monetization
    • about / Monetization in Android
    • freemium model / Monetization in Android
    • advertisement model / Monetization in Android
  • MonkeyTalk
    • used, for recording UI tests / Recording UI tests with MonkeyTalk
  • motion
    • adding, CoordinatorLayout used / Adding motion with CoordinatorLayout

N

  • nine patch
    • about / Working with the nine patch
  • NotificationCompat
    • using / Using NotificationCompat
    • URL / Using NotificationCompat

O

  • observer pattern / The Observer pattern
  • OkHttp
    • about / Google Volley and OkHttp, OkHttp

P

  • Parse
    • about / Parse
    • content, storing / Storing and consuming content from Parse, Storing content
    • content, consuming from / Storing and consuming content from Parse, Consuming content
    • content, displaying / Displaying content
    • push notifications / Push notifications with Parse
    • analytics with / Analytics with Parse
  • Parse SDK (System Development Kit)
    • adding, to project / Adding the Parse SDK to our project
  • patterns
    • about / The importance of patterns
    • singleton pattern / The Singleton pattern
    • singleton pattern, in Application class / Singleton in the Application class
    • observer pattern / The Observer pattern
    • Adapter pattern / Introducing the Adapter pattern
  • Picasso
    • about / Introducing Picasso
  • Play Store
    • app, releasing to / Releasing our app to Play Store
    • app, exporting / Exporting the app
    • app, uploading to Play Store / Uploading our app to Play Store
    • publisher account, creating / Creating a publisher account
    • Google Play Developer console / The Google Play Developer console
    • app, publishing / Publishing an app
  • POST-sending service
    • URL / Sending and receiving notifications using GCM
  • Proguard
    • about / Code obfuscation
  • project
    • configuring / Configuring the project
  • push notifications
    • about / Push notifications
    • sending, GCM used / Sending and receiving notifications using GCM
    • receiving, GCM used / Sending and receiving notifications using GCM
    • with Parse / Push notifications with Parse
    • NotificationCompat, using / Using NotificationCompat

Q

  • QA (Quality Assurance) / Testing from a UI perspective
  • query
    • parameters / Performing a query

R

  • raw query
    • using / Using a raw query
  • RecyclerView
    • about / Introducing RecyclerView, RecyclerView and CursorAdapter
    • list, using / Using list, grid, or stack
    • grid, using / Using list, grid, or stack
    • stack, using / Using list, grid, or stack
    • implementing / Implementing RecyclerView
    • items, clicking / Clicking on RecyclerView items
  • release certificate / Getting the API key
  • Robolectric
    • about / Unit tests with Robolectric
    • configuring / Robolectric configuration
    • unit test / Our first unit test
    • unit tests, running / Running unit tests
  • Roboto font
    • URL / Working with custom fonts in Android

S

  • services / Understanding services
    • IntentService / A type of service – IntentService
  • singleton pattern
    • about / The Singleton pattern
    • in Application class / Singleton in the Application class
  • sliding panel / The sliding panel
  • Stack Overflow
    • URL / Customizing tabs
  • stress testing
    • The Monkey used / Launching The Monkey
  • SwipeRefreshLayout
    • about / Introducing pull to refresh with SwipeRefreshLayout

T

  • TabLayout
    • about / Introducing TabLayout
  • tabs
    • about / Tabs
    • URL / Tabs, Customizing tabs
  • Timber
    • using / Using Timber, the log wrapper
  • toolbar
    • about / Toolbar, action bar, and app bar
  • tools
    • preparing / Getting the tools ready
  • ToolTipPopup / Using WeakReference
  • transitions
    • about / Transitions

U

  • UI tests
    • about / Testing from a UI perspective
    • recording, MonkeyTalk used / Recording UI tests with MonkeyTalk
  • Up navigation
    • about / Back navigation and up navigation

V

  • vector drawables
    • about / Vector drawables
  • ViewHolder pattern
    • applying / Applying the ViewHolder pattern
  • ViewPager
    • about / ViewPager
    • adapter / Adapter
    • tabs, sliding / Sliding tabs
    • tabs, customizing / Customizing tabs
  • views
    • recycling / Recycling views
  • Volley
    • used, for downloading images / Downloading images with Volley

W

  • WeakReference
    • using / Using WeakReference