Noodlecake and Apportable have joined forces!

We're excited to announce our partnership with Noodlecake Studios! Here's the announcement from the Noodlecake blog:

Over the past year we have been working hard porting and publishing iOS games to Android for amazing indie devs all over the world.  With each game our publishing network and promotional power continues to grow which resulted in some amazing success stories for games like Happy Jump, Zombie Road Trip and Punch Quest, just to name a few. To date we have launched 6 games on iOS, over 30 titles on Google Play, grown our iOS and Android network to over 45 million players internally and over 150 million externally due to partnerships with other indie friends.  And with all this we even somehow managed to launch our own long awaited sequel, Super Stickman Golf 2 in the process.

There is one game though fans have been waiting for us to release and we are happy to announce that the 2d crafting hit The Blockheads will be finally be coming to Android in September!  We have been working hard on the port over the past few months but admittedly with everything going on, it was taking longer than we wanted.  The Blockheads is a huge game and on top of that devs are coming to us with bigger and better games to port and publish theses days.  So we figured we figured it was time to add some more ammunition to our inventory.

mzlnnlftxgr

That is why we are excited to finally announce that we have been working with the fine folks over at Apportable to level up both our services.  Apportable, like us, has been working on porting tech to bring iOS games to Android.  However our focus was never to use the tech for porting only, but instead build an indie friendly publishing network that also ported games if need be.  Being indie devs we know it can be tough sometimes to market your game and get noticed.  So we figured we could use our experience to help out in that regard along with the porting, support and all that “fun” stuff that comes with Android.

By sharing technology with Apportable, we are able to work together to build out better services for both our companies.  It gives us additional porting tools on top of our own and they get a preferred publishing partner in Noodlecake Games for anyone who is looking for it.  Our porting technologies were so similar but we each wanted to do different things with them, so this seemed like a no brainer partnership.

So the big question is, does this change anything for our friends or soon to be dev friends moving forward?  Frankly no.  Our day to day service of porting and publishing great games is not going to change.  However with the added collaboration of Apportable, we can ensure that what we offer is the best it can be and Apportable has an outlet to send developers in need of additional exposure. Win win.

Team Noodlecake

Bringing Kobold Kit to Android: An Interview with Steffen Itterheim

[Update 6/19/2014: Since this blog post was written, Steffen Itterheim has joined forces with Apportable and is now working with our Cocos2D development team. Many of the reasons that inspired Steffen to create Kobold Kit have been addressed in the subsequent SpriteBuilder and Cocos2D releases, so Kobold Kit and Sprite Kit are no longer supported for use with the Apportable SDK (also, Kobold Kit is currently in maintenance mode). Steffen is writing a book called Learn SpriteBuilder that will be available this coming winter; the book will provide a visual guide to basic and advanced features of SpriteBuilder as well as cover the essentials of Cocos2D.]

We’re excited to announce our new partnership with Kobold Kit!

Kobold Kit is a 2D game engine optimized for tilemap games, extending Apple’s Sprite Kit framework. And now for the first time, developers using Kobold Kit will be able to bring their iOS games to the Android market using Apportable’s SDK.

Kobold Kit is also a game developer intent on sharing their entire game code, assets, tools and experiences with users—contrary to conventional wisdom to keep these a company secret. With that in mind, we spoke to Kobold Kit co-founder Steffen Itterheim to learn his thoughts on the new partnership, what it means for the Kobold Kit community, and his secret fantasies for the future of Objective-C development.

How did you find out about Apportable?

Some time 1-2 years ago, I was curious whether I could use Objective-C in the future to make apps for other platforms. After all, both the compiler and language aren't platform-specific in any way. So I tried to understand what it would take and was also looking for existing solutions. That's when I found Apportable.

Admittedly, I initially dismissed it as a far-fetched, too good to be true kind of idea. I thought of it as a porting service where you can submit your app and they port it for you, not as an automated process. [Editor’s note: Nope, it’s automated! Download the free SDK and try it for yourself.] Having tried it in the meantime I'm still baffled that it works so well. When you're so focused on a specific platform and ecosystem (cocos2d-iphone) it's exciting to see one of the popular example apps just build & run on your Android device. It's one of those unbelievable "WTF" moments.

