GDG-DC Sept 6th

I had the privilege of being one of the 200 or so attending a Google Dev Group meeting in which a few of Google’s Android Developer Advocates gave a couple of talks as well as had the AOL development team present a demo of their work which will soon be published in the market.  The meeting was held in an auditorium of AOL’s campus which was pretty nice and could hold easily hold the 200 attendees. The Google guys bought tons of pizza for everyone.  A big thanks to both AOL for the room and Google for the food. =D  If you follow the meeting link, you can see the pictures taken at that event.

The first speaker was David Chandler who is the primary developer behind the WebView widget and is the primary force behind GWT. He was in town for the FCC’s meeting on Accessibility in Mobile Apps and the Mobile Web and agreed to be one of the speakers for this little shindig.  He talked about WebView apps and how many of them are designed on-the-cheap as a way to target several different mobile ecosystems with one app.  He pointed out how many of them are also designed to look like an iOS app… which is incongruous and confusing for an Android user and basically to “don’t do that”.  I learned that AsyncTasks are great for background tasks, but not for a task that may get killed mid-run if the device orientation changes as they will get cancelled (use a Service instead).  Spring Android is an open source project with a REST encapsulation set of classes to make those kinds of calls easy inside Android.  Building a service around Spring Android would be the best practice, but you can put it anywhere you like, even inside an AsyncTask.

Android 4.1 (JellyBean) introduced a new set of notifications, with a much larger size and buttons and even a short list.  One of the problems with this new set was a fairly hidden feature of the expandable notification (hidden because it isn’t really discoverable):  some notifications can be expanded if you use two fingers to “pull down” which would expand it.  Not really something hinted at visually and, for people like me, impossible to discover because I am usually using the phone one handed, preventing the use of two finger gestures most times.

The Google I/O 2012 App demonstrating many of the new features is still available on Google Play, but not for much longer. Source code for the app will be available for a long time to come and can be seen/downloaded from here. Demonstrated features include: the new notifications, ICS calendar integration, GCM (successor to C2DM – push notification from web server), Android Beam (using the NFC), and more.

David then went on to discuss the FCC meeting on Accessibility and proceeded to talk about various quick and easy ways to vastly improve accessibility of an app for the visually impaired.  He gave a short example of a slider bar and how, even with text to speech enabled with various text being read as you operated it, the UX is quite cumbersome.  Supplementing the slider bar with simple + and – buttons to move the slider up and down did not add much complexity, but made the task of properly setting the value of the slider so much easier by just using those simple buttons instead.

The AOL Android development team gave their demonstration next and they showed off their fairly sophisticated magazine reader app that had multiple call outs, gesture actions, vertical page scrolling, and even content drill down based on hot spots defined in the xml content.  The thing I found most fascinating was their ability to hook up a device directly to the screen projector and show off the app that way (at least for the tablet, their phone could not hook up).  When I inquired about that ability after the event, they said it was a Motorola Xoom with an HDMI port.  After I got home, I immediately checked my ASUS tablet for such a port and found it has a microHDMI output.  The Samsung Galaxy S III handset also has one, so I may need to get one of those kinds of phones the next time I need to do a presentation with a handset.  AOL On is a new Google TV app that will add feature rich content from AOL as a set of new channels for you to watch on your Google TV, including HuffLive.  While I technically found the apps presented impressive, I don’t typically read the magazines they would be delivering nor do I have a Google TV.  Others will have to comment about them once they get published (which should be soon, this was the first time anyone outside AOL got to see anything about them).

Adam Koch and Roman Nurik came down from Google’s NYC office to give a micro version of their Google IO presentation about the features of JellyBean (4.1), best practices for UI design, and how best to design and develop with the Nexus 7… which is quirky because of it’s default portrait mode instead of landscape, being 7″ with a “tvdpi” of 213dpi, and only a front facing camera. They talked about UI design, UX should be “butter” (smooth — opposite of “janky”), making sure we have “hardware acceleration” option turned on in our apps and that we should all review the design guidelines with regards to how the new Up button behaves (which is the app icon) vs. the Back button which has been around forever. A special note was said to pay attention to the new activity attribute parentActivityName and the TaskStackBuilder class.

Adam asked at one point during his talk if anyone created a “universal app” which targeted any and all screen sizes. As far as I know, I was the only one to raise my hand.  He asked me about the challenges I faced and I mentioned all the different layout folders and value folders necessary to create such apps.  During Roman’s talk about best practices for UI design in helping to support “universal screen apps”, he asked the audience to see how many were using the “smallest width” layout filter (i.e. layout-sw600 folder for 7″ tablet layouts as apposed to “layout” for handsets and “layout-sw720″ for 10” tablets).  When Roman saw that I was the only one with my hand up, he commented “Only one? That’s very disappointing. You all should be using it”. It made me realize that my development process and experience is not only valuable, but rare, too (around here, at least).

