Monday, January 18, 2010
Stormy Productions will participate in Indie+Relief on January 20th
A group of Mac and iPhone developers will all be donating all proceeds made on January 20th, 2010 to Haiti. You can read more about the endeavor at this link. I am happy to announce Stormy Productions will be participating in this fundraiser.
All proceeds from any of our apps (Artificial Life, Time Bomb, Piggy, or The Gavel) purchased on iTunes on January 20th will be donated to Partners in Health.
In addition to our iPhone apps, all proceeds from any purchase of a RadioKit SDK license made on January 20th will also be donated to Partners in Health.
If you aren’t interested in any iPhone apps or a RadioKit SDK license, please consider a direct donation to Partners in Health. They have been doing great work in Haiti for over 20 years and are strongly involved in the relief effort currently underway.
Thursday, January 14, 2010
Stormy Productions - a progress report
As of January, 2010, Stormy Productions has successfully developed over 65 iPhone apps. 45 of them are published under the Stormy Productions company name in iTunes. The remaining 20+ apps have been published under other company’s iTunes accounts.
In addition to these 65 apps, 80 other iPhone radio apps are licensing a portion of the radio client software developed by Stormy Productions.
Apps developed and published by Stormy Productions
All Hits Wired 96.3
Artificial Life
Classical Philippines Radio
Estereosom
1Faith FM
FM 94/9 / San Diego/ KBZT
Gay Dance Radio, GayInternetRadioLive.com (G.I.R.L.)
Gay-D-O Dance Internet Radio from www.gay-d-o.com
HardRadio.com The Heavy Metal Supersite
Heart FM Woodstock
HOT 107.9 WJFX
iRadioSuite powered by Big R Radio
106.3 Joe FM WVBB
KDRP 99.9fm and online at kdrplive.org
KUJO 99 - kujo99.com
KUT 90.5 Music, News, & NPR from Austin, Texas
KZSC Santa Cruz - Non-Commercial Radio That Rocks!
Mega Radio 97.1 FM KRTO
102.9 MGK / Philadelphia's Classic Rock / WMGK
Milwaukee's 102.9 The Hog (WHQG)
Nashville Rock Radio 102.9 The Buzz(WBUZ) - Everything That Rocks
Philadelphia’s 93.3 WMMR Rocks
Piggy- The Pig Alarm Clock
Radio Paradise
Radio 92.9 WBOS
Regina's Rock Station 104.9 The Wolf
The Coast 95.3/95.9 KOZT
The Gavel
The Gavel Lite
The Rock 106.9, WCCC
"The Source" 620 CKRM
The Zephyr / 96.7 FM / WZPH
Time Bomb
Tunemark Radio
94.7 WCSX Detroit's Classic Rock Station
96.5 WKLH Milwaukee
WPRT / Nashville’s Hit Music / 102.5 The Party
WRAT 95.9
101 WRIF Radio
WRNI Radio
89.7 WTMD Radio For Music People
WWJB - AM 1450 - The Voice of Hernando County
X92.9 - Calgary's New Rock Alternative
Z104.5 The Edge, Tulsa's Rock Alternative
Apps developed by Stormy Productions published under other company iTunes accounts:
GLAD WORKS
.977 Music / The Internet’s #1 Online Radio Network / 977Music.com
B96 We r Hip Hop
Hawaiian Rainbow - Hawaiian Music Radio
MIX FM 106.3 / SÃO PAULO / BRASIL
WGBH Radio
A Celtic Sojourn on WGBH Radio
All-Classical WGBH Radio
Public Radio International
PRI Program Stream
JAZZ.FM91 - Ontario, Canada
JAZZ.FM91
bgApps
Text 2 Wallpaper
Jacobs Media
Oldies 101.9 / WKLU / The Greatest Hits of the 60’s & 70’s
US 93.3 / Real Country Variety / WBTU
Air 1 Radio The Positive Alternative
K-LOVE Positive & Encouraging
am1500 / KSTP-AM/ 1500 AM Minneapolis/St. Paul
FM107.1/ WFMP 107.1 / St. Paul / Minneapolis
KS95 / KSTP FM / 94.5
Y-Rock on XPN
WXPN 88.5 / XPN
K-WAVE / KWVE 107.9 / The Wave Of Living Water
Pulse 87.7 FM / New York’s NEW Dance Music Leader!
The House FM / Praise 88.7 / Christian Radio
Listener Interactive
Public Radio App - This was a joint development project with Cadile Systems
.
In addition to these 65 apps, 80 other iPhone radio apps are licensing a portion of the radio client software developed by Stormy Productions.
Apps developed and published by Stormy Productions
All Hits Wired 96.3
Artificial Life
Classical Philippines Radio
Estereosom
1Faith FM
FM 94/9 / San Diego/ KBZT
Gay Dance Radio, GayInternetRadioLive.com (G.I.R.L.)
Gay-D-O Dance Internet Radio from www.gay-d-o.com
HardRadio.com The Heavy Metal Supersite
Heart FM Woodstock
HOT 107.9 WJFX
iRadioSuite powered by Big R Radio
106.3 Joe FM WVBB
KDRP 99.9fm and online at kdrplive.org
KUJO 99 - kujo99.com
KUT 90.5 Music, News, & NPR from Austin, Texas
KZSC Santa Cruz - Non-Commercial Radio That Rocks!
Mega Radio 97.1 FM KRTO
102.9 MGK / Philadelphia's Classic Rock / WMGK
Milwaukee's 102.9 The Hog (WHQG)
Nashville Rock Radio 102.9 The Buzz(WBUZ) - Everything That Rocks
Philadelphia’s 93.3 WMMR Rocks
Piggy- The Pig Alarm Clock
Radio Paradise
Radio 92.9 WBOS
Regina's Rock Station 104.9 The Wolf
The Coast 95.3/95.9 KOZT
The Gavel
The Gavel Lite
The Rock 106.9, WCCC
"The Source" 620 CKRM
The Zephyr / 96.7 FM / WZPH
Time Bomb
Tunemark Radio
94.7 WCSX Detroit's Classic Rock Station
96.5 WKLH Milwaukee
WPRT / Nashville’s Hit Music / 102.5 The Party
WRAT 95.9
101 WRIF Radio
WRNI Radio
89.7 WTMD Radio For Music People
WWJB - AM 1450 - The Voice of Hernando County
X92.9 - Calgary's New Rock Alternative
Z104.5 The Edge, Tulsa's Rock Alternative
Apps developed by Stormy Productions published under other company iTunes accounts:
GLAD WORKS
.977 Music / The Internet’s #1 Online Radio Network / 977Music.com
B96 We r Hip Hop
Hawaiian Rainbow - Hawaiian Music Radio
MIX FM 106.3 / SÃO PAULO / BRASIL
WGBH Radio
A Celtic Sojourn on WGBH Radio
All-Classical WGBH Radio
Public Radio International
PRI Program Stream
JAZZ.FM91 - Ontario, Canada
JAZZ.FM91
bgApps
Text 2 Wallpaper
Jacobs Media
Oldies 101.9 / WKLU / The Greatest Hits of the 60’s & 70’s
US 93.3 / Real Country Variety / WBTU
Air 1 Radio The Positive Alternative
K-LOVE Positive & Encouraging
am1500 / KSTP-AM/ 1500 AM Minneapolis/St. Paul
FM107.1/ WFMP 107.1 / St. Paul / Minneapolis
KS95 / KSTP FM / 94.5
Y-Rock on XPN
WXPN 88.5 / XPN
K-WAVE / KWVE 107.9 / The Wave Of Living Water
Pulse 87.7 FM / New York’s NEW Dance Music Leader!
The House FM / Praise 88.7 / Christian Radio
Listener Interactive
Public Radio App - This was a joint development project with Cadile Systems
.
Thursday, January 7, 2010
Tunemark Radio 1.2 now available on iTunes
In what was the fastest approval for any of my iPhone app submissions (just 22 hours!) the Tunemark Radio 1.2 update is now available on iTunes.
Tunemark Radio is a FREE radio player supporting the full directory of SHOUTcast radio stations (over 30,000 of ‘em!) as well as providing support for listening to custom URLs via a pls, m3u or direct audio stream.
Unlike many other free apps, this app is also free of any banner ads.
The latest update includes support for selecting the initial pre-buffering time so you can have better control over how well the app performs in different wireless situations. If you know you have a good connection, shorten the pre-buffering so you can hear the music begin playing sooner. If you are in an area with only Edge data speeds, it might be helpful to increase the pre-buffering to 20 or 30 seconds to reduce the chance of any interruption in your listening experience.
In addition to the pre-buffering change, there is now a button on the “Now Playing” screen to allow you to view the web page for the station that is currently playing. This web page address is based on what the station advertises in their audio stream, so it may not always link to the stations home page. In some cases it will link to the station of the audio stream service-provider, or it might link to a SHOUTcast status page, but in the majority of cases, stations do provide a link to their home page.
There are a few other minor changes - the station name will now scroll like a marquee is the name is too long for the title bar area, while performing pre-buffering a small status message will display how many seconds of pre-buffering are needed before playback starts, and there are also a few bug fixes.
I hope you enjoy the app, and as always, feedback is encouraged. If there’s a new feature you’d like to see in the app, send along an email. I can’t promise it will be in the next update, but I do take every suggestion seriously and try to add what I can based on my available development time. You can reach Stormy Productions via the “Contact Us” link on the navigation bar at StormyProds.com or via the “Send Feedback” button on the “About” page within the Tunemark Radio app itself.
Cheers.
Tunemark Radio is a FREE radio player supporting the full directory of SHOUTcast radio stations (over 30,000 of ‘em!) as well as providing support for listening to custom URLs via a pls, m3u or direct audio stream.
Unlike many other free apps, this app is also free of any banner ads.
The latest update includes support for selecting the initial pre-buffering time so you can have better control over how well the app performs in different wireless situations. If you know you have a good connection, shorten the pre-buffering so you can hear the music begin playing sooner. If you are in an area with only Edge data speeds, it might be helpful to increase the pre-buffering to 20 or 30 seconds to reduce the chance of any interruption in your listening experience.
In addition to the pre-buffering change, there is now a button on the “Now Playing” screen to allow you to view the web page for the station that is currently playing. This web page address is based on what the station advertises in their audio stream, so it may not always link to the stations home page. In some cases it will link to the station of the audio stream service-provider, or it might link to a SHOUTcast status page, but in the majority of cases, stations do provide a link to their home page.
There are a few other minor changes - the station name will now scroll like a marquee is the name is too long for the title bar area, while performing pre-buffering a small status message will display how many seconds of pre-buffering are needed before playback starts, and there are also a few bug fixes.
I hope you enjoy the app, and as always, feedback is encouraged. If there’s a new feature you’d like to see in the app, send along an email. I can’t promise it will be in the next update, but I do take every suggestion seriously and try to add what I can based on my available development time. You can reach Stormy Productions via the “Contact Us” link on the navigation bar at StormyProds.com or via the “Send Feedback” button on the “About” page within the Tunemark Radio app itself.
Cheers.
Sunday, January 3, 2010
Radio Paradise app listed as a "favorite of 2009" from TUAW
I just noticed that the Radio Paradise iPhone app was listed as one of The Unofficial Apple Weblog (TUAW) favorite apps for 2009:
http://www.tuaw.com/2009/12/29/our-favorite-apps-stuff-that-stayed-on-our-phones-in-2009/
It was listed several days ago and I hadn’t realized it until I was looking at download stats for my apps and noticed a large increase in downloads for the Radio Paradise app on December 29th and 30th. I figured someone must have mentioned it somewhere and a quick Google search led me to the TUAW article which was published on Dec 29th.
The Radio Paradise app is an app I wrote for free for RadioPardise.com as my way of lending support to that station. It’s a listener supported radio station and they do an awesome job of hand selecting an eclectic assortment of tracks of music that go well together.
If you haven’t tried the app, you can read more about it here. It’s free! And don’t forget, if you enjoy what you hear, try to send some support to the kind folks at RadioParadise.com.
http://www.tuaw.com/2009/12/29/our-favorite-apps-stuff-that-stayed-on-our-phones-in-2009/
It was listed several days ago and I hadn’t realized it until I was looking at download stats for my apps and noticed a large increase in downloads for the Radio Paradise app on December 29th and 30th. I figured someone must have mentioned it somewhere and a quick Google search led me to the TUAW article which was published on Dec 29th.
The Radio Paradise app is an app I wrote for free for RadioPardise.com as my way of lending support to that station. It’s a listener supported radio station and they do an awesome job of hand selecting an eclectic assortment of tracks of music that go well together.
If you haven’t tried the app, you can read more about it here. It’s free! And don’t forget, if you enjoy what you hear, try to send some support to the kind folks at RadioParadise.com.
Displaying Web Pages within an app via a custom WebViewController
I’m always perplexed why so many iPhone apps, when linking to a web site, choose to exit the app and launch Safari. It’s a very simple process to include a UIWebView and doing so makes for an easy way to keep someone within an app- leading to a smoother user experience.
About a year ago I made my own WebViewController for making the process of embedding a web page in an app even easier. I use this custom class in most of my apps and since I find it useful, I figured other developers might as well. As the name implies, it’s a UIViewController that contains a web view. It is designed to be used as a simple full-screen web browser, providing only a back, forward, and reload button, along with an option to relaunch the web page in Safari. This way, if the user really wants to leave your app while viewing the web page they can choose to, but it’s their choice.
The class also supports any view orientation, so once a web page is displayed, the user can rotate the device and the web view will also rotate.
You can download the complete WebViewController class file here.
Here’s an example of how it looks within the JAZZ.FM91 app in both portrait and landscape mode:
Since this class is a view controller, it’s pretty simple to use. You can either include it using all code, or can use it via Interface Builder. If you are comfortable including custom view controllers in your projects, you probably don’t need to read any further. But, if you are fairly new to XCode, Objective-C, and Cocoa, here are some more details for integrating this custom WebViewController class.
All in Code
Here’s an example without using InterfaceBuilder. First, download the class file, unzip it, and add the WebView folder and its contents to your project.
Then, add the necessary import line in whichever class file you choose to be using it in:
#import "WebViewController.h"
Then, add the following lines to be executed when you want the web view to be displayed:
WebViewController *webViewController;
webViewController = [[WebViewController] alloc] initWithNibName:@"WebViewController" bundle:nil];
[self presentModalViewController:webViewController animated:YES];
[webViewController release];
webViewController.delegate = self;
[webViewController loadBrowser: [NSURL URLWithString: @“http://stormyprods.com”]];
In the above code, you may have noticed we registered the containing class as the delegate for this controller. This custom WebViewControllerview has a protocol (dismissWebView) for notifying its delegate when it should be dismissed. So, we should also implement that so we can dismiss the modal view at the proper time. In the class which contains the above added code, also add this new class method for handling the WebViewController’s protocol:
- (void) dismissWebView
{
[self dismissModalViewControllerAnimated:YES];
}
And that’s it!
In the above example, we added the WebViewController as a modal view, but it could also have been added in any other way you would normally add a UIViewController. It could be one tab in a set of tabs, etc.
Using WebViewController via Interface Builder
If you were using Interface Builder (which I recommend whenever possible) you can do it as follows.
In whatever class you want to include this WebViewController, add the import for the .h file:
#import "WebViewController.h"
Then, add the webViewController to the class as an IBOutlet:
IBOutlet WebViewController *webViewController;
Hook up this outlet in Interface Builder to a view controller object, and using the Inspector change the class identity to WebViewController. It should look something like this:
Then, when you want to have this WebViewController displayed, you would do it something like this:
[self presentModalViewController:webViewController animated:YES];
webViewController.delegate = self;
[webViewController loadBrowser: [NSURL URLWithString: @“http://stormyprods.com”]];
Note how this code is very similar to the earlier “code-based” method of displaying the WebViewController, but in this case we are not creating the class and we are not releasing the class either, since the creation or release is done behind the scenes by glue provided automatically by using Interface Builder.
And, finally, we’d still need to implement the protocol for dismissing the web view controller when it wants to go away:
- (void) dismissWebView
{
[self dismissModalViewControllerAnimated:YES];
}
About a year ago I made my own WebViewController for making the process of embedding a web page in an app even easier. I use this custom class in most of my apps and since I find it useful, I figured other developers might as well. As the name implies, it’s a UIViewController that contains a web view. It is designed to be used as a simple full-screen web browser, providing only a back, forward, and reload button, along with an option to relaunch the web page in Safari. This way, if the user really wants to leave your app while viewing the web page they can choose to, but it’s their choice.
The class also supports any view orientation, so once a web page is displayed, the user can rotate the device and the web view will also rotate.
You can download the complete WebViewController class file here.
Here’s an example of how it looks within the JAZZ.FM91 app in both portrait and landscape mode:
Since this class is a view controller, it’s pretty simple to use. You can either include it using all code, or can use it via Interface Builder. If you are comfortable including custom view controllers in your projects, you probably don’t need to read any further. But, if you are fairly new to XCode, Objective-C, and Cocoa, here are some more details for integrating this custom WebViewController class.
All in Code
Here’s an example without using InterfaceBuilder. First, download the class file, unzip it, and add the WebView folder and its contents to your project.
Then, add the necessary import line in whichever class file you choose to be using it in:
#import "WebViewController.h"
Then, add the following lines to be executed when you want the web view to be displayed:
WebViewController *webViewController;
webViewController = [[WebViewController] alloc] initWithNibName:@"WebViewController" bundle:nil];
[self presentModalViewController:webViewController animated:YES];
[webViewController release];
webViewController.delegate = self;
[webViewController loadBrowser: [NSURL URLWithString: @“http://stormyprods.com”]];
In the above code, you may have noticed we registered the containing class as the delegate for this controller. This custom WebViewControllerview has a protocol (dismissWebView) for notifying its delegate when it should be dismissed. So, we should also implement that so we can dismiss the modal view at the proper time. In the class which contains the above added code, also add this new class method for handling the WebViewController’s protocol:
- (void) dismissWebView
{
[self dismissModalViewControllerAnimated:YES];
}
And that’s it!
In the above example, we added the WebViewController as a modal view, but it could also have been added in any other way you would normally add a UIViewController. It could be one tab in a set of tabs, etc.
Using WebViewController via Interface Builder
If you were using Interface Builder (which I recommend whenever possible) you can do it as follows.
In whatever class you want to include this WebViewController, add the import for the .h file:
#import "WebViewController.h"
Then, add the webViewController to the class as an IBOutlet:
IBOutlet WebViewController *webViewController;
Hook up this outlet in Interface Builder to a view controller object, and using the Inspector change the class identity to WebViewController. It should look something like this:
Then, when you want to have this WebViewController displayed, you would do it something like this:
[self presentModalViewController:webViewController animated:YES];
webViewController.delegate = self;
[webViewController loadBrowser: [NSURL URLWithString: @“http://stormyprods.com”]];
Note how this code is very similar to the earlier “code-based” method of displaying the WebViewController, but in this case we are not creating the class and we are not releasing the class either, since the creation or release is done behind the scenes by glue provided automatically by using Interface Builder.
And, finally, we’d still need to implement the protocol for dismissing the web view controller when it wants to go away:
- (void) dismissWebView
{
[self dismissModalViewControllerAnimated:YES];
}
Subscribe to:
Posts (Atom)