Automagical helps developers port iOS code to Windows Phone and Windows 8

Earlier in the summer we reported on a strikingly lovely Windows Phone puzzle game called Dream of Pixels. The game comes from Slovenian developer Dawn of Play, who first joined the Windows Phone scene with Twinoo, another puzzle game for Windows Phone 7 and 8.

Like many developers, Dawn of Play started out creating games for iOS. Porting Dream of Pixels to Windows Phone 8 represented a new development challenge for the team. Their solution: create a development tool called Automagical that translates Objective-C (iOS) code to C# (Windows Phone 8) code. Automagical makes porting from iOS and Mac to Windows platforms much easier. Read on to find out more about what it does and how to get it.

Using Automagical

Automagical runs on Windows XP or newer, all the way up to Windows 8.1. It requires a .NET framework and will provide one if necessary. The developer also has a very early Mac build that uses a terminal interface instead of GUI.

The Windows version of Automagical presents a convenient and intuitive interface for software developers. It splits the screen vertically, with Objective-C (iOS and Mac) code on the left. As the developer enters code on the left side, the software translates it on the fly into C# code on the right side of the screen. This makes it a great C# learning tool even if you're not working on a commercial project.

Both languages are based on C, so some code stays the same during the translation process. Other code gets translated into the correct C# syntax. Much of the resulting code can then be used as-is, without the need for change. Other times, developers might want to change code such as macros beforehand, using a C function instead. Automagical will change the function into a reusable class method for C#.

Automagical is a tool to help the programmer but it doesn't take all of the work out of porting. It translates syntax (how equivalent things must be written in Objective-C and C#) but doesn't understand what the code actually does. For example, it can't tell whether the object that your code references actually exists, so you still have to check for that.

Besides writing code on the fly, Automagical can translate existing projects automatically. To do so, create a new project in Automagical and define the input and output source folders. Make sure you have a backup copy of the source project, because you'll often need to change the source Objective-C code to suit Automagical's translation results.


Features list (abridged)

Automagical can:

  • Translate code syntax.
  • Provide a GUI for batch code translation.
  • Collect #define constants into static class values.
  • Change C to C# enums.
  • And much more.

Automagical can't:

  • Understand your code (semantics).
  • Replace your source code editor.
  • Produce code that will compile without manual fixes.
  • Translate Objective-C++ syntax
  • Work on files with invalid syntax.

Dream of Pixels

Getting Automagical

Automagical sounds like a great way to speed up the process of porting games that were not created in a multiplatform engine like Unity. You don't have to use it specifically for Windows Phone and Windows 8 projects. The C# code it creates can be used with MonoGame to create software for other platforms.

It's important to Dawn of Play/Razum that Automagical be an affordable tool for indie developers. As such, the creator has priced the application at $79. For that price, a developer gets Automagical and personalized support. If the tool doesn't meet the developer's needs, they can request a full refund within thirty days of purchase.

Head to the Automagical website for a more in-depth feature list or to place an order. And if you'd like to see the results of Automagical in action, grab Dream of Pixels for Windows Phone.

  • Dream of Pixels – Windows Phone 8 – 66 MB – $2.99 – Store Link

QR: Dream of Pixels

Paul Acevedo