How will Kobold Kit users benefit from using the Apportable SDK? What kind of support can they expect to receive?

The games we're making with Kobold Kit will be ported to Android with Apportable.

We'll obviously learn a lot about the porting process ourselves, and we'll share our experiences by documenting best practices and incorporating them in Kobold Kit. If there's anything from our side that we can do to improve the porting process we'll do it. For example, Kobold Kit was built with Apportable in mind, with the lessons learned from porting a Kobold2D app which required several non-trivial changes to the Kobold2D project structure just to get it to compile. We don't want our users to have to go through this painful process.

So both the game engine and our starterkits will have been tested to work with Apportable. There shouldn't be any surprises there, and we'll document all the necessary steps (if any) to get a Kobold Kit games up and running on Android.

Every game engine needs to rely on 3rd party libraries these days. So we also select and test these libraries based on whether and how well they work with Apportable. Kind of like a certification process.

What does this partnership mean for the Objective-C development community?

It means developers can relax now. I see so many developers so intent on cross-platform development that they feel practically forced to work with C++ and what I call "lowest common denominator frameworks". It hurts even more when I consider how much less productive C++ code is—memory management is a pain and will likely be responsible for at least half of your app's bugs. More so the less experience one has with C++.

So relax! Use Apple's frameworks because they're rock solid and just excellent. Use Objective-C with ARC because that makes you a lot more productive and your code more stable. Use Kobold Kit because we have the framework and starterkits you need to make great games. Then use Apportable to simply compile your project for Android devices and be done with it. Even if you don't care about Android at all, but then made a hit app and now want to take the opportunity to ramp up your revenue, you can still do so with little effort

What features would you like to see added?

I have this idea where Kobold Kit users get to have an Android target next to the iOS and Mac OS X targets. Build and deploy to Android devices directly within Xcode. Perhaps even debug it in Xcode just like iOS apps, though that may be rather difficult to integrate, different debugger and all. But the more we can make the process of deploying to Android a common operation you can just give a try, the better.

Now for Apportable, I hope they'll branch out eventually, and apply their idea to other popular platforms.

Imagine developing a desktop game for Mac OS X in Objective-C and then just being able to deploy it to Windows. Traditionally it has always been the other way around —so why not reverse it? Even more exciting from my perspective as game developer would be the prospect of developing games for next generation gaming consoles on my Mac using Objective-C—including of course whatever iTV product Apple is currently cooking up. Disclaimer: these are just my dirty fantasies. :)


How Apportable turned the Android version of Spaceward Ho! from “Never, Ever” to “You Bet!”

Written by Christopher Cotton


                        

Background

Just a little while ago, if you had asked whether Spaceward Ho! would ever come out for Android, we said, "Not likely at all, pretty much never". Apportable changed all that and made the impossible a real product.

Spaceward Ho! is one of the original 4x (explore, expand, exploit, and exterminate) strategy games with the first release back in 1990 on the Mac. It has gone through many iterations over the years. You might have played one of the versions in the past. It had been a very influential game in the 4x genre with many fans. The core game play starts out with you owning a single planet in a galaxy amongst other enemy players. The goal is to conquer the galaxy by building your technology and ships to exterminate everyone else.

 
                                                                 

