581
I co-founded Apportable and helped Björk convert her iOS music app to Android automatically. AMA!
Björk was told that porting her app Biophilia to Android would take eight programmers, five months, and £375,000. After a canceled Kickstarter attempt, she discovered the company I co-founded, Apportable, and used our platform to launch Biophilia on Android today for a fraction of the time and cost. Our software automatically converts iOS apps to Android by cross-compiling Objective-C to Android native code.
The Wall Street Journal has the full story.
"The Apportable team assured me they're not using black magic. I still don't believe them," said investor Alexis Ohanian, co-founder of reddit.
But it's real! Ask me anything about Apportable’s technology! You can find the basics in our latest blog post.
I’ll be answering questions until 8:30pm PST.
Proof: https://twitter.com/apportable/statuses/357665794244620288
kn0thing53 karma
Just how long have you been building the tech, err, collecting the components and learning the incantations?
sugaaloop18 karma
pretty gutsy, two sarcastic answers in a row to a genuinely interested co-founder
collinjackson24 karma
It's true. Here's a more serious answer (from the blog post).
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.
I've been working on it for about 2 years since the company was founded, but some of our team members have been working on this problem for much longer. We found them through their open source projects.
tootie6 karma
So wait a sec, are you saying you can essentially run Obj-C on a JVM? Would it work on HotSpot?
collinjackson10 karma
From the blog post:
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 same way iOS apps are compiled.
qubitsu50 karma
Would you rather fight one Björk-sized swan or one-hundred swan-sized Björks?
Edit I promise to make thou proud, granter of shiny Internet gifts!
collinjackson48 karma
The latter. First of all, although Bjork is tiny for a human, a Bjork sized swan does not seem like it would be as cool as Bjork herself. Furthermore, 100 swan-sized Bjorks would be delightful!
maxbaroi40 karma
I feel a hundred swan-sized bjorks would just giggle and form some bjork-sized mini-human-pyramid.
GeeYouEye39 karma
So if it was going to take 8 programmers 5 months to port Biophilia, how long did it actually take how many programmers?
collinjackson61 karma
It took one programmer less than 1 hour to get the first sub-app running, and most of the other sub-apps were similarly easy. To support the last sub-app (Hollow), we had to improve our support for iOS video APIs, which took a month or so to incorporate into our platform. Now the next app using these APIs will port over instantly.
zbowling37 karma
So I play zerg and I'm constantly getting taken out by mass marines and Protoss death balls. What's your strategy for countering this?
47thproblem22 karma
If I wanted to create an app based on my website, starting with nothing, where would you recommend to start?
Thank you for taking the time to do this.
collinjackson93 karma
If you prefer C#, try Xamarin.
If you prefer JavaScript, try Appcelerator or PhoneGap.
If you prefer Objective-C, try native iOS and use Apportable for Android.
If you prefer Java, I question your sanity.
pjmlp2 karma
What about C++? That is, after all, what many game studios use across mobile devices.
collinjackson7 karma
Many of the games using our platform are written mostly in C++, and that's a great choice for the core game engine. However, to get to the operating system APIs (screen, touch, accelerometer, audio, etc.), you'll still need to somehow call into Objective-C land on iOS, and Java-land on Android.
collinjackson29 karma
It depends if you buy it! She offered us a share of the Android sales. But normally we sell fixed price licenses.
Fabien417 karma
I assume that you have access to the highest version of your own software, "Enterprise", and that's what you used.
If you had to buy a licence of Apportable Enterprise for each programmer on the Biophilia project, plus the programmers' salaries, would it have cost less than the £375,000?
(Really, when I see "Contact Us" instead of a clear price, I read it as "Don't bother contacting us, you can't afford it anyway.")
collinjackson7 karma
Our enterprise plans are for companies that require extra support for our team. In many cases, we do rev share deals. Just ask.
saurik3 karma
As all this seems to do is stub over Activity into native code, why not use the existing NativeActivity?
collinjackson7 karma
Some of our customers still want to support Android 2.2 (Froyo), which doesn't have NativeActivity.
decibell10 karma
Do apps feel like iOS apps? Or do you do something to make them feel like native android apps? (i.e. scrolling)
collinjackson7 karma
We use native controls where it makes sense to, for example if you select a text field you'll get a native Android keyboard. Right now we're using Android's native scroll views but there are some performance reasons why you might not want to. We're working on some new UIKit options to give developers more control whether the converted app is pixel perfect like iOS or more like a native Android app.
collinjackson16 karma
Yes. The aesthetic and logistical benefits of pushing in chairs are completely assured, whereas the rest of my AMA has no basis more reliable than my own meandering mobile development experience.
NoShirtNoShoesNoDice9 karma
Can Apportable do the reverse (go from Android to iOS)? If not, are there plans to do so?
Will there be support for Windows Phone? Unfortunately I don't know how difficult it would be as I've never looked into, or even touched, a Windows Phone.
I do some Android development at times and would love to know that I can port my apps to iOS quickly.
Great project!
collinjackson10 karma
We are currently focused on providing really great support for Objective-C on Android. We might support Objective-C for Windows Phone in the future, but we have no plans to do Java for iOS.
jaegerpicker3 karma
I'd think windows phone would actually be quite a bit easier to support given the much better support of C++ on the windows platform. ndk for Android is a nightmare to work with IMO.
collinjackson5 karma
We want to make sure our SDK can be used on a Mac with Xcode, because that's what iOS developers are used to. It's true that the Android platform can be hard to develop for, but we see that as an opportunity, and at least it supports debugging on Mac. Microsoft's Windows Phone debugging tools currently require Windows and Visual Studio. If anyone has found a way to attach the Mac version of gdb to a Windows Phone app, I'd love to hear about it!
genymode8 karma
apportable seems to be in an interesting position--advocating that the Apple iOS development environment/tools are the standard, but using that environment and toolset to go to Android. obviously, google is a strong partner of yours, but how does Apple feel about your company? how do you navigate this strange space?
collinjackson7 karma
We use a lot of open source Apple code, but we don't publish any apps in the App Store, so we haven't really interacted with them yet.
redditthereddit8 karma
Hey, didn't I hear about you guys from Osmos, and something about them eating their own hats?
Anyways, I'm glad to hear that you guys are doing well and kicking! Even though I own an iOS device, from what I understand, you guys have been pretty instrumental to the Humble Android Bundles.
A question: How did you guys get started? What was your (and your founder's) desire to make an iOS to Android porting libraries and team?
Thanks again for the AMA!
collinjackson14 karma
The inspiration for Apportable is that I saw Angry Birds on my housemate's iPad and was frustrated that I couldn't play it on my Android device, despite it having been released on iOS for 10 months. I started emailing top game developers and asking why they were all iOS exclusive, and found out that in most cases they wanted to support Android, but porting was slow and expensive.
genymode6 karma
obviously, reimplementing iOS's libraries is a pretty daunting task--Apple has thousands of engineers! How many engineers does Apportable have, and how has it managed to accomplish such a seemingly monumental undertaking?
collinjackson5 karma
We have about 20 engineers right now. Fortunately, we were able to leverage a lot of open source code to get the platform up and running, and have been building in support for the missing iOS APIs incrementally. Currently most of our customers are game developers, and we're now adding support for more APIs used by non game developers.
Programm3r5 karma
What criteria does Apportable generally look at when you decide to take on an app such as Biophilia?
collinjackson6 karma
We'll let anyone download our SDK and do it themselves. Our enterprise services can be bought with fame or money.
SebPark4 karma
What was the hardest part of the development of Android version of Biophilia?
collinjackson7 karma
The app is overlaying several transparent videos on top of each other, which required a major overhaul of our video support. Fortunately it's a one-time cost that will benefit all future apps using our platform.
onoffkonoff3 karma
Biggest startup lesson from when Apportable was just you and Ian?
Biggest lesson for other startups now that you're a much bigger team?
collinjackson6 karma
1) Listen to your customers. We started out porting iOS apps to the web, because I used to work on the Google Chrome team and browsers are what I know. But while having a web version of their app was a "nice to have," our customers were clamoring for an Android version, so even though I'd never developed for Android, it was more important to go there first.
2) Listen to your engineers. Our customers often ask about Windows Phone support, but our team has their hands full with Android. We'll get around to it eventually.
gameofthronesfanatic3 karma
I created a small tool like this a few years ago but thought nothing of it. I guess I really jumped the shark on that one
collinjackson1 karma
Yeah, that sounds better.
It's reasonably straightforward to demonstrate a simple proof of concept of Objective-C running on Android, but supporting everything that's on iOS is a huge and ongoing task.
theediblethong3 karma
How is the work atmosphere in such an interesting niche. Big or small company? Growing or staying put? Engineers to non engineers ratio? Sorry its more than just 1 question.
collinjackson9 karma
Here's what our office is like: http://www.themuse.com/companies/apportable
We have about 20 engineers and 10 non engineers in the office, and we have doubled in size in the last few months. We have a decentralized, engineering centric culture with very few meetings. We play lots of Starcraft.
mathpirate3 karma
Do you run into issues when the app "thinks it's running on iOS" in terms of tacit assumptions that programmers make about background processing, system resource contention, etc., that work differently on Android?
Congrats on the announcement and the funding!
collinjackson6 karma
Generally our platform appears a lot like an iOS device to the app, but there are a few differences. For example the screen size won't match a real iOS device. Biophilia was hard coded assuming iPhone or iPad screen sizes, so we had to fix that. We also had to add support for the Android back button using the Apportable UIKit extensions. Here's a screencast showing how we did it.
mathpirate3 karma
Neat! Back button sounds like kind of a nightmare. When you say "we had to fix that" does that involve reaching in and changing other people's source, or do you tell them what changes are needed, or some of both...?
collinjackson5 karma
In this case, we got the source code from the original developer and showed them how to fix it. But many of our customers do it themselves.
farmisen2 karma
What's your opinion on Sprite Kit? Do you think it's going to be the demise of cocos2d?
collinjackson10 karma
We are the primary financial sponsor of cocos2d-iphone, CocosBuilder, and cocos3d, and employ several developers working full time on these projects. I think there are some advantages to using an open source engine and we have big plans for the next cocos2d-iphone release. That said, we also plan to support SpriteKit and are working closely with the developers of the SpriteKit-based game framework KoboldKit while we wait for Apple to lift their NDA. Basically if it's Objective-C, we probably want to support it.
Dolkthor2 karma
What do you think about HTML 5 native-esque apps (like those built with PhoneGap, etc)? What do you consider to be the timeframe (if ever) that more native support will be available for HTML 5, potentially offering "easier" multi-platform capability?
collinjackson7 karma
HTML is always improving, but because it needs to be reviewed and standardized by multiple vendors I think it will always be at least a few years behind native APIs in performance and functionality.
Fabien41 karma
I believe the point of PhoneGap is to avoid waiting for browser vendors, i.e. giving the JS code direct access to the phone's features.
collinjackson2 karma
Perhaps I misread the question. If you're using the PhoneGap API to access native features, I feel like you're not really using HTML5 any more, you're using a cross-platform mobile development framework that happens to be JavaScript based. There are perfectly legitimate reasons to want to develop apps in JavaScript, but I do think that mobile OS vendors like Apple will continue to innovate and give us reasons to develop using native APIs.
asusa52f2 karma
Any plans to do it in reverse--port Android apps to iOS? I've made a couple of small time Android apps that I'd like to port but I don't want to invest all the time and resources to learning Objective-C and a whole new platform (not to mention I don't even have an iPhone to develop on). Also, what was your experience at YC like?
collinjackson3 karma
Here are some tools that go the other way:
http://www.javaworld.com/javaworld/jw-03-2013/130327-open-source-java-iphone-tools-compared.html
YC was (and is) great. As a first-time entrepreneur I found it helpful to have a support network to turn to for help and advice. I still meet with YC partners on a regular basis.
Georules2 karma
I personally really dislike iOS-styled android applications, and found many of them to be slow - although I do not think they were doing something as sophisticated as Apportable for conversion. Regardless of performance, do you think the uncommon UI experience could eventually cause a problem with retaining the consumers to these ported applications?
collinjackson3 karma
It's good to optimize the look and feel of your app for Android, and we provide ways to do that, but a lot of devs today are struggling to get an Android app working at all. That's not good, and even iOS users suffer if they can't interact with their Android friends.
b3ll2 karma
You're forced to replace all your engineers with Pokémon. Which do you choose and why?
collinjackson8 karma
That's a hard one. I couldn't replace all the engineers with the same Pokemon. So now I've got to think of 20 different Pokemon...
kingofbigmac2 karma
Have you ever ported anything from iOS to Android for the hell of it? This game looks fun wish it was for Android...
collinjackson3 karma
Yes, we do a lot of indie games that have no chance of breaking into the top grossing charts but are amazingly fun to work with.
collinjackson1 karma
Start with http://docs.apportable.com/. If there's something you'd like to see added, let us know on the mailing list.
carmooch1 karma
As the founder of a pre-funding startup myself, I was wondering how much progress and momentum were you able to make for Apportable yourselves before acquiring seed funding, and what would be your tips for gaining the attention of investors?
collinjackson3 karma
We were "off the record" at YC demo day in 2011, but we had a working demo that helped us land the first few seed investors on good terms. Since then, we've been focused on selling to successful (top 100) developers, which made it easier to fund our early growth out of revenue.
collinjackson3 karma
I met my co-founder through my research, and I'm currently on leave as an assistant research professor at CMU, where I have an office on the Silicon Valley campus. The university has been very supportive and several of our team members were formerly my students.
collinjackson5 karma
It's runs the same as iOS on equivalent hardware. We did have to improve our audio support to make sure that the audio wouldn't skip on lower-end devices. We decided not to support Android 2.3 (Gingerbread) and below for this release since there's a wider variety of hardware running that operating system.
collinjackson7 karma
I put my socks on just like the rest of you -- one foot at a time. Except, once my socks are on, I ship bestselling Android apps.
mrsix1 karma
OK so I'm late here...
Absolutely not. All source is running on bare metal. We compile source to ARM shared libraries, which is the way iOS apps are compiled.
What do you plan to do when the eventual x86-based Android devices begin to take off. If the Bay Trail performance is really as good as the alleged leaked benchmarks, I think you'll quickly run in to this.
collinjackson2 karma
Right now it seems that most x86-based Android devices have ARM emulation, and it actually works quite well for native apps such as those built with Apportable. We have gotten x86 builds working in the past and we'll start recommending a "fat binary" approach if x86 really takes off.
myFriendThe1 karma
how hard was good audio support?
does native code make android as versatile and real time capable as iOS?
collinjackson2 karma
Implementing audio support in our platform was challenging, and because we had to wrestle with the fragmentation of hardware capabilities on Android. We've been working on our open source OpenAL implementation for over a year.
FireFromTheWire1 karma
As a game dev working in unity, I understand this. Do you provide something that's not just for porting existing apps?
collinjackson2 karma
You can use it to develop new apps and release on iOS and Android at the same time.
robotdevilhands1 karma
How did you place the story in the Wall Street Journal? Did you use a PR firm, or were you able to reach out through your investors?
JJB3661 karma
Will you ever make something that will work in the same way, but to Windows phone 8?
collinjackson1 karma
Our video recording support is incomplete at this point, but we're working on it.
kn0thing96 karma
Seriously, how the hell do you do it?
View HistoryShare Link