Table of Contents
Preface xxi
Before You Begin xxxi
Chapter 1: Introduction to Android 1
1.1 Introduction 2
1.2 Android–The World’s Leading Mobile Operating System 3
1.3 Android Features 3
1.4 Android Operating System 6
1.5 Downloading Apps from Google Play 13
1.6 Packages 14
1.7 Android Software Development Kit (SDK) 16
1.8 Object-Oriented Programming: A Quick Refresher 18
1.9 Test-Driving the Tip Calculator App in an Android Virtual Device (AVD) 21
1.10 Building Great Android Apps 30
1.11 Android Development Resources 32
1.12 Wrap-Up 34
Chapter 2: Welcome App 35
Dive-Into® Android Studio: Introducing Visual GUI Design, Layouts, Accessibility and Internationalization
2.1 Introduction 36
2.2 Technologies Overview 37
2.3 Creating an App 38
2.4 Android Studio Window 44
2.5 Building the App’s GUI with the Layout Editor 49
2.6 Running the Welcome App 65
2.7 Making Your App Accessible 66
2.8 Internationalizing Your App 67
2.9 Wrap-Up 72
Chapter 3: Tip Calculator App 73
Introducing GridLayout, EditText, SeekBar, Event Handling, NumberFormat, Customizing the App’s Theme and Defining App Functionality with Java
3.1 Introduction 74
3.2 Test-Driving the Tip Calculator App 75
3.3 Technologies Overview 76
3.4 Building the GUI 81
3.5 Default Theme and Customizing Theme Colors 88
3.6 Adding the App’s Logic 92
3.7 AndroidManifest.xml 100
3.8 Wrap-Up 103
Chapter 4: Flag Quiz App 105
Fragments, Menus, Preferences, Explicit Intents, Handler, AssetManager, Tweened Animations, Animators, Toasts, Color State Lists, Layouts for Multiple Device Orientations, Logging Error Messages for Debugging
4.1 Introduction 106
4.2 Test-Driving the Flag Quiz App 108
4.3 Technologies Overview 113
4.4 Creating the Project, Resource Files and Additional Classes 121
4.5 Building the App’s GUI 132
4.6 MainActivity Class 140
4.7 MainActivityFragment Class 147
4.8 SettingsActivity Class 161
4.9 SettingsActivityFragment Class 161
4.10 AndroidManifest.xml 162
4.11 Wrap-Up 164
Chapter 5: Doodlz App 165
2D Graphics, Canvas, Bitmap, Accelerometer, SensorManager, Multitouch Events, MediaStore, Printing, Android 6.0 Permissions, Gradle
5.1 Introduction 167
5.2 Test-Driving the Doodlz App in an Android Virtual Device (AVD) 168
5.3 Technologies Overview 173
5.4 Creating the Project and Resources 176
5.5 Building the App’s GUI 181
5.6 MainActivity Class 187
5.7 MainActivityFragment Class 188
5.8 DoodleView Class 198
5.9 ColorDialogFragment Class 207
5.10 LineWidthDialogFragment Class 211
5.11 EraseImageDialogFragment Class 214
5.12 Wrap-Up 216
Chapter 6: Cannon Game App 217
Manual Frame-By-Frame Animation, Graphics, Sound, Threading, SurfaceView and SurfaceHolder, Immersive Mode and Full-Screen
6.1 Introduction 218
6.2 Test-Driving the Cannon Game App 220
6.3 Technologies Overview 220
6.4 Building the GUI and Resource Files 222
6.5 Overview of This App’s Classes 225
6.6 MainActivity Subclass of Activity 226
6.7 MainActivityFragment Subclass of Fragment 226
6.8 Class GameElement 228
6.9 Blocker Subclass of GameElement 230
6.10 Target Subclass of GameElement 230
6.11 Cannon Class 231
6.12 Cannonball Subclass of GameElement 234
6.13 CannonView Subclass of SurfaceView 237
6.14 Wrap-Up 254
Chapter 7: WeatherViewer App 256
REST Web Services, AsyncTask, HttpUrlConnection, Processing JSON Responses, JSONObject, JSONArray, ListView, ArrayAdapter, ViewHolder Pattern, TextInputLayout, FloatingActionButton
7.1 Introduction 257
7.2 Test-Driving the WeatherViewer App 258
7.3 Technologies Overview 259
7.4 Building the App’s GUI and Resource Files 265
7.5 Class Weather 269
7.6 Class WeatherArrayAdapter 272
7.7 Class MainActivity 277
7.8 Wrap-Up 284
Chapter 8: Twitter® Searches App 286
SharedPreferences, SharedPreferences.Editor, Implicit Intents, Intent Choosers, RecyclerView, RecyclerView.Adapter, RecyclerView.ViewHolder, RecyclerView.ItemDecoration
8.1 Introduction 287
8.2 Test-Driving the App 288
8.3 Technologies Overview 295
8.4 Building the App’s GUI and Resource Files 297
8.5 MainActivity Class 303
8.6 SearchesAdapter Subclass of RecyclerView.Adapter 315
8.7 ItemDivider Subclass of RecyclerView.ItemDecoration 318
8.8 A Note on Fabric: Twitter’s New Mobile Development Platform 320
8.9 Wrap-Up 320
Chapter 9: Address Book App 322
FragmentTransactions and the Fragment Back Stack, SQLite, SQLiteDatabase, SQLiteOpenHelper, ContentProvider, ContentResolver, Loader, LoaderManager, Cursor and GUI Styles
9.1 Introduction 324
9.2 Test-Driving the Address Book App 326
9.3 Technologies Overview 328
9.4 Building the GUI and Resource Files 331
9.5 Overview of This Chapter’s Classes 341
9.6 DatabaseDescription Class 342
9.7 AddressBookDatabaseHelper Class 344
9.8 AddressBookContentProvider Class 346
9.9 MainActivity Class 354
9.10 ContactsFragment Class 360
9.11 ContactsAdapter Class 365
9.12 AddEditFragment Class 368
9.13 DetailFragment Class 376
9.14 Wrap-Up 382
Chapter 10: Google Play and App Business Issues 384
10.1 Introduction 385
10.2 Preparing Your Apps for Publication 385
10.3 Pricing Your App: Free or Fee 390
10.4 Monetizing Apps with In-App Advertising 392
10.5 Monetizing Apps: Using In-App Billing to Sell Virtual Goods 393
10.6 Registering at Google Play 394
10.7 Setting Up a Google Payments Merchant Account 395
10.8 Uploading Your Apps to Google Play 395
10.9 Launching Play Store from Within Your App 397
10.10 Managing Your Apps in Google Play 398
10.11 Other Android App Marketplaces 398
10.12 Other Mobile App Platforms and Porting Your Apps 398
10.13 Marketing Your Apps 399
10.14 Wrap-Up 403
Index 405