[iOS] Peapod: better music controls for iPhone

KatharineKatharine Posts: 600Member, Administrator, Moderator admin
edited June 2013 in Pebble Watchapp Directory
We've all seen myriad hacks abusing the music app as a user interface. That's dull; let's write a user interface to replace the music app, instead.

I therefore give you Peapod, an app that lets you control the iPod on your iPhone. It features everything the built in app has, plus:
  • Volume controls
  • Library browsing (by artist, album, composer, genre or playlist)
  • Album art
  • Where-you-are-in-the-track-indicator (I still don't know what those are called).
Some screenshots of the "now playing" display:

image   image   image

And some of the general browsing interface:

image   image   image

You can find the source on GitHub. You can also get a compiled watch app from here; as ever, getting a compiled phone app isn't something I can really help you with (but MacBuildServer generated this).

Usage: browse, pick music. You can toggle between volume controls and track controls by holding the select button briefly on the now playing screen.

Known issues: as usual, only one app at a time. Lists may briefly appear blank (though they shouldn't) if you scroll quickly. Selecting an item immediately after you stop scrolling may do nothing; if so, back out and repeat the selection. It should now work. It can only control the built-in music app from the on-device (or perhaps iTunes Match/iCloud) library. If you alter the playback state other than using the app it may get confused due to limitations on how apps in the background can observe music changes. Leaving and returning to the now playing interface and/or pausing/playing or changing track should probably fix this. If you have more than 1,170 items in a menu, the list will be truncated there due to the pervasive use of 16-bit signed integers in the Pebble UI framework.

Alpha or beta-ish quality, but hey. Let me know what you think!

As an aside, this project is also known as "why would anyone ever need more than 124 bytes?" Additionally, while writing it, I discovered the following:
  • Animations are buggy.
  • Text rendering is buggy.
  • Communication is buggy.
  • You can't have a layer more than 32,768 pixels tall.
  • The PebbleKit SDK on iOS really likes causing the app to receive SIGPIPE and crash.
Post edited by whacko on
Sparkly Code Princesskatharine@getpebble.com. I prefer email to forum PMs.
CloudPebble Online IDE | Pebble Stopwatch | <3
Legacy: httpebble | Peapod
There are two As in my name.


Sign In or Register to comment.