All in all, it was a very informative 2 hour set of talks and demonstrations and I appreciated every minute of it.  Thanks again to Google and AOL for sponsoring the event and presenting something like that. Very cool. =)

As I left the parking garage at AOL’s campus, I was greeting with this warning sign.

Crosswalk warning sign at AOL

AttachSave 4.0 released!

AttachSave 4.0 (all versions) now adds Google Drive support (thanks to John Martens for the inspiration and testing).  While Google Drive lets you save your file locally, it keeps it in a private area of the SD card so that you cannot normally access it except via the Google Drive app.  If you use the Send file option in Google Drive, you can now use AttachSave to copy that file out of the private app area and into your public storage area somewhere.


File Browser 7.8 released!

I have just published my latest File Browser release, version 7.8!  The app is available on a variety of markets, but you can also download it from here if you like. [wpdm_file id=3]

Lots of little improvements and bug fixes along with a couple of new features. You can read about all the change details over in the changelog. The biggest changes are that  thumbnails are now being cached for 3 days and the new option to “Use Full Screen” which will hide the Notification Bar (aka Status Bar). The “Use Full Screen” option is only available to Android pre-3.0 since you cannot hide the Notification bar in 3.0 and 4.0+.

Thanks to all my translators for helping me with this update and a special thanks goes out to Raffaele Dell’Aversana for translating the entire app into Italian!

I hope you all enjoy using it as much as I do. =D

File Browser Intents and Providers

I have finally put together a comprehensive list of Intents and Providers published by my File Browser app. You can find that list over on the File Browser Intents & Providers page.

As a convenience, I will post what is currently listed there:
Intent & Provider List

  1. Pick File
  2. Pick Multiple Files
  3. Pick Folder
  4. Save To New File
  5. Save To New Folder
  6. Playlist Creator
  7. Create Zip File
  8. Unpack Zip File
  9. MIME Type Provider


Do not install Widget apps onto the SD card

Apps like my Swidget, which are apps whose entire purpose is to provide a widget for your home screen, may have issues with being installed on the SD card. Android 2.2 introduced the ability to install apps to the SD card if the app allows it. This works great for many applications, but for some widget apps, it can be problematic. Continue reading

Swidget released to the public

A friend of mine was very interested in a pet project I had started a while ago when I got sick of having no compact version of Google’s switch bar available. The Market only has single toggle widgets and Google’s built in widget is quite large. I don’t toggle all those switches often enough for something like that to be useful.

After several stops and starts, I finally settled on something I could not only live with, but it is something that replaces several widgets on my phone, freeing up a lot of room for something more valuable like a memo widget, clock, pic, app shortcut, etc. etc. etc. My idea was to create a 1×1 cell widget that popped up with several toggle switches after pressing it. By doing so, it allowed for several to be grouped up together into one tiny package. The amount of “clicks” increases by one, and that will put off some people, I’m sure, but I don’t care so much for adding a click if it saves me a ton of room on my Home screen(s).

My friend also suggested I make some of the switches auto-enable themselves if the phone got plugged in as well as turning them back off once you go back on battery. I have found that plugging/unplugging the phone is usually the reason I toggle anything in the first place, so that seemed like quite a handy feature to implement.

I found the challenge to create Swidget quite enjoyable and am pleased with the outcome. I decided that there may be others like my friend and I who would like the option of a compact set of switches rather than a large set of individual ones taking up valuable Home screen real estate. Swidget is now available in the Android Market, AndAppStore, and SlideME for only $1.49.

Enjoy and take care!

What is a “gopher” app?

Aside from the usual reference to a certain networking protocol, I made up the term to describe a certain kind of application.  While the implied phrase of “go for …” has some meaning for these small apps, it also shares other characteristics of the little animal.  A gopher app has little, if any, user interface.  Most of it’s work is done underground, hidden from view, and only occasionally pops its little head up now and then when it requires some user interaction.  These kinds of apps do not exist as a Widget on your phone’s Home screen, do not reside in the App Launcher area like a traditional app, are small and prefer to stay out of sight (or underground) until you need them for their specific task.  They are not libraries that sit like a book on a shelf waiting for someone to come use them, nor are they like a nasty virus who try to stay completely out of sight for fear of cleansing.  They can be managed like a normal app so that if you find it annoying, you can hunt it down and kill it (by uninstalling the thing), but for the most part, they stay hidden and only pop up when you need them.

The primary example of what I am talking about is my AttachSave app. The whole design is to extend the functionality of another app and not really do much on it’s own.