Paul Acevedo is the Games Editor at Windows Central. A lifelong gamer, he has written about videogames for over 15 years and reviewed over 350 games for our site. Follow him on Twitter @PaulRAcevedo. Don’t hate. Appreciate!

  • I need to find one that helps me port windows phone tho iOS :)
  • What?
  • You could try Xamarin..
  • Xamain iOS is your best option. You can also port to Android at the same time.
  • Yup. I've been to a short introduction by Xamarin and I've seen code being written so it'd be 70% (which is A LOT) compatible between WP, Android and iOS. The other 30% is mostly UI/UX related (since WP, Android and iOS doesn't share the same UI/UX) and tidbits of code which cannot be translated automatically (such as distinct calls and instantiations which are platform-specific). All in all, Xamarin is probably the best solution out there, though it's D*MN expansive.
  • Xamarin is nice for mono/c# but you don't get UI, unless you use the forms API which is on an island.
  • C# only? I find VB.NET so much productive. Any support for VB.NET?
  • More productive as you are probably more familiar. C# is much more elegant. There are also many more libs available for it. I doubt they will create a tool to go from an object based language like Obj C to VB.
  • Don't confuse VB6 (and older) with the Visual Basic in .NET. It's essentially the same as C#. They both compile down to the same .NET IL and VB.NET projects can take depenencies on C# assemblies. Personally, I prefer C#, but VB.NET even has some advantages over C# in terms of "elegance", like XML literals.
  • how can be something be elegant when you have to write so many < > : j ...whatever lol... Find some other word... mebbe its smarter, quicker, faster... what's elegant in
  • Let the port begin
  • Could this tool be used to port apps as well as games? Probably a dumb question, but I haven't coded since high school, so give me a break, lol...
  • Yes. Any software code written in Objective-C, not just game code.
  • Thank you! I had a feeling that was the case, but I wasn't sure-- I appreciate the clarification, friend.
  • He said "This Tool"....
  • chuckles...
  • Games and apps are both programs that have to be created with some kind of code. The only differentiation is how they are used. All games are apps but not all apps are games.
  • Very useful tool. This way we can get apps and games ported quickly to WP.
  • Code translation is a good first step.  But it has two major shortcommings. 1)  It's a manual one-off proccess
    - any changes to the original code requires a fresh re-translation effort. 2) It does nothing to resolve major differences is platoform/OS API's etc.
    - any specific iOS hooks/calls from the app will be next to useless and have to be manually swapped out for WP equivalents (if they exist). Tools like Xamarin and Unity solve both of these shortcomings.  You code in the unified environment and hit generalized API's.  Then the tools auto-translate with the push of a button.  This does require that you learn their generalized API's  (Appliation Programmer Interfaces), but at least you are spared the tedium of coding all the specific differences in the various platforms.  You also are at the mercy of the tool developers to stay on top of OS and API updates on all the platforms they support.  But until we someday achieve open standards for native apps (like we have for the web), these tools are the best game in town.
  • Are you sure you've coded before? As what you've written isn't exactly correct. :/ It does not translate. And you don't learn its API. Seriously. Stopping writing crazy stuff on the Internet.    
  • It's Microsoft's job to make a tool like this to solve the app problem.
    Anyway, cool app this is.
  • Accidentally reported you when I meant to upvote. Sorry :/
  • 'Accidentally'
  • Lol no problem.
  • you must be joe report that
  • Seems like WP and iOS ecosystems are symbiotic with IOS using Bing and WP using iOS coding in Cyan for webpages that didn't translate well as well as now this port from IOS to WP. This how things should be.... Not what google commands. The enemy of my enemy is my friend? :P
  • Don't understand WP using iOS coding for web pages?! How do you mean?
  • Mobile IE will spoof the user-agent string of Chrome or Safari in order to render web pages correctly. Judging from my usage, it mostly spoofs Chrome. He's implying that Windows Phone and iPhones share some type of programming language, when really they don't.
  • Example: when you visit a website and it asks you to "download their app", but points you to the Google Play store, it's because IE is pretending to be an Android browser. I find it to be extremely annoying.
  • Then again, the coding schemas used in WP and iOS have far more similarities with each other than either has with that appalling, old-fashioned JAVA script-kiddie rubbish used in Android. In many ways it's similar to the old battle between Microsoft who supported development in C and Apple who tried to push Pascal.  At least this time Apple is using a C-derived variant. These translation utilities have their place, but obviously not for professional software development.  What's great about it is that in a few months we'll have thousands of WP apps that can make fart noises.
  • You don't know what you're talking about. Posted via the Windows Phone Central App for Android
  • Show this to snapchat!
  • You dont like 6snap?
  • For some people 6nap crashes and it would be nice to have an official app because that would show support for the platform.
  • Oh, good grief.
  • Apps for WP with iOS interface. Hum.
  • No, not really. You HAVE to make manual fixes to the autotranslated code. One of the should be GUI. Although I've seen ports that just leave the iOS interface in. Bad luck and lazy developer.
  • No you haven't. This whole post, and the comments section should really be a lesson to me on why I should not read or respond to comments. People plucking random thoughts from their brain and posting their opinion on the Internet. There is no UIKit framework on Windows Phone. The look and feel might "mimic" an iOS interface but it certainly is not "left in". Honestly.  <face palm>
  • This is exactly the reason why you should actually do reply. I have limited knowledge of available APIs and frameworks so i just express it the way i see it. Then someone who actually knows can come and correct me for what i am actually grateful, so no need for the high horse.
  • As Mikosoft said, you should treat your fellow commenters more kindly. Knowing more than someone else on a subject doesn't make you better or worse than the other person. You don't want to be the stereotype of a computer guy who can't talk to other people.
  • Microsoft needs to either make their own version of this that does more or promote this app bigtime! Or buy them if they think it is necessary!
  • I hope we can get more apps now.
  • LMAO neither have I.
  • This will help us getting more good trending apps. But as WP and rt are merging and if windows 9 becomes a revolution. This tool will help devs to port apps so quickly. Now it depends upon windows 9 and Microsoft's marketing.
  • Maybe web wrappers will be less common now.. :D
  • What's you problem with web wrappers it basically the same concept behind chromebooks
  • the problem is performance and no offline access
  • You can do offline with HTML5 wrappers.
  • Why the necessity for (2) languages - i dont get it, im not a computer science guy.....What language is Android code done in?
  • Typically? Java
  • Apps in Android are written in Java code.
  • Well because everybody wants to make their own language to fit their own OS.
  • This is great. These guys are brilliant! They knew the WP ecosystem is growing and they are planning to make the best out of it! Even though there is that one thing that keeps bugging me, Microsoft is the leading company in software development and technologies, how come they suck at making windows phone a better OS? 8.1 is great but they're moving slowly.
  • They have to make sure it's feature addition is perfect I guess, yet they won't stop using everything
  • I hope this helps to bring us more apps, there are a ton of apps and games on ios I would love to have :) let them come
  • Yup hope for the best.
  • How can we all help this company be advertised to the ownsers of popular apps on IOS? So that they may get the idea.
  • Honestly, its just not worth the effort when WP has 3% market share in the US.
  • Sounds great..  Multi webwrapper tool
  • I crawled through the whole article multiple times still each and every word passed over my head. :/
  • You're telling me! I keep waiting for a developer to tell me how I got everything wrong, heh.
  • Developer here! You got everything wrong :P That is all   (In all seriousness, it's okay. I just thought I'd pop in for the joke!)
  • Ha ha, I freaked out for a moment. :-)
  • Others are doing what Microsoft should have done long ago , bravo Microsoft
  • No Microsoft helped middleware and library developers, which in the long run is much more productive. This tool isn't "magic" although it might cut down on porting slog, there is a ton of devil in the details of a conversion.
  • Please someone tell the Flipboard and ESPN Watch developers!lol But really.
  • congrats sLOVEnian team // Bravo naši!! :))
  • :D Hvala!
  • The fact is many iOS devs and some companies don't want to support WP, no matter how easy it is.
  • THIS... KING i am looking at you... candy fuckin crush... i was just thinking is it possible that there must be a considerable amount from Apple and Google to these companies to not develp for MS... because in general businesses, big companies do put pressure on a vendor to not work with a competitor... 
  • I'd rather have a port from ios then Android,the ios versions of apps seem to be more polished then the android counterparts.
  • Developers, developers, developers, developers, developers, developers!
  • I guess this means more... Dare I to say it...? Yes I dare...!
    Developers! Developers! Developers! Developers! Developers! Developers!
    Developers! Developers! Developers! Developers! Developers! Developers!
  • We should trend this on twitter
    Hashtaging Microsoft as in I want those iOS apps sooo bad
  • Slovenian developers are one of the best in the world.At that side I am proud to be Slovene. But despite that we still don't have word flow in slovenian language.I hope this will change in the future. Microsoft please take more atention to Slovenian developers and support them!
  • O wow this could be great for developers if utilized correctly. This also I huge for the Windows Store for all users. I don't understand why Windows Phone has such a complicated app variety seems like no one does anything.
  • Even if they ported all the iOS apps into Windows C#, you still run into a licensing issue. I'm sure Microsoft would have to sign some agreement to give the majority of the sales to Apple. If you ported them over through a portal like BlueStacks on the desktop, you still need a Apple account to account your apps (as is the case with BlueStacks). I'm excited to see what's in store with this. It only took 7 years to get to this point. I'm sure in 7 years from now all the three major platforms will be so similar that the only difference is the User Interface.
  • in 7 years it will be.... which fone reads your mind better...
  • Get this to Supercell and King asap!
  • Hmm, is it possible to bring Clash of Clans?
  • People will develope WP apps if It can make them money. Simple as that. It has nothing to do with desire or fandom. Hell if Apple thought they could make money from WP they would do it in a heart beat. Now, for me I am only missing the Autodesk apps. Don't care about the rest, but I know some do. So tell the developer of your favorite app about this and maybe they will start to think about it. Especially if they are making money on ios and android.
  • Nah Im good, I'll stick to Bing rewards lol.
  • I bet you intended to make that comment in the contest article!
  • So are they using this to bring us more games? Do the lead serves on Apple plan to use this at all?
  • Since iOS developers are starting to use SWIFT instead of objective C, will this utility still work with that?
  • Good tool. I was looking for such a tool
  • Can someone please help Gigwalk create a WP8 app. It's funny that they've worked with MS for years on Photosynth, even post Microsoft and Nokia as customers on their website, yet only have ios and android apps!
  • Is this still available?  I've been trying to connect to the website  for a couple of days but it seems to be down. Anyone got any idea on where it went?  Bought out by MS or Apple?     Thanks. 
  • Seems to be working fine - I just went there, and also went there last weekend.
  • Thanks Paul .. I think it could be an ISP issue.  I tried @ work (& home) and I got a connection timeout.  However, work and home use the same ISP.   However, when I try to connect with my mobile phone (different ISP) it connects fine. Thanks for checking for me. :-)
  • Recavrey windows phone 8
  • Please
  • Come back win 8.1update