How did this original Mac game end up on iOS and finally Android? We (Ariton.com) are a small team of two friends (Christopher Cotton and Steve Orens) who have been working on games and software as a hobby for over 20 years. We have professionally written native iOS apps in Objective C and Android apps in Java, and for many other mobile operating systems over the years. We first started with Spaceward Ho! when we talked with our friend Peter Commons who wrote the original. He thought the game would be great on the new PalmOS devices. We loved the Palm and decided right away to do it. After many months of hard work, we released our first version. We continued releasing new versions, and even supported the Hi-Res for Palm. Of course, Hi-Res for Palm only meant the game could finally use the original Mac graphics. Fast forward many years, the iPhone came out and then the iPad. We wanted to release Spaceward Ho! for this new and awesome platform. Since the original game engine was in C and C++ it made sense to code the game in Objective C and Cocos2d. We did the iPad release first because it would be a real challenge getting the game interface to fit on a small screen. The initial release took over a year and over a thousand hours of effort. Many fans were finally happy that Spaceward Ho! was again playable on a current device. We then focused on the iPhone version, and that release also took many more months of coding. With lots of trial and error, we were finally able to get a passable interface to a complex game.

                                    

With all the work previous versions took, it seemed a daunting and impossible task to do a Java version for Android. We had the skills and had shipped other native Android apps. But, creating the Android version would require using the NDK for the C/C++ engine and then rewriting the user interface in Java. My mind was going crazy contemplating the effort to repeat the work we had already done in Objective-C. We are a small team and managing a second platform in another language to support Android was not realistic. We did not have the time, the energy or the resources.

Enter Apportable. The idea of Apportable is you can compile your existing iOS code base to run on Android. No more maintaining two separate native apps. With their support for Cocos2d, it meant we could just add features or fix bugs in the Objective-C source and they would be available in the Android application. We were instantly sold on the concept and ready to take the plunge.


Process of Converting the Game

We worked with Apportable using their private beta version of the SDK. Since that time, their releases have improved considerably, making it even easier to use. Our source was already stored at Github and it was simple to add a new branch for Apportable. We added push hooks to auto start compiling a new build whenever the Apportable branch received a commit. Our first task was to compile the application and produce the Android APK. Apportable supported many but not all of the possible classes in Apple's SDK. Initially there were errors because classes were missing or were not being used properly. For example, one of the earlier compile time failures was Apportable had not yet added Game Center support. We added special preprocessor directive blocks around the unsupported code to allow the game to compile without Game Center.

Another error was in the specific way events were handled for UIWindow. It turns out the debug class we use for doing game screen videos was not fully supported. Instead of trying to rewrite it, we just commented the code out using special #ifdef macros for Android. We also had issues with some of our sound file names. The sound file name was called “@#$%™!” (yes, really!) but those characters were not yet supported by the Apportable build system. Apportable has a way for specific build options to be included in the Android only version. A set of build params coded in JSON gets added to the project and you can update any specific needs there.


                          

After all these changes, the game compiled and produced an APK that ran! Holy Moley! I installed it on my Nexus 7 and it worked. IT WORKED! I could not believe it. I could start a new game and drag around the galaxy and select a planet. And then, CRASH! Even though the game crashed after every other action it was amazing to see it initially running with so little effort. Instead of 8 months or more of coding, it was just a few hours. We were more excited than ever to complete the Android version. We worked with Apportable to find and address the compiler issues in their SDK that our game exposed. Turns out some of our code was causing the compiler to spit out bad references to the instance variables of our classes. Apportable's incredible team was able to identify and fix the issues very quickly. iOS also had much more explicit and forced memory initializations. We had to guarantee that our allocations were initialized to zero before using them, since the Android version would not do that for us. For all the platform issues which blocked us, the Apportable team provided stellar support and technical insight and assistance. It allowed us continue making smooth progress.

Now we had the game running and you could play a game! Next up, the screen size. In iOS there are only a few screen sizes that need to be supported. You can easily support the few layouts with fixed code. Unfortunately, with Android there are a bazillion different screen sizes and we could no longer use the same code to support all of them. If it makes sense for your game, Apportable has an option to scale your interface as an iPhone/iPad screen. It scales the size of the game screen to match the current Android screen size.  When the aspect ratio does not match exactly, Apportable uses black letterboxing or clips the screen. We wanted Spaceward Ho! to take full advantage of the larger screen resolutions without any limitations. We turned on the native resolutions.  The Welcome screen and the New Game looked like the following screen shots.  You can see the Android version followed by the iOS version, which is what they were supposed to resemble.


             

