views:

91

answers:

2

Hi, folks.

this time i'm dealing with this issues, we are currently starting a new project in which there are several requirements that we need to accomplish.

  • Solutions must run on Mac,Windows and Linux.
  • Can be configured to use a embedded database engine such as SQLite or Apache Derby, and can also be configurated to connect to a remote database engine. MySQL for instances.
  • One module of this solutions is planning to run on a table under Android OS.

    Doing some researchs, I found adobe air and it fix to most our requirements, as far as i know it can run under windows,mac and linux and even android OS. but unfortunately is not perfect because there are a couple of restriction about Peripherals handlers (has to be implemented using java code) and remote database handlers (we need to use a php or java code to connect to it).

    Do you guys have any advice in order to architected this solutions as better as possible

+2  A: 

Well, there are many cross-platform frameworks to choose from. What is appropriate depends on many factors. Here are a few you might look at:

  • Java (using Swing, possibly SWT + JDBC)
  • JavaFX
  • using a scripting language such as Python (not sure what GUI language you can use then)

Java is probably the best option at least for Android, as it's the offical, recommended language/API. Also, it's widely used, and free software.

I'd be somewhat wary of Adobe AIR, as it's a proprietary platform, so you'll always be at Adobe's mercy for support of new platforms etc. But that is your decision to make...

Also note that Adobe AIR for Android is still in beta:

The Adobe AIR SDK and Adobe AIR runtime is scheduled to support Android by the second half of 2010. Integrated tooling support will be announced at a later date.

( http://labs.adobe.com/technologies/air2/android/ )

sleske
Im clear with the fact that java using swing technologies can run over a window, linux or mac machines. but how can i fix this with andoroid ?. probably implementing SOA ?, then how can you develop a SOA over a desktop development and trying to avoid application server or web server installation
rfders
@rfders: I don't understand your question. Java apps can run on Android as well as on Android. And of course you could implement part of your app as SOA, but that is independent of language.
sleske
@sleske: lets say that i developed my solutions using java and swing technology, this will run over a win,mac and linux machine, perfectly well. but what about Android? i know that Android Os supports java as a programing languague but what about swing? probably my entirely GUI has to be redesign it and develop it again, so, what about my business class, how can expose then as a services when i dont have any web or application server in my solutions ? i don't know if i make myself clear. but i'm little bit confused about how can i handle with theses issues.
rfders
@rfders: Ah, I see. Yes, you will have to redesign your GUI for Android, it uses its own GUI toolkit, and does not support Swing. At any rate, Swing would be of limited use on Android, as Android targets phones and the like, which have smaller screens and different input than computers - so the GUI would need to be redesigned anyway. You can however reuse your business classes (non-GUI Java classes will generally be compatible). If you still have questions, just post a new question :-).
sleske
A: 

Hi there,

you could look towards a service-oriented architecture for answers. If you develop a number of services that connect directly to your database then you could utilize these services from a number of platforms even android or iphone ones. Adobe AIR is something I looked at but from what I have read I cant get enough confidence. Web services however especially if you go down the route of REST could offer many advantages.

Dimitris
How can i implements SOA developing a desktop application, it is possible to do that dealing with the fact that we are traying to avoid web servers installations ?
rfders