Creating Dynamic UI with Android Fragments - Jim Wilson - E-Book

Creating Dynamic UI with Android Fragments E-Book

Jim Wilson

0,0
31,19 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

To create a dynamic and multi-pane user interface on Android, you need to encapsulate UI components and activity behaviors into modules that you can swap into and out of your activities. You can create these modules with the fragment class, which behaves somewhat like a nested activity that can define its own layout and manage its own lifecycle. When a fragment specifies its own layout, it can be configured in different combinations with other fragments inside an activity to modify your layout configuration for different screen sizes (a small screen might show one fragment at a time, but a large screen can show two or more).

Creating Dynamic UI with Android Fragments shows you how to create modern Android applications that meet the high expectations of today's users. You will learn how to incorporate rich navigation features like swipe-based screen browsing and how to create adaptive UIs that ensure your application looks fantastic whether run on a low cost smartphone or the latest tablet.

This book looks at the impact fragments have on Android UI design and their role in both simplifying many common UI challenges and providing new ways to incorporate rich UI behaviors.

You will learn how to use fragments to create UIs that automatically adapt to device differences. We look closely at the roll of fragment transactions and how to work with the Android back stack. Leveraging this understanding, we then explore several specialized fragment-related classes like ListFragment and DialogFragment as well as rich navigation features like swipe-based screen browsing.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 147

Veröffentlichungsjahr: 2013

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Creating Dynamic UI with Android Fragments
Credits
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Fragments and UI Modularization
The need for a new approach to UI creation
The broad platform support of fragments
Fragments simplify common Android tasks
The relationship between fragments and activities
Making the shift to fragments
The old thinking – activity-oriented
Defining the activity appearance
Displaying the activity UI
The new thinking – fragment-oriented
Creating the fragment layout resources
Defining the layout as a reusable list
Minimize assumptions
Encapsulating the display layout
Creating the Fragment class
Wrapping the list in a fragment
Providing the display fragment
Converting the activity to use fragments
Activities and backward compatibility
Summary
2. Fragments and UI Flexibility
Creating UI flexibility
Dynamic fragment layout selection
Adding an alternate layout resource
Managing fragment layout by screen size
Resource screen size groups
Resource screen size qualifiers
Eliminating redundancy
Layout aliasing
Design fragments for flexibility
Avoiding tight coupling
Abstracting fragment relationships
Defining the callback interface
Making the fragment self-contained
Fragment notification
Encapsulating fragment operations
Loosely connecting the pieces
Fragments protect against the unexpected
Evolving layout resource files
Creating the book description activity
Making the MainActivity class adaptive
Summary
3. Fragment Lifecycle and Specialization
Understanding the fragment lifecycle
Understanding fragment setup and display
Avoiding method name confusion
Understanding fragment hide and teardown
Maximizing available resources
Managing a fragment state
Special purpose fragment classes
ListFragment
Associating data with the list
Separating data from display
Creating the ListFragment derived class
Handling ListFragment item selection
Updating the layout resources
DialogFragment
Styles
Layout
DialogFragment display
Event handling
Dialog identity
Accessing Dialog related behavior
Wrapping an existing dialog in a fragment
Summary
4. Working with Fragment Transactions
Intentional screen management
Dynamically managing fragments
Deferred execution of transaction changes
Adding and removing fragments
Supporting the back button
Creating an adaptive application layout
Updating the layout to support dynamic fragments
Adapting to device differences
Dynamically loading a fragment at startup
Transitioning between fragments
Eliminating redundant handling
Creating the fragment on-the-fly
Managing asynchronous creation
Putting it all together
Summary
5. Creating Rich Navigation with Fragments
A brave new world
Making navigation fun with swipe
Implementing swipe navigation
Managing the swipe fragments
Putting the swipe UI into place
Android Studio and swipe navigation
Improving navigation with the ActionBar
Navigating randomly with tabs
Managing tab selection
Connecting the fragments to the tabs
Providing direct access with drop-down list navigation
Managing fragment selection
Providing the navigation choices
Android Studio and drop-down list navigation
Summary
Index

Creating Dynamic UI with Android Fragments

Creating Dynamic UI with Android Fragments

Copyright © 2013 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: September 2013

Production Reference: 1180913

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78328-309-5

