tag:blog.apportable.com,2013:/posts Apportable Blog 2017-03-13T04:23:19Z Apportable.com tag:blog.apportable.com,2013:Post/677481 2014-04-15T00:11:49Z 2014-06-14T22:05:52Z Heartbleed and Games on Android

Last week there was a lot of excitement about a new vulnerability found in OpenSSL.  OpenSSL helps secure most of the encrypted communication on the Internet, so any vulnerability in it can potentially put a large amount of data at risk.

Heartbleed doesn’t allow an attacker to listen to your communications with a server directly, but it does allow an attacker to read data in the server’s memory.  Here is an overview of how the vulnerability works, thanks to xkcd (http://xkcd.com/1354/):




Is Heartbleed a problem for Android games?

In theory, this vulnerability is symmetrical.  If the client is using a vulnerable version of OpenSSL, the server can read memory directly from the client’s memory.  That sounds scary, but in reality there is little to be worried about.  Here’s why:

- The only servers that could potentially read your data are the servers your game already connects to.  These are typically the servers of companies like Google, Facebook, Twitter, and possibly the game developer.

- The only data that is accessible to an attacker is the data in your game itself, which is usually very low-value data outside of the game.  Android protects (or “sandboxes”) the memory used by apps so that they cannot read or write memory used by other apps on the system.  Any attempt by an attacker to read memory outside of your game would result in your game crashing, at worst.  No data outside your game would be lost.


What about games with advertisements or analytics?

In theory, a malicious advertiser could also steal your game’s data using the Heartbleed vulnerability, if your game talks to the advertiser’s server.  However, extracting data that would be interesting to an advertiser or analytics provider in an automated fashion is difficult enough that even malicious advertisers would be unlikely to bother for games.  And, as we described above, usually the data in your game is not very interesting outside of your game.

Additionally, advertisers make their money by having application developers integrate their advertising service, so if it was ever discovered that they were trying to steal application data, they would very quickly go out of business, since most application developers would be unwilling to work with such an advertiser or analytics provider.


But my game lets me log in to Facebook and Twitter, and lets me buy stuff on Google Play!  Can’t someone use Heartbleed against my game to steal login credentials or payment data?

Normally, all of these connections are made through different apps, such as Facebook, Twitter, Google Play, or your Android web browser.  As described above, the memory of those apps is inaccessible to your app on Android, so the data is not vulnerable to Heartbleed via your game.


But Bluebox’s Heartbleed Scanner App says my game may be vulnerable!

The Bluebox scanner app is unable to directly determine whether a particular app is vulnerable, because the apps are not running an OpenSSL server that listens for connections.  Instead, the Bluebox app just checks to see if your apps have any version of the OpenSSL library at all.  From https://bluebox.com/technical/heartbleed-bug-impacts-mobile-devices/:

“Additionally we scan all of the applications on your device and present you with ones that contain their own openssl library — you should follow up with those app developers to confirm they are using a safe version of OpenSSL.”

Any game that ships with OpenSSL will always show up as possibly vulnerable, regardless of whether the version of OpenSSL the app uses is actually vulnerable, because the Bluebox app has no way of telling if the app is vulnerable.


What is Apportable doing to protect my game data?

We have already implemented the patch to our OpenSSL library so that future releases of our games and our SDK will not be vulnerable to Heartbleed.  We will be releasing updated versions of the apps we ship on an ongoing basis.  

The most important thing you can do is check if the servers your games connect to have the vulnerability, since personal information you have shared with your game could be on those servers, and an attacker could try to steal data from those servers using Heartbleed.  McAffee has a Heartbleed scanner for public use: http://tif.mcafee.com/heartbleedtest.

If you want more information about Heartbleed, we would recommend starting with http://heartbleed.com/.  It contains a more detailed overview about how the bug works, and links to a lot of excellent technical information about the vulnerability.

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/663557 2014-03-13T19:10:07Z 2014-03-16T00:07:15Z Developing for Android with Objective-C and Apportable

When developing for iOS, you can take most any open source library and drop it into your application, and within a few minutes have something working. With Java Android development, this is of course more difficult. When you realize that the NDK isn’t nearly as supported as its Java counterpart—and that creating a rapid prototype, and transitioning into a releasable candidate takes considerably more time and effort—there’s been no easy road on Android.

Apportable was designed to do all of the heavy lifting that application developers do for any top-notch title on Android, and is designed for companies big and small. The basic idea of compiling native code for Android is not a new one, of course; the hard part is making it all work seamlessly.

Rolling Our Own

Cross-platform development can mean a few approaches. You can create an environment that defines a common API for both platforms; you can create a “lowest common denominator”-based solution; you can create a shared implementation backend and multiple frontends; or you can flat out re-write from scratch for each platform. 

Solutions like Unity require developers to re-write their app against Unity's API. We think that if you’re going to “buy in” to a given strategy, it might as well be one that you’ve already made a commitment to. And lets face it—iOS isn’t going anywhere. 

Freshly ground

Over 95% of our platform is not Java. We emit native machine code that’s executed directly on bare metal—no re-interpretation, no transliteration. Just raw, native power. We’ve even re-implemented the parts of Android’s native toolchain that we felt needed it.

Superpowering the Future

We’ve got a new build system that’s orders of magnitude faster at creating incremental builds. We’ve added features to conditionally link jars so that applications built with our SDK are smaller and leaner. 

Try out the SDK for yourself—for free—at www.apportable.com 

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/650417 2014-02-05T01:45:57Z 2014-02-05T21:46:28Z Our Internal Spritebuilder Game Jam!
On Thursday, January 30th, 2014, Apportable had its first internal hackathon event - the SpriteBuilder Game Jam! This event celebrated the launch of SpriteBuilder in the Mac App store on January 21st. We had about 20-25 folks participate in the jam, many of whom had never tried making any type of game before. Each team had up to 6 hours to create their game and record a demo. Our celebrity judges, Nicole Aptekar, Benjamin "Benji" Encz, and Rob Jagnow, then selected their favorite jams from the day. All 13 entries were given honorary superlatives by the judges, and 5 entries were awarded Grand Prizes. These were the 5 winners along with their prizes:

   
Oregon Space Trail (Elliot and Zander) - Free Instapainting

   
Phogix (Breckin) - Naming rights to an upcoming animal in PG's game Animal Voyage

   
Silent Karaoke (Sergey) - Exotic Swedish Punch
   
Blink Dagger OP (Michael H. and Christina) - Logo/graphic of choice laser-etched into laptop

   
Operator Pong (Collin) - Original poem composed by Jim and Christina on topic of choice
]]>
Apportable.com
tag:blog.apportable.com,2013:Post/644307 2014-01-21T19:25:02Z 2014-01-21T19:26:15Z Introducing SpriteBuilder: The Objective-C Game Development Suite for iOS and Android

