How To Convert an Existing App From iOS to Android

Would it be difficult to convert and existing BT app from iOS to Android?

Both yes and no. If you have been using only plugins that are available for both platforms, chances are that you will not have many problems in converting. If you have been using plugins that exist only for iOS, then

oh well, yeah, of course, right… … …

you will have MANY problems in converting from iOS to Android. Some things that are so easy on iOS are not currently available on Android. You shall either have to skip on the feature or wait for someone to develop the Android plugin or commission creation of a plugin specifically for you purposes.

First Case — The Plugin You Used in iOS Exists under Android

Within the last year I have been privately writing plugins for both sides of the coins, both for iOS and for Android, for clients. In one case, I had to convert the entire app of some 300 screens from iOS to Android. What should have been an easy port turned into three weeks of hard manual labor. For iOS they used the HTML plugin to show pages on their sites and what would be more natural than to use the same HTML plugin on the Android side? It turns out that in version 2.0 of BT that plugin worked normally for both platforms, but in version 3.0 David Book changed things on his own and made the Android plugin virtually unusable. It cannot read images from HTML pages, for instance, and will force you to download the page each time instead of showing it outright.

The problem is so severe that Smug created his own version of BT HTML plugin and (fortunately) made it available to everyone for a small amount of money. It works just as it should and so I manually re-coded some 200 pages of that app and now it is OK.

Did I have to do that manually? No, I could have dived into the server code in PHP and converted the HTML plugin into Smug HTML on the fly, only that I didn’t as that was a one time job.

How To Convert When There is No Such Plugin on the Android?

You will also have problems with any other plugin that exists for iOS and has no counterpart in Android. If you have used Aussiedra’s iOS plugin to show videos on iPhone, you will have to use CMCOFFEE’s plugin for the same thing on Android. They won’t even have identical control panels, so more problems are on the way. As I said, either do it manually, or write / commission a piece of software to port parameters from one control panel to another control panel.

No Such Plugin For Android, Sorry!

Finally, there will be a case where no Android counterpart of a plugin exists. For instance, there are no Twitter and Facebook plugins on the Android side, so when one of my clients needed it, he had to pay to develop these two plugins from scratch. He could have afforded that because his client had budget sufficient to bear the brunt of such cost, and you may not be in that situation.

Or, if you are converting a larger number of apps that use mostly the same plugins, you may want to finance that cost in view of future profits that a multitude of apps is going to bring you (one day).

In an ideal world, each and every plugin in the BT market should have both Android and iOS parts ready when being published. Then you would not even have to pose your question, you would just publish two versions of the apps all day long.

Alas, that is not the case. Most developers do not learn both Java and Objective-C for the fun of it, they want to be paid for development, so usually it is an either-or situation. There are very few plugin developers that routinely publish plugins for both platforms. Chris1 and Susane come to mind, CMCOFFE and Smug could do that if they wanted to and I could do that too except that I prefer to develop for clients directly. (I am sure there are others and I apologize for not mentioning them, but that is not the point.)

The Solution — Transcode The Existing Plugin From iOS to the Similar and Existing Plugin for Android

The long term solution would be to change the code on the server and instead of this

SAMPLE JSON Data
————————
{“itemId”:”343434″, “itemType”:”Das_video_playlist”,
“itemNickname”:”Video”, “navBarTitleText”:”Video”,
“DasVideoURL”:”http://gdata.youtube.com/feeds/api/playlists/6F688A114397EEAE”,
“DasVideolistTitleFontColor”: “#000000”}

insert this

JSON Data
————————
{
“itemId”: “948A6C3DB67AA468853926F”,
“itemType”: “CM_awlPro”,
“itemNickname”: “apro”,
“navBarTitleText”: “apro”,
“youtubeKey”: “your_youtube-key”,
“ytplaylist”: “HPcpp4e3JVpXbtgyD-k-nCmwpbbMIHOh”,
“isGrid”: “false”,
“numOfColumns”: “3”,
“changeThumbSize”: “false”,
“thumbHeight”: “20”,
“thumbWidth”: “20”
}

But that is for David Book to decide and implement, not for us, users of the system.

This entry was posted in Programming, Android and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.