A quick look at WorldVoice Radio
How to describe WorldVoice Radio? I like to think of it as ham radio for the modern age (the actual hobby of amateur radio sadly seems to be dying a slow death -- yes, I am a ham (KC0EZH)). The app page in iTunes calls it "shortwave radio for the 21st century," and the app is complete with radio tuning sounds as you flip through the "frequencies" to visit stations that have been set up by other WorldVoice Radio users.
Correction - According to reader Allen Pitts of the American Radio Relay League (ARRL), there are over 100,000 new hams in just the past 4 years and 2009 is already looking like it will set a record. The percentage of hams going on to get higher class licenses is also up significantly. I apologize on behalf of the hobby for my mistake!
You start off by setting up a radio station. Mine is KSTV, "all Steve, all the time," and you'll hear my sultry, sonorous tones babbling about something or other when you tune in. That station is assigned a frequency, which in this case is 545487. You can have a detailed description of the content on your station, and also provide a custom logo if you want one.
If you're happy to just listen, you can press the scan buttons and listen to broadcasts that are coming in from your fellow 'casters. Most of them are recorded in two of the app's recording modes; the studio, which provides a way to have a wee bit more control over your "show" before broadcasting, and the quickcast, which gives you 30 seconds to tell the world what you're up to. Does this sound like an audio Tweet? Yeah, it did to me, too!
Speaking of Twitter, there's a way to send a Tweet every time you broadcast a new recording. You need to use the WorldVoice settings icon under the iPhone Settings to do this, but it adds a way to get the word out to the world that you're on the air.
If you want to record, you can either go to the studio or the quickcast button and record on the device. Want to record more than 30 seconds or have better production values? Any properly formatted sound file can be sent to the app in the studio, so if you want to record a long podcast and ship it to the device to be broadcast on WorldVoice Radio, that's not a problem. WorldVoice Radio has a built-in web server to facilitate the transfer of your podcasts from Mac or PC to the iPhone.
Like most real radios, you can set presets that jump to a station with one tap. This is great if you find a show that you absolutely love hearing and you don't want to spend all day scanning through available stations to find it again. WorldVoice Radio uses the Push Notification feature in iPhone OS 3.0 to notify you of new shows available on any of your presets. There's also a built-in directory of all of the current stations. It is searchable, which makes it much easier to find shows that you may like.
One other great feature is that you can leave comments for the broadcasters. If you liked (or hated) a specific recording, it's easy to leave text feedback that is visible to broadcaster the next time they fire up WorldVoice Radio.
The app is fun to use and to listen to, although most of the initial recordings from people tend to be of the "Hi, this is my first broadcast" genre. I think as people tap into the power and possibilities of WorldVoice Radio, we'll see it really take off. All it takes is a little imagination and US$2.99 to buy the app from the App Store [opens iTunes], and you're on the air. There is also a Lite version [opens iTunes] available for free if you want to give the app a spin before spending your bucks.
Several early users reported issues setting up stations; Kai reports that those issues have been resolved and some other issues are quickly being squashed by the team at RnSK Softronics.
Beta-testing WorldVoice radio
Although I have some previous handheld development background, nothing in my limited experience was close to what RnSK Softronics did during the last few months. Some developers make it sound like anyone can just grab the SDK and churn out a couple of apps a week, but as Kai noted after the app was available, "The app took about 2.5 real-world months to do, from first line of code to market, with an average of about 16 hours/day 6 and a half days a week. I don't want people thinking that I, or they for that matter, could do something like this on the weekends..."
After letting Kai know in early May that a few of us wanted to test his mystery application (he wouldn't tell us what it was), we waited anxiously to see what he was up to. The following text contains copies of some of the early emails that went back and forth between me and Kai after the beta testing began.
May 16th -- the first 2.2 build arrives (the app was tested by a lot of people without iPhone 3.0). I install it on my iPhone 3G, and nothing works.
May 17th -- An email arrives from Kai -- "First, I'd like to thank you guys for your patience, and apologize for wasting your time previously on this. Briefly, due to a bizarre clerical issue I'm still trying to resolve, the main domain [for the WorldVoice servers] expired... As such, attempting to use this thing earlier today resulted in what the kids would call a "massive fail" :) Everything has been moved to my backup server/domain and as such, should be working as sweetly as originally designed. Give it a go."
I erased the old build from my iPhone and from iTunes, dragged the provision file and app to iTunes, and installed the new build. This one worked a bit better, but in an email titled "I guess this is why they call it beta software," I did my part as a tester and send errors and gripes to Kai. He responded almost immediately:
Steve: Howdy, Kai --
I installed WorldVoice this afternoon on my 2.2 based iPhone 3G and I'm having some issues. Thought I'd do my part as a beta tester and pass 'em along for your consumption:
1) I think the startup is a little odd. You go from a portrait splash screen into the landscape radio. Just sayin'.
Kai: This is a bit of a problem that I am not sure how to handle; Apple doesn't exactly let us change the splash and there are portrait parts. I welcome any suggestions.
Steve: 2) The scanning is working just fine. I'm enjoying zipping up and down the frequencies. So, what happens after you get 999,999 users? ;-)
Kai: I retire? :)
Steve: 3) Recording doesn't appear to be working for me, either that or there's no way that I've been able to find to play back.
Kai: Ah! Thank you! When I tell you it will be painfully obvious, but because I have to tell you, it is a Bug. In the Studio...touch the folder on the LCD.
Steve: When I use the Quick Record, it appears to be listening to me, then when I stop it says "Send Ready" for a few seconds before showing "Cancelled".
Kai: :) Again, I welcome your suggestion. The software explained this the very first time you tried to use the quick recorder but it was unclear or you didn't read it. If it is not clear, I can fix that. If you didn't read it...I don't know what to do. It works the same as when you "arm" it; When it says 'Send Ready' it wants you to press the button again to confirm it.
Steve: If I record in the Studio (once again, the jump from landscape to portrait is very jarring)
Kai: It is the transition itself, or the fact that it is doing it? The problem, and I seriously need a hint here, is that if we go Portrait for the Radio Proper, I am afraid things will be too tiny; if we go landscape there, tables are a bit of a mess :(
Do you think there is some way we could make the radio work portrait?
Steve: it shows that I have a recording, but I can't listen to it.
Kai: Touch the Folder for File Management. You can rename, add tags, etc.
Steve: If I upload it, it shows that it has uploaded, but I can't listen to it when I go to my frequency.
Kai: That is a problem. What's your freq?
Steve: More later. Directions to a website with instructions would be, uh, helpful.
Kai: Indeed. However, we may be able to fix the counter-intuitiveness with some more input.
At this early point in the testing process, Kai was already responding to user interface changes and feature requests by testers, in addition to just getting the app to work. Since WorldVoice depends on a server-based push notification system, there was a lot going on behind the scenes that we weren't aware of.
Recently, Kai talked to me about what developers need to consider when users are obviously having issues getting an app to work. "In the original incarnation, the app was NOT INTUITIVE. In fact, the best email exchange I had with you was one of the earliest, where you told me bluntly, but not cruelly that the software had the potential but there were too many questions that needed to be answered. Prospective devs need to understand that in the really-for-real world, usability problems and lack of a 'discoverable UI' are effectively 'bugs' and should be treated that way."May 18th
-- Some major changes, but some major issues:
Kai: I was Just talking about you "on the air". It appears you were...counting? :)
Steve: Whoa. So you DID hear that. Wish I could have...
Kai: Let's go over these then, hmm?
Steve: Now when I go into Quick Record, it's recording and the double-tap shows that the file is being uploaded. Unfortunately, that's about all. When I tune into my station (KSTV - All Steve, All The Time!) there's nothing. The Uploaded Shows screen shows nothing. Arrrrgh.
Kai: The Quick Record function is just that: You record and send, or not. It was put in because apparently the studio was too... complicated I was told :)
Steve: If I were you I'd just do QuickRecord and screw the studio. But that's just me.
Kai: Really? You realize with that option that virtually nothing but "hey! woo! YAAAY!" crap could be done, right? The reviews would be like "it could be so much more if you could..." Know what I mean?
Steve: Guess I don't understand the underlying requirements, which makes a lot of sense considering I just picked this up yesterday afternoon! From my point of view, I see the Studio giving me 60 seconds of recording time, which is the same that I get with the QuickRecord function. What's the difference supposed to be, other than letting me change the genre, name, language, etc...?
If I use the one portrait screen with the mic and "On Air" sign, it will record and put my recorded files into the Recorded Shows screen.
Steve: The recordings don't last the full time, however. For example, a 30 second recording I made only plays for 4 seconds before closing.
Kai: It only recorded 4 secs, or only played back 4 secs?
Steve: Only played back 4 seconds of my exciting radio voice counting...
Kai: This happen again?
Steve: Yeah, I just tested it again. I recorded a full 60 seconds in the Studio, changed the name, and then hit the upload button. If I try listening to the recording in Recorded Shows, it does nothing. In fact, the only thing I can listen to is the short piece of music I moved over from my Mac (M4A).
When I upload the file, I get the "Show Published. Your Show is Now Live" dialog,
Steve: But I can't tell if it's really uploaded since I can't listen to it.
Steve: Got a full device lockup when trying to go to Preset 1, which I had set to my station and frequency.
Kai: Hrm. This has never been reported, and is likely random. A full device lockup?
Steve: Yes. Just happened once. Hasn't happened again, so I think it was pretty random. [Meanwhile,] when trying to upload a file via the web browser, I keep getting the message to "Enable WiFi in Settings to Upload".
Kai: Ok. This is a Bonjour thing. The system gets info about your IP address and eventually puts it in there. I need to change what that says. Try it; just let it sit there and it will put the IP info there when it gets a notification from Bonjour about it.
Steve: This was with WiFi enabled... Turning WiFi off and back on again didn't help, nor did doing a restart of the iPhone. What's odd here is that it DID recognize that I was on a WiFi network earlier. Later --- it took a few minutes for the app to recognize that I was on a WiFi network. Got the upload web page to appear (WorldVoice Radio Transfer Service), and I successfully uploaded a short file to the device, which showed up under Recorded Shows. Couldn't get it to play back on the device, or when trying to tune in. In fact, I can't get to my channel anymore while scanning (545487).
Kai: What type of file? Since you were sent this "informally" it is likely that you didn't know that m4a is what is supported out of the box for testing; however the software will take a few more types and convert to what we need in about...18 hours from now.
Steve: The first one was an AIFF. Whoops. The second file was an M4A, pretty short.
Kai: We used to use those, but have gone with m4a apple lossless.
I won't continue with the back and forth dialog that went on for three or four weeks, but it finally resulted in this wonderful email yesterday, telling us that the app had been approved and was in the App Store:
Kai: ...Apple not *only* chose to pop WorldVoice *and* WorldVoice Lite into the App Store, AT THE SAME TIME and in THE PROPER ORDER, they did it in a *timely manner* without requiring a *single* revision from me.
Was this fun? Yep! In the four or so weeks that it took to get this app to market, Kai provided an endless stream of new builds, each one a bit less buggy and more feature-filled than the previous one. There were a few setbacks along the way, but in the end his team created a very nice-looking, easy to use, and incredibly fun iPhone app.
WorldVoice Radio wasn't a one-man effort. As Kai noted in a recent email, "There is no way I could have pulled this off without the help of about 60 beta testers worldwide and a very dedicated [QA lead who] donated a lot of hours.... I didn't remotely do it 'alone' and people, especially prospective devs, need to understand a valuable lesson I learned: If you are a 1-3 man kind of team, seek help. Beg for it. Rake leaves, whatever."
Be sure to check out the gallery of screenshots below.
If you plan on using WorldVoice Radio, post your station ID and frequency in the comments so other TUAW readers can listen in on your news. Me? You can listen to my blather at http://worldvoice.kaisakura.com/545487