We used fixed positions to draw elements on the screen in iOS. In Android, it meant that with a larger screen size, many of the controls were in weird or strange locations. Our code would contain references such as, “Draw this control at 30 pixels from the left and 50 pixels from the bottom.” Unfortunately, with Android screens coming in a variety of sizes, aspect ratios, and resolutions different from iOS, our result was horrible. In order to support the Android screens, we rewrote how dialog interface items were arranged. Instead of using a fixed size, the size was calculated knowing that all 10 lines need to be on the screen. The space was divided evenly amongst the controls. Why did we not do this initially? Good question. Our original intent was to support just the iPad and then the iPhone. We didn't have many screen sizes to work with. It was significantly easier to produce a great looking New Game screen with fixed positions than to create a general purpose layout mechanism. However, we wrote a simple layout mechanism which we used in both the iOS and Android code. It helped to make the iOS screens more uniform and they looked better. If we were starting a new game, we would definitely try to use a more general purpose positioning system to save us this particular headache.

Once we corrected the layout of our screens, next was to support the Android back button. Android users expect the back button on every phone or tablet to have an effect. Since iOS has nothing similar, we didn't have any functionality in the code. It makes sense for the back button to take you to a previous screen or to cancel a dialog. If you are building a set of ships and you want to cancel, you should be able to hit the back button. As a matter of fact, any dialog should be closed when a user presses the back button. If there were not a dialog, you would expect the back button in the main game to take you to the welcome screen. Most users would even expect to be able to quit the app from the welcome screen. This required us to add Android specific code which isn't used in the current iOS app. The Apportable SDK made it  easy to write the extra code to detect the press of the back button and then close the windows and dialogs, and even ask if the user wanted to quit the game.

Once we added in these features, it was time to release the game into the wild. The features were ready, the game was tested, and we were excited.


Results

From start to finish, it was was less time than we had ever expected it could be. The total effort was only a few weeks. Apportable and their support was awesome! Launching the app on Google Play too very little effort as well. Coming from the iOS world, we were used to waiting for submissions to be released for 7-10 days. There was also the added hassle of being rejected and having to go through another round of waiting for 7-10 days. With Google Play, push the button and you are live! The initial sales of Android were great and we were very happy to now have Spaceward Ho! available on a new platform.

                                       

If you are considering bring your app to Android the best part will be the influx from all of the new people, blogs and review sites. Many iOS users have Android friends and the reverse is also true. Many Android purchasers have told their friends who own both devices about the game. From all the review sites now covering the Android release, we found that even our iOS sales increased. Now the Android and iOS daily sales are about the same, which means we doubled the revenue for our game.

One of the unintended benefits: celebrity endorsements! We found out via a tweet from Wil Wheaton that he loved the original game of Spaceward Ho! and found it in the Android market. How cool is it to find out one of your favorite actor/gamers loves the game you wrote? It definitely would never have happened without the Android version. We even decided to update the game to add a special Sparks McGee hat in honor of Wil's support.

                                           .


Finally

With a single code base instead of separate languages, we can find and fix bugs or even add new features easily. For example, we updated the graphics in both Android and iOS without much problem. Looking back we are so glad we took the plunge. If ever given the chance to do it all over again, we would. If you were ever thinking about Android, but were worried about the time and resources. Stop worrying! Go get Apportable and be done with it. You will be happy you did.

You can get Spaceward Ho! for Google Play, Amazon, and iOS.


Apportable Raises $2.4M seed round led by Google Ventures

Today we are thrilled to announce that we’ve closed $2.4 million in seed funding from Google Ventures, Morado Ventures, Salesforce.com, and other angel investors.

What is Apportable?

The Apportable SDK cross-compiles Objective-C applications to Android, without extensive changes to the original codebase.  Unlike other cross-platform solutions, developers can use Apportable to build for multiple platforms without leaving the comfort of Xcode and iOS.  Using the same code on both platforms means better performance and fewer bugs, allowing developers to iterate on their app faster.

