Logo Icon Logo
A Crowd-sourced Cookbook on Writing Great Android® Apps
GitHub logo Twitter logo OReilly Book Cover Art

RECIPE WISHLIST (temporary recipe a.k.a. Book Outline)

Published? false
FormatLanguage: WikiFormat

Problem:

There are lots of talented developers out there; we just need a way to help them decide what to write about.

Solution:

Although the first edition of the published book has been sent to the Production team to make an eBook and printed book, there are still plenty of recipes that should be added here, some of which will make it into subsequent editions of the published work. This is no time to let up!

Note: This is not intended to be a complete list, only to give you some ideas on the kinds of things to write. Use your experience in developing real-world Android Apps to guide you to what topics to write that will be helpful to your fellow developers. This is neither a complete list nor the final shape of the printed book.

The annotation "Program" for a recipe at the end of a chapter indicates that it is a complete program, complete enough for an end user to run (even if somewhat limited), as opposed to most recipes which are code fragments that illustrate a particular part of the API.

Also note: This list is not maintained as aggressively as it might be. The list of recipes that have been written is under All Recipes (also listed in the menu bar atop every page).

Anyway, there's no harm done if two people a recipe on the same topic, as they will usually provide different solutions. Likely only one of the two will get printed, but the site is to remain up for future generations to find information via web search. Also, some Recipes have been started and never finished, so don't give up if a recipe you wanted to write appears in the "All Recipes" list!

If we actually get two completed recipes on the exact same topic, either the editor will choose, or we'll ask everybody to vote using the Vote arrows on the view recipe page.

Discussion:

Most Urgently Needed

  • Simple example using App Inventor
  • Cross-platform (HTML5/PhoneGap/AppCellerator, etc).

Contents


Designing a successful Application

Testing

  • Testing code that is mixed Java SE and Android project?

Graphics

  • More Recipes involving the GL ES
  • More on 2D GRAPHICS!!
  • Using Copy and Paste
  • Pre-loading Clipboard Items

Graphical User Interface

  • More on TextView?
  • Adding a large touch navigator to a List (as Contacts, OISafe etc do)
  • Good, Effective Layouts
  • Feedback: Toast vs PopupWindow (which/when etc) Merge with "Exception Handling"?
  • Active Widget Icons (e.g., clock, in Shortcuts->Widgets menu)

GUI:ListView

  • Expandable ListView
  • sync multiple listviews
  • GridView jazzed up as per most Book Readers' Library/Bookshelf
  • More on ListView Best Practices - overscroll?

MultiMedia

  • You name it.

Camera

  • Capturing Video
  • Switching between Front and Rear Cameras

Voice Input/Output

  • Voice Input [1]
  • Voice Output
  • Adding your own Voice Actions see [2]

Files / Persistence

  • Loading and Storing Images
  • Creating "Accounts" (other than Google and Phone)

Telephone Applications

  • Smarter Dialer - Scriptable Version (bsh/jython?)
  • Program: A reusable one-touch dialer

Networked Apps

  • Newsreader
  • Telnet/SSH client
  • Chat Client
  • Synchronization Protocol (or SyncML?)
  • VNC client!?

Web Services Apps

  • Using SOAP Web Services
  • Selling Books via Amazon
  • Selling Books on Alibris
  • Buying/Selling on eBay?

SMS Apps

  • SMS your phone to take surreptitious picture
  • SMS your phone to find its location
  • Send Me Directions / Appointment

BlueTooth

NFC

  • How-to?
  • Applications?

Gaming and Animation

  • Moving Backgrounds ("Mario")
  • Distributed/MRPG Games - RedDwarf (formerly Sun Darkstar; see [3])
  • Controlling Devices (e.g., Solving Rubik's Cube)

Social networking

  • Dealing with Twitter OAuth!
  • Anything you can think of here

Cloud-based Apps

  • e.g. compute-expensive stuff
  • Hadoop for rendering map tiles in real time?
  • Working Offline (offline editing/data capture?)
  • Distributing OCR to CAPTCHA, results via email
  • ...

Location-Aware Applications

  • Take me back (car finder)
  • Current location on map
  • Find-a-friend
  • Find-a-restaurant - how to design the data structure
  • Alternate Turn-by-turn Navigation Apps

Accelerometer

  • Don't Drop Me
  • Shake-a-key (generate the same keypair on two devices without any traceable connection)
  • Body wiggle to take surreptitious photo/start video

Security/Crypto

  • Verifying Identity (local/remote)

System Details

  • Keeping the Phone from dimming/suspending (Navigator & other long-running apps)
  • Powering things on and off
  • ...

Other Languages and Frameworks

Porting Apps from Other Mobile Platforms

  • Blackberry (JavaME + lots of RIM extensions)
  • Rewriting JavaME Apps
  • Running JavaME Apps directly with J2ME Runner
  • Rewriting iPhone Apps, or emulating them how?
  • Portability with PhoneGap
  • Portability with Titanium
  • Portability with Sencha
  • Going the other way: Running Android Apps on iOS using "In The Box"
  • Going the other way: Running Android Apps on a MS-Windows PC using BlueStacks
  • Going the other way: Running Android Apps on RIM's Blackberry PlayBook

Packaging, deploying and selling

  • Marketing your App with AndroidGear (PowerGear/HandAndGo)
  • Marketing your App on the Motorola Store

Other

  • Having a plug-in enabled app (e.g., using different SMS providers over IP)
  • Browser plug-in?