how far from iOS to Mac OS?

If a developer has a fully working iOS app, how much effort is required to port this to MacOS?
This app is airline reservations - security is a major concern when connecting to the server.
That is all I know. I have never coded for iOS so I have no knowledge of the options available.
Are they 70% there? or 80%?

[quote=137868:@Gerd Wilmer]If a developer has a fully working iOS app, how much effort is required to port this to MacOS?
This app is airline reservations - security is a major concern when connecting to the server.
That is all I know. I have never coded for iOS so I have no knowledge of the options available.
Are they 70% there? or 80%?[/quote]

Between iOS and Mac OS X, the user interface is so different that it will have to be rewritten entirely. Some think the UI accounts routinely for 70% of a program. Then all depends on the language the iOS app was developed in.

In all hypothesis, you probably port 30% of the app, which is the core engine. If this is a security sensitive app, that is already quite a lot.

As you say, it depends a lot on the application. Also, not trivially, how much it relies in plugins and declares (when they’re not shared with the new platform, obviously).

Moving to a new platform is usually the time when one starts abstracting the functionality away from the UI :slight_smile: This is good programming practice so it’s usually for the best.

If 100% of your code was hand-made then porting is just a matter of making things more or less position correctly. I’m reminded of this game, Romi (an adaptation of Rummykub), which we’ve been playing since at least 2003:

This is how the page looked like 7 years ago:

It had changed only once in the 4 years prior: In 2002 when OS X version was released:

This game has kept pretty much untouched since 1998 (at least). It’s entirely written in C (I assume) so Gerard Brochu was able to move from Mac to Mac OS X in one day. To release a Windows version in one day. To release iOS (iPhone and iPad) versions in one day and to release an Android version in a few days. Interestingly, it does use native buttons, but most of the UI is custom.

The unintended side effect is that the game is as horrible to look at and as uncomfortable to play as the very first day. No incentive to redesign at all. After creating the core engine 15 years ago I don’t expect coding has taken more than 50 man-hours in total in the past 10 years out of Gerard for the four new platfoms he’s added support to :slight_smile:

EDIT: Trying to find how far I could find references to Romi after I posted this I was surprised to see this very post from me in this forum in the search results from google, not three minutes after posting it. Impressive.

If it is anything like the text mode code of the era, it must not be quite pretty. And if indeed one can port a text thing to anywhere in no time, adapting an iOS app which has its particular graphic UI may prove challenging. Especially if the programmer put some logic in the UI controls.

You do not get an answer on another point:

If you have done the iOS version, you already have a lot done: design, work flow, how to deal with data, and so on.

I do not talk about code, but about “how to do the application”: you already do it.

Take a bit of time to put on the paper notes on how to create teh application, then start coding back.

Before coming to REALbasic (Xojo ancestor), I wrote an application with a different development environment, and I had troubles going forward with the application.

REALbasic was in alpha of Release 1, free of charge and brand new. I decided to get an eye on how I can create my application with it. The application was started four month before and it tooks me less than a week to come to the same level with REALbasic. Then I completed it the following week: I do not had to create the design, logic, and I do not port any code from one BASIC to REALbasic.
Nota: I had the experience of HyperCard (where you put code everywhere in the interface, just like REALbasic does, so it does not took me long to follow its path of coding).