developer.android.comのTrainingを消化しようか [ 随時更新 ]

2015年4月20日

病に押され気味だったり、周囲のゴタゴタだったりで、心身共に弱り切っていたことで棚上げになっていたandroidのプログラミング技術の習得を再開、仕切り直しをすべくネタを用意してみました。

Getting Started | Android Developers
http://developer.android.com/training/index.html
公式サイトにあるTrainingを最初から順々に、途中持ち合わせた知識で小物を作りつつ、最後まで消化していきます。
このトレーニングは、基本を網羅するGetting Started(序章)と、Building App with~に分類される応用開発がMultimedia , Graphics & Animation , Connectivity & the Cloud , User Info & Location の4種類。Best Practices for~に分類される有用性や最適化に関する物がUser Experience & UI , User Input , Performance , Security & Privacy の4種類。最後にUsing Google Play to Distribute & Monetizeという管理と収益化に関する項目で構成されています。

以下はインデックスを兼ねた備忘録。随時加筆の方向で

History

2013.08.09 取り急ぎインデックスの作成

Getting Started

  • Building Your First App
  • Adding the Action Bar
    • Setting Up the Action Bar
    • Adding Action Buttons
    • Styling the Action Bar
    • Overlaying the Action Bar
  • Managing the Activity Lifecycle
    • Starting an Activity
    • Pausing and Resuming an Activity
    • Stopping and Restarting an Activity
    • Recreating an Activity
  • Supporting Different Devices
    • Supporting Different Languages
    • Supporting Different Screens
    • Supporting Different Platform Versions
  • Building a Dynamic UI with Fragments
    • Creating a Fragment
    • Building a Flexible UI
    • Communicating with Other Fragments
  •  Saving Data
    • Saving Key-Value Sets
    • Saving Files
    • Saving Data in SQL Databases
  • Interacting with Other Apps
    • Sending the User to Another App
    • Getting a Result from the Activity
    • Allowing Other Apps to Start Your Activity
  • Sharing Content
    • Sending Content to Other Apps
    • Receiving Content from Other Apps
    • Adding an Easy Share Action

Building Apps with Multimedia

  • Managing Audio Playback
    • Controlling Your App’s Volume and Playback
    • Managing Audio Focus
    • Dealing with Audio Output Hardware
  • Capturing Photos
    • Taking Photos Simply
    • Recording Videos Simply
    • Controlling the Camera

Building Apps with Graphics & Animation

  • Displaying Bitmaps Efficiently
    • Loading Large Bitmaps Efficiently
    • Processing Bitmaps Off the UI Thread
    • Caching Bitmaps
    • Managing Bitmap Memory
    • Displaying Bitmaps in Your UI
  • Displaying Graphics with OpenGL ES
    • Building an OpenGL ES Environment
    • Defining Shapes
    • Drawing Shapes
    • Applying Projection and Camera Views
    • Adding Motion
    • Responding to Touch Events
  • Adding Animations
    • Crossfading Two Views
    • Using ViewPager for Screen Slide
    • Displaying Card Flip Animations
    • Zooming a View
    • Animating Layout Changes

Building Apps with Connectivity & the Cloud

  • Connecting Devices Wirelessly
    • Using Network Service Discovery
    • Connecting with Wi-Fi Direct
    • Using Wi-Fi Direct for Service Discovery
  • Performing Network Operations
    • Connecting to the Network
    • Managing Network Usage
    • Parsing XML Data
  • Transferring Data Without Draining the Battery
    • Optimizing Downloads for Efficient Network Access
    • Minimizing the Effect of Regular Updates
    • Redundant Downloads are Redundant
    • Modifying Patterns Based on the Connectivity Type
  • Syncing to the Cloud
    • Using the Backup API
    • Making the Most of Google Cloud Messaging
  • Resolving Cloud Save Conflicts
  • Transferring Data Using Sync Adapters
    • Creating a Stub Authenticator
    • Creating a Stub Content Provider
    • Creating a Sync Adapter
    • Running a Sync Adapter