So how does it work?

Instead of translating the app to Java, Apportable cross-compiles the Objective-C code to machine code that runs directly on the Android device’s processor (no VMs were harmed in the execution of our code).  A platform library bundled with the app implements popular iOS APIs, so the app thinks its running in iOS.

Does Apportable convert source code to Java? Does Apportable emit Dalvik bytecode?

Absolutely not. All source is compiled to run on bare metal.  We compile source to ARM shared libraries, which is the way iOS apps are compiled.

My application is very complicated and has intense performance requirements.  Will it work with Apportable?

Our platform has been used with some very complex code bases. If you want to see some examples of apps that are powered by Apportable, check out Biophilia, Osmos, and more.

What APIs are available when using Apportable?

We support many APIs, more than could be listed here (usually it is just best to just try running the SDK on your app), but some of the common things we support include Objective-C 2.0, C++11, libdispatch, blocks, Objective-C literal syntax, ARC, Foundation, OpenGL, UIKit, StoreKit, GameKit... the list goes on and on.

How does Apportable’s UIKit work?

The current UIKit implementation uses Android’s views to render content, however we have a hardware accelerated QuartzCore backed version coming out soon.

Can I use Java?

Yes. This is purely optional, but you can call Android APIs and use custom Java classes in your Objective-C source code if you want, using our BridgeKit API (or pure JNI).

Where can I get the SDK?

www.apportable.com; the starter SDK is a free download.

WSJ: "Bjork Brings Biophilia to Android With a Little Help From Apportable"

Cross posted from WSJ

Music and design icon Björk spent two years creating her 11th record, Biophilia, as an “app album” — songs in app form, games, and educational content that can get users involved so they’re not just passively listening.

Inez van Lamsweerde & Vinoodh Matadin
Icelandic singer Björk.

Though critically acclaimed, there was one major problem with the Biophilia app–Björk fans using Android mobile devices couldn’t experience it. Until today.

The artist finally released an Android version of Biophilia (for $12.99 in the U.S. Google Play store) Wednesday, two years after its iOS release.  So what took so long?

According to Max Weisel, one of the developers of the original Biophilia app for iOS, “Porting Biophilia to a new platform was a daunting task,” because it is a “large suite,” not just a simple, casual game.

The app makes music physical and accessible to kids and fans, by mapping basic musicology on a touchscreen, Björk told Venture Capital Dispatch. “Rhythm, scales, counterpoint, chords, arpeggios and such–I felt in my own music school this was too academic, like reading a book about how to ride a bicycle, instead of doing it. Music is to be felt and experienced.”

In 2011, developers advised the artist that the cost to convert her app-album to Android and Windows operating systems would be about 375,000 U.K. pounds, or enough to commission eight programmers for five months. She started acrowdfunding campaign on Kickstarter to raise the money, but cancelled it after 10 days and a sluggish reception there.

Still, she felt it was “absolutely vital to make it available for all smartphones, because of the educational aspects of Biophilia.” Her app helps teach “basic musicology and science,” where “art programs have been cut down,” she said. Many schools that use Biophilia and its extra, free curriculum for educators don’t have access to iPads, she noted.

Enter Apportable Inc., a San Francisco startup that automates the process of turning an iOS app into an Android app. One of the company’s engineers, Zac Bowling, reached out to Mr. Weisel to see if Apportable could help.  Using Apportable, Mr. Weisel says, he was able to “translate” one of the song-apps on Biophilia to Android, in less than an hour with minimal effort.

Here’s how Apportable makes converting apps a faster and less costly process, according to the startup’s chief executive, Collin Jackson: “We package a mini version of [Apple’s] iOS in with an Android installer, so an application thinks it is running on iOS but is really running on Android instead.”

Courtesy of Apportable Inc.
From left to right, Collin Jackson and Ian Fischer of Apportable Inc.

This week Apportable announced it had raised $2.4 million in seed funding from Google Ventures, with participation by individual angel investors including Reddit co-founder Alexis Ohanian and several others, as Dow Jones VentureWire previously reported.