We are happy to announce the release of SpriteBuilder! SpriteBuilder is the first complete game development suite for rapidly developing iOS and Android games with Objective-C and Xcode.

SpriteBuilder is the culmination of years of tireless effort from hundreds of contributors. We have brought together the maintainers of the four of the most popular open source iOS game tools (Cocos2d, Cocos3d, CocosBuilder, and Chipmunk) to create a new, integrated development experience. SpriteBuilder 1.0 also includes the much anticipated v3 release of Cocos2d, the most widely used iOS game engine.

Read more on the SpriteBuilder blog.

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/639599 2014-01-08T22:28:43Z 2017-03-13T04:23:16Z Apportable Welcomes Peter Alau to Lead Business Development

Apportable is thrilled to welcome Peter Alau, former V.P. of Business Development at Digital Extremes, to the Apportable family.  Peter is a veteran of the electronic entertainment industry and has worked for Sony Computer Entertainment America, Maxis, Electronic Arts, Linden Lab, Sony Online, and GameSpy/IGN.  

On why he chose Apportable, Peter explains, “Apportable impressed me immediately. They are filled with brilliant engineers who not only grok the problem, but have exceptionally smart ways of solving them. What’s more, they do it very quickly - a requirement in the mobile world.”

Alau comes to Apportable to help us achieve our vision of creating the premier cross-platform tool set for mobile developers. As Peter explains, “Apportable wants to be the advocate and arsenal for the developer. Developers have been saying that the swelling renaissance in game design is currently hindered by platform tool limitations, so we are trying to level the field for all platforms and give developers freedom to build excellent games and other apps without worrying about OS issues.”

Alau will be running Business Development and evangelizing Apportable’s software and services. “It’s an infectious place to be, and I’m thrilled to be part of the team,” says Peter.

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/629333 2013-12-12T17:00:08Z 2017-02-20T20:28:55Z 3 Out Of 10 Ain't Bad!

We take pride in working with great game makers, so we are thrilled to see three Apportable powered apps featured today in Android's Top 10 New Paid Games! Congrats to our friends at TowerMadness, Ridiculous Fishing, and Little Inferno, on your successful Android launches. It's been great working with you!

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/641442 2013-11-22T07:34:00Z 2017-03-13T04:23:16Z Venture Village: "Apportable: Wooga’s secret Android shortcut"

Cross-posted from VentureVillage

As the app economy rises, so do companies that make developers’ lives easier – and Apportable, which helped Berlin’s Wooga with its latest social game Jelly Splash, is ready to ride that trend.

Apportable, based in San Francisco, employs about 50 people and is supported by a $2.4m seed funding round led by Google Ventures. It makes software to automate the process of turning an iOS app into an Android app. Code in Objective-C, the main language used by Apple for iOS, make a few minor adjustments and get two functional apps. Need new features? Change the code just once. (For a more detailed explanation, try this blog post or this demo video.)

Clients so far include Björk (for her Biophilia app album), the company behind “galactic mote” game Osmos and Wooga, which used it to build the Android app for Jelly Splash, now at 15 million downloads across all platforms since August 2013.

“Jelly Splash is our broadest and most rapid cross-platform release yet,” the company said in a blog post at launch. “That means that we’ve used a few speed boosts to get the game to you as soon as possible.”