www.packtpub.com

Cover Image by Asher Wishkerman (<[email protected]>)

Credits

Author

Jim Wilson

Reviewers

Robert Dale Johnson III

Alex Lockwood

Acquisition Editor

Edward Gordon

Anthony Albuquerque

Commissioning Editor

Poonam Jain

Technical Editors

Pratik More

Anusri Ramchandran

Project Coordinator

Michelle Quadros

Proofreader

Jonathan Todd

Indexer

Priya Subramani

Graphics

Sheetal Aute

Production Coordinator

Kyle Albuquerque

Cover Work

Kyle Albuquerque

About the Author

Jim Wilson is president of JW Hedgehog, Inc., a consulting firm specializing in solutions for the Android, iOS, and Microsoft platforms. Jim has nearly 30 years of software engineering experience, with the past 13 years heavily focused on creating mobile device and location-based solutions. After nearly a decade as a Microsoft Device Application Development MVP, Jim now focuses on developing Android and iOS device applications.

Jim's passion is teaching and mentoring software developers. He is a regular contributor of Android-related training materials to Pluralsight (http://training.jwhh.com), a leading provider of online developer training. Jim has authored more than 30 articles on device application development, and has developed mobility and smart client curriculums for several organizations. You can find Jim speaking at a variety of industry conferences, including AnDevCon, Microsoft Professional Developers Conference, Tech Ed, VS Live, Mobile and Embedded Developers Conference, and many others.

Jim and his wife, along with several cats, live in Celebration, Florida (just 3 miles from Walt Disney World). Check out Jim's blog (http://blog.jwhh.com) where he talks about a variety of mobile software development issues as well as the fun of life just 3 miles from the "House of Mouse".

You can reach Jim at <[email protected]>.

Acknowledgments

First and foremost I want to thank my beloved wife, Bonnie. Without her support and patience through the many long nights and six (often seven) day work weeks, this project (and so many others) would never have happened. Our life together has grown into more than I could have ever hoped or dreamed. I love you.

Thank you to my dear friend Rev. Dr. William A. Lewis of Community Presbyterian Church in Celebration. Your friendship and guidance have opened my eyes up to a life of joy and purpose beyond imagination.

To all the folks at Pluralsight, thank you for creating an organization that offers people like me the opportunity to dig deep into technology and share the knowledge gained with others.

About the Reviewers

Robert Dale Johnson III is a Software Engineer who specializes in Android, Joomla, and BD-J (BluRay Disc – Java) development. He graduated in 2008 from California State University Northridge with a BS in Computer Science. He started his career working with BD-J for Deluxe Digital Studios (DDS), Panasonic, and Deluxe Digital Distribution (D3), where he worked on movie titles such as Avatar, Oceans, Spinal Tap, and Conquest of the Planet of the Apes along with many other titles and web-enabled BluRay features. During his time at D3, Robert made the transition from BD-J to Android development where he was a principal developer on the StarzPlay, EncorePlay, and MovieplexPlay apps. He also worked on the NookVideo app developed for non-Nook devices. During his time with D3 Robert moved to Nashville, TN and eventually found Aloompa LLC where he found a home as a Senior Android Developer developing applications for festivals throughout the country such as Coachella, Stagecoach, Governsball, Bannaroo, and many more.

Along with his fulltime professional pursuits, Robert is a seasoned freelancer with many projects in his repertoire (see his personal website www.rdjiii.info) and has started a software consulting company, Contrahere Solutions LLC (see www.contrahere.com). You can reach Robert by going to one of the websites previously mentioned or by e-mail anytime at <[email protected]>. Robert is also an avid racquetball player who travels across the country playing in tournaments as a Team Ektelon player. He is a motorcycle enthusiast and loves to dabble in tech such as Arduino and RaspberryPi in his spare time.

I would like to thank my son Xander Johnson for being the best son I could ever wish for. His love and appreciation drives me to become the best that I can, pushing me forward with a smile on my face and joy in my heart. Xander, I love you and thank you for everything you have and will do to make me a better person.

Alex Lockwood is an experienced developer/consultant in the Android community, and an active user on StackOverflow. His blog can be found at http://www.androiddesignpatterns.com.

www.PacktPub.com

Support files, eBooks, discount offers and more

