Saturday, September 11, 2010

Historical Revision — v1.4

Well, fun, now I have a better understanding of backwards compatibility and Android versions.

I had asked my friend at work to download my app to show him "all the features," but he couldn't find it in the marketplace. Hmmm. I immediately suspected a firmware version difference. Turns out, he had 2.1, whereas the minSDKVersion tag in my application's manifest file was set to "8" (2.2). "Aha!"—I thought—"I'll simply change the minimum SDK level to 7!" It was a brilliant solution, requiring no programming whatsoever.

It was too good to be true, apparently. I found out later that the app crashed before even opening on 2.1 phones. This, upon further investigation, was caused by one simple new addition: Display.getRotation. In former Android versions, the method was Display.getOrientation. With a bit more research and fiddling, I figured out how to make it work for everyone—even all the way back to Android 1.6! This feat required a few more changes than just the orientation one, but overall nothing too complex. After all, my app is just a pillow, right? How complex could it be?

Tuesday, September 7, 2010

Versions 1.2 and 1.3

After a small hiatus from development, I returned with renewed vigor and verve to reapply myself with gusto.

*cough*

Or, at least I returned. I dabbled in a few bug fixes, only to be continually frustrated by my vastly incomplete knowledge of Java and Android programming. Every leak I covered, it seemed, sprung two new ones, plus a mole. As many Moles I A-Whacked and leaks I plugged, new problem seemed to just pop up somewhere else. Thus, my on-and-off dabbling didn't accomplish much.

Finally, I realized I and my application would have to hunker down and duke out our differences in a wee hour death match. I stayed up until 5:30 AM, but I finally worked in the following changes:

  • Sound playback is now accomplished through a background service (before it played through the main activity; now it is freed up to handle things in a more ongoing way)
  • A settings panel is now in place, with an option for auto shutoff based on an alarm
  • A notification appears in the status bar while sound is playing in the background
  • Two new sounds: Waterfall and Lapping Waves
I've come a long way; there is still a long way to go. I drew up a list of plans, and it grew much larger than I expected it would. The ultimate goal is to have enough features and sounds to warrant a paid version, accompanied by a Lite version with limitations and sound samples to try out before purchasing the full one.

Saturday, August 21, 2010

Pillow Version 1.1

After much sweat, hair-pulling, and threats on my laptop's life, I have hashed out the first update to my Pillow Android application. The main goal was to implement the system for smooth looping audio playback (meaning no cuts or blips when the user rotates the phone or presses buttons). Being new to Android development—and, indeed, Java programming in general—I spent the better portion of my Saturday mucking about on various reference websites and wallowing in misunderstood code examples. My method was as follows:
  1. Search Google for keywords relating to the subject (Android, Service, Context, Intent, etc.)
  2. Locate a promising link and read the material
  3. Copy code snippets and hack, paste, cut, and spew the bits all over my project
  4. Test the changes
  5. Wish I hadn't made such drastic alterations as I attempt to reverse them
  6. Repeat
You can imagine, I'm sure, how frustrating this all can be to a programmer nascent to the language. I have only a dim perception of how most of it works, and the rest is trial and error.

At the end of the day, I had managed to add a menu whereon my one test clip can be toggled on and off. So far, it seems to loop smoothly and run stably. I'm crossing my fingers.

Thursday, August 19, 2010

Pillow App Hits Android Market

As I sat in a chair in the office at work today, waiting to be released by higher-ups, boredom threatened to strike. My coworkers and I whipped out our smartphones and started surfing the WWW via GGG, sending txts via MMS and SMS, and downloading and trying new apps in an attempt to retain good attitudes and morale—not to mention consciousness. The work day had been long and grueling, and everyone's heads were drooping low. In a moment of enlightenment, I rested my face lazily against the screen of my Motorola Droid and announced, "Someone should make a pillow app."

Someone did.

That someone is me. I couldn't get it off my mind; how simple, how silly! A pillow displayed comfortingly on the screen of your cellphone, ready to lull your mind into a warm, hazy place of rest.

Currently only a picture, future plans involve ambient sounds and white noise options to soothe you to sleep. These will come with timers and alarms for automatic shutoff. The pillow will also be customizable with different pillowcases, and a foofing ability will allow you to give your pillow that extra fluff when it starts to feel (ahem—look) a trifle flat.

Stay tuned!