The CEO says that more than half of the apps made using its technology ranked in the Top 500 paid apps on Google Play, a dominant Android app store in North America.

For the near term, Apportable plans to focus just on automating the conversion of an iOS app to Android. It could move into conversion of apps between other platforms in the future, the CEO said.

An investor in Apportable, Alexis Ohanian, believes Apportable will help bring about “software parity” in the mobile industry.

“We haven’t seen the same quality in Android app stores that we have seen in the Apple App Store so far,” he said. “That’s because a lot of startups and studios don’t have the resources to think about multiple platforms from the start. But if you look at the install numbers, there’s no denying how important Android users are.”

Björk has no plans to start a tech company, or fund tech startups herself. “Creating Biophilia has been plenty,” she said.

Apportable has become the official Cocos2D sponsor

This guest post was authored by Lars Birkemose and cross-posted on the cocos2d-iphone forums.

I am very pleased to announce that Apportable has offered to sponsor Cocos2D. This effectively means, that cocos2d-iphone, is very much alive. It will now be possible to put some serious time into continuing the iOS/OSX branch of this amazing toolbox.

I think a moderate yay, is in place here.

I started using Apportable before I knew any of this was going to happen, and was immediately amazed with how well it worked. Those of you who actually read my rambling posts, will know, that I never have been a big believer in x-platform development. However, with Apportable I saw the possibility for continuing to use the best development tools, the best language, and the best community supported toolbox there is, and still being able to develop for Android. So I converted the java app I was struggling with to iOS, added the bluetooth java interface as Apportable described, clicked the big red button, and there it was. A fully working Android app.

When Riq asked me to take over Cocos2D, I did not hesitate to contact Apportable, to tell them that I thought Cocos2D and Apportable would make a perfect match. Luckily for us, Apportable felt likewise.

Cocos2D will continue to be a 100% free and community supported open source toolbox. Actually, I would like to put even more emphasis on all the stuff developed by the community. How that is carried out in practice, I am not certain about yet, but the idea I grapple with at the moment, is to break Cocos2D down into smaller, and more manageable components.

Right now I am busy winding down my contracted work, but during the next 4-6 weeks, things should slowly start to get into gear. My first big deadline will probably be, to be able to present a real goody-bag around the same time as that other API – what’s it’s name? Oh yeah, Sprite Kit – will be released.

Apportable SDK: Free Android support for cocos2d-iphone

Cross-posted from the cocos2d-iphone blog.

Kingdom Rush

Apportable allows developers to cross-compile Objective-C apps to Android, without maintaining a separate code base in Java. It is used by many top-rated games, including cocos2d-iphone titles like Kingdom Rush and Mega Run.

We are pleased to announce that Apportable is now offering a free version of our Android SDK for porting cocos2d-iphone apps. The Apportable Starter SDK includes:

  • Common frameworks used by cocos2d-iphone including Foundation, CoreFoundation, CoreGraphics, OpenAL, OpenGLES, libdispatch, and AudioToolbox.

  • Develop in Xcode! No need to create and maintain Android-specific makefiles.

  • A fully-functional debugger that can set breakpoints and invoke Objective-C methods.

  • The latest version of Clang with support for ARC, __weak, blocks, C++ 11, and more.

  • All the Objective-C runtime functions that you would expect, even swizzling, dynamic method injection, and block trampolines.

  • A more complete and compliant libc than the Android NDK.

  • Support for Android screen sizes with optional iOS screen size emulation.

  • Full Java support so you can call Android APIs and Java SDKs from Objective-C.

You can download the SDK today at www.apportable.com. Try compiling the open source sample apps, or give your own app a try. Deploy your cross-compiled apps to any Android store at no additional cost. And if you need even more awesome, we have a variety of upgrades available.

Let us know what you think in the comments or through Twitter (@apportable).

About the author: Collin Jackson is co-founder of Apportable, a San Francisco based company that helps developers build cross-platform apps in Objective-C.