Build Differences between iOS and Android

Hi.

I have been using corona for a while, but only tested for using iOS devices.

I wonder what are the big differences when you want to release an app that can

provide multiple screen resolutions, just like different devices in iOS.

 

The only problem is… not all Android devices have the same exact resolution, just like

iOS devices. I am fully aware of this, and wanted answers from forum who has experience

in tweaking around Android. These are basically my concerns :

 

-how to categorize image resolution for low, mid, and high (tablet) in Android. What scale are used

 for standards ?

-how to manage your images assets? Does it have to make bigger pictures to prevent ‘cropping’

 on several resolutions?

-how does in general, all API corona works? does it have quite a list of difference configurations?

 does the physics work as well as in iOS?

-can it also use the native language of Android beside Lua?

 

Thanks in advance for responding to this  :smiley:

 

(i’ve posted in before under the subforum iOS, but no one seems to reply)

You don’t need any special Android resolutions. Just use the same you have for iOS (base resolution, @2x, @4x).

One consideration is to make sure you have big enough bleed zones in your backgrounds to cover all aspect ratios.

I use the following technique (the post is a bit old, but still valid):

http://www.swipeware.com/backgrounds-with-no-black-borders-on-appleandroid-devices

Physics and the basic API’s work the same across platforms, however you’ll see *a lot* of various performance issues in the Android world. This has nothing to do with Corona. It’s just that there are so many “cheap-o” devices out there, and those devices usually do not perform very well. Especially so with Graphics 2.0 which uses the GPU to render many effects. If the device doesn’t have GPU-hardware acceleration, you might get lousy performance.

Another issue is tap-lag. That is, the time it takes for a tap to register. Again this is an Android thing and nothing CoronaLabs can do anything about. This lag varies among devices and can be a bit annoying.

Yet another issue is audio-lag using the audio.* API. The time is takes for a sound to be played. This is especially apparent in action games. Some Android devices can have up to 600ms between an event and before the sound is played. Yet again an Android issue that has been blog-posted to death. If you Google it you’ll find a lot of posts about it. You can alleviate the issue by using the media.* API in Corona for short sounds that need to be snappy, but keep in mind that only 1 sound can be played at a time, and that there’s still a bit of a lag. The audio.* API currently supports up to 32 simultaneous sounds. Google greatly improved the audio lag issue in Android 4.1/4.2, but it’s still not as good as iOS.

Unless you’re using Corona Enterprise, you can’t access any native coding in Android or iOS.

thanks for the in-detailed ingemar. Really appreciate it.

hmm, as expected, Android does has quite a lot of rough things to deal with. I was planning to use Corona to

build apps on Android, and not a really game-based app though. 

The bleeding stuffs is not much of a big deal, in my opinion. it’s just the variety of Android screen resolution that

really give me a fright, and that is why I prefer asking for general directions. :slight_smile:

As for API, i feel that there are already problems on iOS, although they are minor, but they are sure become amplified

when you want to try with Android, especially when you focus to build app toward the newest Android (which is 4+ and up).

one more question: how does the social integration works in Corona? I read some blog posts about it, but haven’t really

try it for real. Does it now support both Android and iOS now?

All-in-all I’d say that Corona does a superb job of being able to keep one source for both Android and iOS (and soon Windows Phone).

As for the various screen sizes/resolutions of Android, there are no issues that cause any problems.

I don’t think that any issues on iOS would become amplified when running on Android. As for Android versions I’d say that Android 4.0+ is more reliable than any of the lower versions. In fact I’ve dropped support for all pre-Android 4.0 versions mainly because of the GPU hardware acceleration issue as Android 4.0 is the first version that *requires* a GPU with hardware acceleration.

I’ve only dealt with Corona’s “Native Social Plugin”. It works as expected on iOS/Android, however due to a “bug” at Facebook’s end, Facebook is not available for Android in the Social plugin (https://developers.facebook.com/bugs/332619626816423). Facebook works well on iOS though with this plugin.

You can use Corona’s facebook.* API instead, but I haven’t used it myself. It should work with both iOS and Android.

I should get down into business soon, to check the Android environment myself. thanks for the pointers :slight_smile:

You don’t need any special Android resolutions. Just use the same you have for iOS (base resolution, @2x, @4x).

One consideration is to make sure you have big enough bleed zones in your backgrounds to cover all aspect ratios.

I use the following technique (the post is a bit old, but still valid):

http://www.swipeware.com/backgrounds-with-no-black-borders-on-appleandroid-devices

Physics and the basic API’s work the same across platforms, however you’ll see *a lot* of various performance issues in the Android world. This has nothing to do with Corona. It’s just that there are so many “cheap-o” devices out there, and those devices usually do not perform very well. Especially so with Graphics 2.0 which uses the GPU to render many effects. If the device doesn’t have GPU-hardware acceleration, you might get lousy performance.

Another issue is tap-lag. That is, the time it takes for a tap to register. Again this is an Android thing and nothing CoronaLabs can do anything about. This lag varies among devices and can be a bit annoying.

Yet another issue is audio-lag using the audio.* API. The time is takes for a sound to be played. This is especially apparent in action games. Some Android devices can have up to 600ms between an event and before the sound is played. Yet again an Android issue that has been blog-posted to death. If you Google it you’ll find a lot of posts about it. You can alleviate the issue by using the media.* API in Corona for short sounds that need to be snappy, but keep in mind that only 1 sound can be played at a time, and that there’s still a bit of a lag. The audio.* API currently supports up to 32 simultaneous sounds. Google greatly improved the audio lag issue in Android 4.1/4.2, but it’s still not as good as iOS.

Unless you’re using Corona Enterprise, you can’t access any native coding in Android or iOS.

thanks for the in-detailed ingemar. Really appreciate it.

hmm, as expected, Android does has quite a lot of rough things to deal with. I was planning to use Corona to

build apps on Android, and not a really game-based app though. 

The bleeding stuffs is not much of a big deal, in my opinion. it’s just the variety of Android screen resolution that

really give me a fright, and that is why I prefer asking for general directions. :slight_smile:

As for API, i feel that there are already problems on iOS, although they are minor, but they are sure become amplified

when you want to try with Android, especially when you focus to build app toward the newest Android (which is 4+ and up).

one more question: how does the social integration works in Corona? I read some blog posts about it, but haven’t really

try it for real. Does it now support both Android and iOS now?

All-in-all I’d say that Corona does a superb job of being able to keep one source for both Android and iOS (and soon Windows Phone).

As for the various screen sizes/resolutions of Android, there are no issues that cause any problems.

I don’t think that any issues on iOS would become amplified when running on Android. As for Android versions I’d say that Android 4.0+ is more reliable than any of the lower versions. In fact I’ve dropped support for all pre-Android 4.0 versions mainly because of the GPU hardware acceleration issue as Android 4.0 is the first version that *requires* a GPU with hardware acceleration.

I’ve only dealt with Corona’s “Native Social Plugin”. It works as expected on iOS/Android, however due to a “bug” at Facebook’s end, Facebook is not available for Android in the Social plugin (https://developers.facebook.com/bugs/332619626816423). Facebook works well on iOS though with this plugin.

You can use Corona’s facebook.* API instead, but I haven’t used it myself. It should work with both iOS and Android.

I should get down into business soon, to check the Android environment myself. thanks for the pointers :slight_smile: