Now, David has taken lead on the upcoming Corona Comic SDK for those of you specifically looking to get into the iComic space! Be sure to check out Be Confident on iPad, and read about David’s experience below…
It was September 1, 2010, and I finally decided to become an app developer. I’d been planning it for a couple of years, but now was the time to act!
I hadn’t done any game or entertainment programming lately. But 25 years earlier I had been a game designer and programmer at LucasArts and created lots of complex games. How hard could programming an iPhone be?
I installed the iOS SDK and opened the O’Reilly book on the iPhone SDK that I’d won at a meetup a year earlier. So what if the book was published almost 2 years before and was based on an earlier version? How different could it be?
A week later and my confidence in my programming abilities was shattered. I thought learning a new programming language would be a snap, but Objective-C was compressing my brain into entirely new shapes and directions it did not want to go. The “simple” tutorials I found online were anything but. Why did I need to add pages of code just to get my iPad to say “Hello World?” I had written thousands of lines of code in the ancient languages of my youth (BASIC, Pascal, 6502 Assembly, and especially LucasArt’s SCUMM). Unfortunately it seemed none of that knowledge was transferable.
I began reconsidering my new career path when I stumbled upon a tutorial on how to program a clock using the Corona SDK. Wow! This code was legible! It made total sense. And best of all, it seemed capable of doing everything I wanted.
I was hooked.
Corona Comics SDK
While browsing the sample code on Ansca’s website, I found the Corona Comics SDK. This framework lets developers easily define panels and camera positions on a graphic novel page. Why did I want to do graphic novel apps? Because my wife, Annie Fox, has a best-selling series for middle school kids that’s a graphic novel! (Middle School Confidential) Maybe my dream of being an app developer wasn’t so crazy after all! 🙂
Using the Corona Comics SDK, I used a page from Annie’s books. I could zoom into individual frames and provide a totally unique reading experience (unbook-like). Annie’s publisher, Free Spirit Publishing, was open to a collaboration.
The Comics SDK was in an early form, and my requested enhancements and bug fixes weren’t going to happen soon. So I jumped in and started making the changes myself.
A major feature I added is sound support, both on a page-by-page basis, and frame-by-frame. I’m not talking about “read it to me” narration, but subtle ambient sound, music, and occasional effects to enhance the visual action of the illustrations. A lot more sounds are triggered when you view the app on a frame-by-frame basis. This is because we know exactly where the reader is looking.
As of today, Electric Eggplant is releasing our very own version of the Corona Comics SDK. Now, everyone in the Corona community can access all the features of our app.
I’ve seen many posts asking about how to fix this bug or that bug, or add a feature to the original Comics codebase. We’ve now advanced the code base to the next generation and are looking forward to seeing hundreds of new Corona-based graphic novels in the app store!
This isn’t all altruistic on our part. By releasing our code, some of you will add your own enhancements and optimizations, and we’ll reap the benefit of those changes. And since we’re including the first chapter of Be Confident as part of the code base, you may want to buy the whole app for an 8-14 year old in your life.
[EDITORS NOTE: The source is now available at our Github, click to download here.]
Here’s a partial feature list of our Corona Comics SDK. More complete documentation is coming soon (though the code itself is extensively documented):
- Zoom in/out via double-tap: Double-tap on a frame and you’ll zoom into it. Double-tap again, and you zoom out. You can continue reading the graphic novel in either mode, but there are a lot more sound effects in zoomed-in mode. It also makes the experience much more like watching an animatic.
- Hires images: The artwork we’re using is 2x the size of an iPad screen, or 1536×2048. This means that you can zoom into an image and it won’t get blurry.
- Separate word balloons layer: The word balloons for each page are stored in a sprite sheet. Because they’re on a separate layer, they can overlap adjacent panels. For panels with multiple word balloons, we often do additional “camera moves” inside that panel, showing/hiding word balloons as the story progresses.
- Memory management: Catches iOS out of memory warnings and clears all page. Also clears pages as you move through.
- Links: You can include web links, links to the iTunes store app, or email links. In the case of web links, a web popup opens on the page. The other two take you to the relevant app.
- Ratings prompt: After you finish the graphic novel, we prompt you to rate it with an alert. The options include “review now,” “later,” and “never.”
- Message from a website: When you go into the Info screen, it checks a file on our web server (you can use your own server, of course) and displays it in a panel that slides up. If the message hasn’t changed, it doesn’t show it again, only new messages.
- Android support: We do have this on the NOOK Color, so at least one Android platform works. Not tested on others yet.
- iPhone support: Not fully tested, but it should be mostly ready. Our app has some About screens with small text that wouldn’t be legible on an iPhone, so we haven’t actually released a universal version yet.