You might want to visit www.PacktPub.com for support files and downloads related to your book.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

http://PacktLib.PacktPub.com

Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books.

Why Subscribe?

Fully searchable across every book published by PacktCopy and paste, print and bookmark contentOn demand and accessible via web browser

Free Access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.

Preface

Long gone are the days of the mobile apps with a static UI squished onto a tiny screen. Today's users expect mobile apps to be dynamic and highly interactive. They expect an app to look fantastic when they're looking at it on their medium-resolution smartphone, and that same app needs to look just as fantastic when they switch over to using it on their high-resolution tablet. Apps need to provide rich navigation features. Also, apps need to be adaptive and responsive.

Trying to meet these demands using Android's traditional activity-centric UI design model is difficult. As developers, we need more control than that afforded by activities. We need a new approach: fragments give us that new approach.

In this book, you'll learn how to use fragments to meet the challenges of creating dynamic UIs in the modern world of mobile app development.

What this book covers

Chapter 1, Fragments and UI Modularization, introduces fragments, UI modularization, and the role fragments play in developing a modularized UI. This chapter demonstrates the creation of simple fragments and using fragments statically within activities.

Chapter 2, Fragments and UI Flexibility, builds on the concepts introduced in the previous chapter to provide solutions to specific differences in device layouts. This chapter explains how to use adaptive activity layout definitions to provide support for a wide variety of device form factors, with a small set of fragments that automatically rearrange based on the current device's UI requirements.

Chapter 3, Fragment Lifecycle and Specialization, discusses the relationship of the lifecycle of fragments to that of activities, and demonstrates the appropriate programming actions at the various points in the lifecycle. Leveraging this knowledge, the special purpose fragment classes ListFragment and DialogFragment are introduced to demonstrate their behavior and provide a deeper understanding of how their behavior in the activity lifecycle differs from that of standard fragments.

Chapter 4, Working with Fragment Transactions, explains how to create multiple app screens within a single activity, by dynamically adding and removing fragments using fragment transactions. Topics covered include, implementing back button behavior and dynamically adapting multi-fragment UIs to differences in device characteristics.

Chapter 5, Creating Rich Navigation with Fragments, brings everything together by building on the previous chapters to show how to use fragments to enhance the user's experience through rich navigation features. This chapter demonstrates how to implement a number of navigation features, including screen browsing with swipe-based paging, direct screen access with the drop-down list navigation, and random screen viewing with tabs.

What you need for this book

To follow the examples in this book, you should have a basic knowledge of Android programming and a working Android development environment.

This book focuses primarily on Android Studio as the Android development environment, but other tools such as Eclipse with the ADT plugin, JetBrains' IntelliJ IDEA, or a similar Android-enabled development tool can be used.

Who this book is for

This book is for anyone with a basic understanding of Android programming, who would like to improve the appearance and usability of their applications.

Whether you're looking to create a more interactive user experience, create more dynamically adaptive UIs, provide better support for tablets and smartphones in a single app, reduce the complexity of managing your app UIs, or just trying to expand your UI design philosophy, this book is for you.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text are shown as follows: "An application initially calls the startActivity method to display an instance of Activity1. Activity1."

A block of code is set as follows:

<string-array name="screen_names"> <item>First View</item> <item>Second View</item> <item>Third View</item> </string-array>

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "Select layout as the Resource type."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the erratasubmissionform link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Chapter 1. Fragments and UI Modularization

This chapter introduces fragments, UI modularization, and the role fragments play in developing a modularized UI. The chapter demonstrates creating simple fragments and using fragments statically within activities.

Let us have a look at the topics to be covered:

The need for UI modularizationFragments are the foundation of modularizationSupport for fragments across Android versionsCreating fragments

By the end of this chapter, we will be able to create and use fragments within a static activity layout.

The need for a new approach to UI creation

Chances are that the first class you learned to use when you became an Android developer was the Activity class. After all, the Activity class provided your app with a user interface. By organizing your user interface components onto an activity, the activity became the canvas on which you were painting your application masterpiece.

In the early days of Android, building an application's user interface directly within an activity worked reasonably well. The majority of early applications had a relatively simple user interface and the number of different Android device form factors was small. In most cases, with the help of a few layout resources, a single activity worked fine across different device form factors.