Normally, Wooga Corporate Development Manager Sebastian Kriese explained, new games would be built by separate teams for iOS and Android. With new games built and tested for iOS first, Android would usually be several steps behind. “Even now with Diamond Dash, it’s still a different feature set on Android,” Kriese said.

“We also had issues and challenges about how the game would feel on different platforms. If you use another technology and another team you might not achieve the same quality or the same feeling.”

So, after hearing about Apportable, they asked for a quick prototype to see if it’d be an alternative way to bring Jelly Splash to Android. “It was pretty amazing,” Kriese said. “We had the iOS game and three days later we could play almost all levels on an Android phone. It wasn’t perfect but it was already working pretty well.”

Wooga sent two engineers and Kriese as project manager to San Francisco to work with Apportable and produced a final version from “zero to launch” in eight weeks, speeding up the process “by a factor of months”.

The service comes for a price – Apportable offers a free basic service and either $1000 or $15,000 per developer per year for “indie” and “pro” licenses. Enterprise clients such as Wooga pay on a case by case basis and get extra features and support.

It’s the time to market that matters for Wooga, Kriese said. “In China, 95 per cent of the smartphones are Android. If we want to grow in these regions, we have to go all out on Android and bring games out as soon as possible.”

It will be up to individual teams at Wooga whether they use Apportable for new projects. Other companies working in a similar space include Unity, which uses a different method to bring apps to iOS, Android, Windows Phone 8 and BlackBerry 10.

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/641446 2013-11-11T20:00:00Z 2014-01-13T20:04:30Z Pocket Gamer: "Breaking down barries: iOS devs launching Objective-C games on Android"

Cross posted from Pocket Gamer Biz

More iOS developers than ever are taking Objective-C based games across to Android, with cross-platform solution Apportable claiming its breaking down traditional dev barriers.

The Apportable platform gives developers the ability to convert iOS games to Android automatically, without extensive changes to the original Objective-C or C++ code.

It works by cross-compiling Objective-C code for iOS to machine code that runs directly on an Android device's processor.

Freedom, speed, and performance

It's an approach that affords Apportable the freedom to optimise complex applications for speed and performance that rival the iOS version and outdo equivalent Java versions.

Recent partners include Pocket Gems, with the firm having launched Animal Voyage: Island Adventure simultaneously on iOS and Android.

"The Apportable platform is so far ahead and so much more complete than anything we've ever seen," said Pocket Gems engineer Jeff DeCew, before adding that Apportable "is improving at a rate faster than we can adopt" on the development side.

No sacrifices

Indeed, DeCew believes that through the use of Apportable, Pocket Gems has been able to ensure the quality of its products on all fronts. 

"One of the things we were worried about was the possibility that working on Android would slow down and inhibit iOS development," explained DeCew.

"We've had to make very few compromises on the iOS side to make our game great on both platforms.

"With the help of Apportable, Pocket Gems is free to focus on creating and improving the gameplay experience instead of rewriting code for Android."
]]>
Apportable.com
tag:blog.apportable.com,2013:Post/617576 2013-11-09T02:09:25Z 2013-11-09T02:09:25Z Hemisphere Games: "Our Apportable Android Experience"

Check out this post from Hemisphere Games on their experience using Apportable!

It’s been three equinoxes since Osmos launched on Android. In that time, quite a few developers have asked us about our porting experience, probably due to the quality of the port as well as the game’s success on the platform. Our answer: we worked with Apportable. “How was that?” people ask. Our answer is, in a word, “Great!”

The tl;dr version of this post is:

    • Apportable’s platform allows you to “cross compile” your iOS project into a native Android app. (A .apk which you can publish to Google Play, etc.)
    • Yes, it works. It’s kind of crazy.
    • The folks at Apportable are brilliant, professional, and downright decent.
    • You can now try their service for free, and depending on your app’s features, you may never need to pay them a penny.

Read on...

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/604637 2013-09-27T01:24:41Z 2014-01-08T22:32:56Z Apportable Discusses Dual-Platform App Strategies

Reposted from #sfbeta.


#sfbeta's Christian Perry interviews Apportable's Ian Fischer, CTO & Co-Founder, and engineers Adam Hunter and Zac Bowling.

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/600227 2013-09-09T16:16:01Z 2017-03-13T04:23:18Z 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

]]>
Apportable.com
tag:blog.apportable.com,2013:Post/597926 2013-08-30T18:26:55Z 2017-03-13T04:23:17Z 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. :)


]]>
Apportable.com
tag:blog.apportable.com,2013:Post/595022 2013-08-14T21:20:14Z 2017-03-13T04:23:16Z 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.com
tag:blog.apportable.com,2013:Post/589373 2013-07-17T21:47:41Z 2017-03-13T04:23:17Z 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.
]]>
Apportable.com
tag:blog.apportable.com,2013:Post/641458 2013-07-17T19:59:00Z 2014-01-13T20:07:03Z 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.com
tag:blog.apportable.com,2013:Post/587014 2013-07-04T02:02:03Z 2017-03-13T04:23:17Z 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.com
tag:blog.apportable.com,2013:Post/581917 2013-05-30T18:55:09Z 2017-03-13T04:23:19Z 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.

]]>
Apportable.com