Building Apps with User Info & Location

  • Accessing Contacts Data
    • Retrieving a List of Contacts
    • Retrieving Details for a Contact
    • Modifying Contacts Using Intents
    • Displaying the Quick Contact Badge
  • Remembering Users
    • Remembering Your User
    • Authenticating to OAuth2 Services
    • Creating a Custom Account Type
  • Making Your App Location-Aware
    • Retrieving the Current Location
    • Receiving Location Updates
    • Displaying a Location Address
    • Creating and Monitoring Geofences
    • Recognizing the User’s Current Activity

Best Practices for User Experience & UI

  • Designing Effective Navigation
    • Planning Screens and Their Relationships
    • Planning for Multiple Touchscreen Sizes
    • Providing Descendant and Lateral Navigation
    • Providing Ancestral and Temporal Navigation
    • Putting it All Together: Wireframing the Example App
  • Implementing Effective Navigation
    • Creating Swipe Views with Tabs
    • Creating a Navigation Drawer
    • Providing Up Navigation
    • Providing Proper Back Navigation
    • Implementing Descendant Navigation
  • Notifying the User
    • Building a Notification
    • Preserving Navigation when Starting an Activity
    • Updating Notifications
    • Using Big View Styles
    • Displaying Progress in a Notification
  • Adding Search Functionality
    • Setting up the Search Interface
    • Storing and Searching for Data
    • Remaining Backward Compatible
  • Designing for Multiple Screens
    • Supporting Different Screen Sizes
    • Supporting Different Screen Densities
    • Implementing Adaptive UI Flows
  • Designing for TV
    • Optimizing Layouts for TV
    • Optimizing Navigation for TV
    • Handling Features Not Supported on TV
  • Creating Custom Views
    • Creating a Custom View Class
    • Implementing Custom Drawing
    • Making the View Interactive
    • Optimizing the View
  • Creating Backward-Compatible UIs
    • Abstracting the New APIs
    • Proxying to the New APIs
    • Creating an Implementation with Older APIs
    • Using the Version-Aware Component
  • Implementing Accessibility
    • Developing Accessible Applications
    • Developing Accessibility Services

Best Practices for User Input

  • Using Touch Gestures
    • Detecting Common Gestures
    • Tracking Movement
    • Animating a Scroll Gesture
    • Handling Multi-Touch Gestures
    • Dragging and Scaling
    • Managing Touch Events in a ViewGroup
  • Handling Keyboard Input
    • Specifying the Input Method Type
    • Handling Input Method Visibility
    • Supporting Keyboard Navigation
    • Handling Keyboard Actions

Best Practices for Performance

  • Performance Tips
  • Improving Layout Performance
    • Optimizing Layout Hierarchies
    • Re-using Layouts with <include/>
    • Loading Views On Demand
    • Making ListView Scrolling Smooth
  • Running in a Background Service
    • Creating a Background Service
    • Sending Work Requests to the Background Service
    • Reporting Work Status
  • Loading Data in the Background
    • Running a Query with a CursorLoader
    • Handling the Results
  • Optimizing Battery Life
    • Monitoring the Battery Level and Charging State
    • Determining and Monitoring the Docking State and Type
    • Determining and Monitoring the Connectivity Status
    • Manipulating Broadcast Receivers On Demand
  • Sending Operations to Multiple Threads
    • Specifying the Code to Run on a Thread
    • Creating a Manager for Multiple Threads
    • Running Code on a Thread Pool Thread
    • Communicating with the UI Thread
  • Keeping Your App Responsive
  • JNI Tips
  • SMP Primer for Android

Best Practices for Security & Privacy

  • Security Tips
  • Security with HTTPS and SSL
  • Developing for Enterprise
    • Enhancing Security with Device Management Polic

Using Google Play to Distribute & Monetize

  •  Selling In-app Products
    • Preparing Your App
    • Establishing Products for Sale
    • Purchasing Products
    • Testing Your App
  •  Maintaining Multiple APKs
    • Creating Multiple APKs for Different API Levels
    • Creating Multiple APKs for Different Screen Sizes
    • Creating Multiple APKs for Different GL Textures
    • Creating Multiple APKs with 2+ Dimensions
  •  Monetizing Your App

end