Currently, I plan to port a Java desktop application, to the Android platform. Besides official Android SDK, I also take a look on, as it will be a plus, if it is able to run in iphone with minimal effort.
Those cross platform frameworks seem nice. However, I was wondering, what are the limitation on those frameworks?
- Will they still have the same look and feel as native Android application? (Or a native iPhone application)
- Is there any difference in the speed and responsiveness of the application?
- Are they able to provide same set of GUI components as in Android SDK? (Or iphone's)
- Limitation access to I/O, network resource, hardware?
- Ability to use threading?
From my experience (my background being native mobile app development), we get a lot more control with native apps vs framework based apps. That advantage has greatly reduced in android and iphone platforms, however there are a few other things to condsider:
- If it is a one off app then you are
better off working with the
frameworks you mentioned, they
provide all the features you asked
about and for a beginner, are a bit
faster to develop.
- If you are going to do multiple apps
then it makes sense to have a custom
framework for your needs. In this
case you can reuse parts of your
Java desktop app and absorb them
into your framework. You will
probably need to create iphone and
android/java versions.
- If you create your own framework,
you can also incorporate other
software development best practices
like CI more easily when compared to
off the shelf frameworks.
- The UI components are different for
Android and iphone and you are
better off having them different as
they have quite different
sensibilities and interaction. So it
may not be a good idea to aim for
one to one mapping.
- Speed, performance etc are not an
issue, same for threads support.
Hope these points help in your decision making process.