javaFX
hi,
is anyone using javaFX?
i am thinking of using it for client application that should be available for mobile and desktop usage. it can not be browser, since it needs its own DB, and should be able to work offline.
I thought i can use either Java (and later port it to ME), or use JavaFX.
any thoughts?
another one was to use AIR, but it seems there is no way to port it to mobile, at least not for now. is this so?
thanks,
Tami

Comments
I would go for a browser application.
HTML, JavaScript, CSS, and... Google Gears(!).
Hi,
maybe this was not clear enough, but browser is not an option. the application should be available offline and it also needs access to file system.
thanks
Why access the file system?
Let's put it another way:
With Google Gears you can:
- Browse you GMail offline and create drafts (will be sent once you go online again)
- Edit Google docs (text, spreadsheets, presentations), etc.
Still doesn't match your requirements?
Also, accessing the file system on mobile platforms and on desktops are completely different ball games. For example - on mobile phones you need your app to be signed AND have the user's permission before you can access the file system. In other words - you cannot do things behind the scenes. Some users freak out when asked to grant such permissions.
Last (but very important) point - with Google Gear you don't have to change your code. Accessing the persistence storage is the same for all platforms.
I think you should think about it some more. It's powerful, documented, supported, and has a large community.
Hi Adi,
thanks for your comment.
i will look into it.
are you familiar with google gear?
are you familiar with developing to mobile devices?
bye
Gears - I've done many things with it (natively and with ExtJS as a wrapper).
Mobile - Never as a developer. I've made code reviews, helped tackling issues like file system access (CDC/CLDC), published one application for Symbian (6.0, 6.1 - an ssh shell), and currently playing with my Android phone. Nothing professional... :)
hi,
thought about your suggestion to use browser + google gears, i think this will not help me in another requirement:
the application should be able to notify the user about events, updates, etc at specific times. this means, like ICQ, that it doesnt have to be wide open so it can let you know that someone joined or left.
from what i understand from your suggestion, the user will have to open a browser with our URL so the application will be active, but offline. did i misunderstand?
will be happy to hear your kind advise,
Tami
Regardless of your chosen platform you may always opt to use a JABBER / XMMP client/server to communicate events between users or between a server and a user.
thanks, but this was an example.
if the example was not clear, it meant that:
1. the application runs in the background, you dont have to open a browser for it
2. it runs all the time, checking for stuff, and notifying the user. it can also be a calendar kindof application that lets you know when your meetings are, or each time the clock goes to a full hour.
i hop now the requirement is more clear.
thanks
Tami
You can wrap your HTML application with Adobe Air and have that feature covered.
However, Adobe Air for mobile platforms isn't yet release and considered a "bleeding edge technology".
Sounds like you need to consider different technologies for desktop/mobile platforms.
hi adi,
yep, this could be a solution (considering different tech for mobile/desktop).
java can be one solution, and then port it to ME.
this is how we got to javaFX.
what would you recommand for the mobile?
thanks
Tami
4 months ago I had the privilege to take part in the development of an application that has similar requirements - one backend server that supports multiple client types.
For Desktops - Browser based Flash application.
For mobile they're using two different technologies:
- J2ME for devices that support Java.
- Objective C (Xcode) for iPhones.
Both clients are accessing the local file system, display media (images and movies) and access specific device functionalities (incoming call detection and handling, screen lighting control, etc.). Both applications look great (the J2ME was developed on Nokia N95).
As far a I know, using J2ME you can develop a solution that can be deployed on a large part of the mobile market.
Frankly I read the whole thread again and I am still not sure what you need to do. Please be as specific as possible with a clear description of the client and server rules.
Hi shlomo,
well, i will try to be clear as possible:
the requirements are as follow:
1. application should run on mobile devices and desktop
2. application should be available to its users even when internet is off. this means, they can still update their status, view their personal data, prepare items to be sent to server later when it is connected. in other words, there should be somekind of option to save personal data on the client side.
3. application should be able to notify the user about his personal events when its time (at 12:00 and not when the internet is connected again, or when he opened the link again). as far as i know, this requirement means no browser but an application that runs in the background all the time. like services, if you are familiar with it.
4. and last butn ot least, since we are talking many OS, then it would be nice if possible to devide the application into at least 2 modules (or even 2 different applications, exe) one for the BL part, and one for the GUI part. so, in case we need to rewrite it, we might assume that the BL part can be written once, just maybe... although the GUI part its more clear that it will probably be written several times.
i hop i managed to be clear this time,
anyway, any question to make it more clear is welcome,
thanks again for your time and efforts.
Tami
I have to leave the office soon ... promise to provide you with several workable solutions later OK?, don't start writing code yet ...
Hi,
I wouldn't go with JavaFX, it's premature when it comes to UI component, it means that you'll have to invent the wheel.
In additional to Adi's post I'll add this one: http://www.zkoss.org/
If I understand correctly from the requirements you presented there are several paths that you can follow. I have the impression that the functionality needed by your application, basically follows that of a typical IM (instant messenger). Luckily, not only there are many open source IM’s that can run both on a desktop and on a mobile OS (such as Symbian ) but also some of them are written in Java and support common protocols such as the ones used by Jabber, ICQ, MSN, AIM, Yahoo, GTalk etc. See for example http://www.fring.com/ (not open source and not in java … but runs on my Symbian and an excellent piece of software)
It seems to me that one of these open source tools can serve as a basis for your development. Most Jabber clients are open source. Let’s inspect for a second the JBother Jabber client. You can run it directly from your browser using JNLP: http://www.jbother.org/index.rb?command=webstart
Can it run on your desktop? yes, can it run on Symbian? I guess not directly out of the box, but migration is possible. Can it run in the background? Certainly yes. Can you keep messages sent on a local file system when internet is not available? Yes, I am sure you can alter the code so that when no connection is available then you would just take your Java POJO and convert it to XML on the local file system and then when the connection is available you can “synch” with the server ( a Jabber server in this case). Can the user be notified of events? Surely yes with the XMPP protocol. You want two modules, one for the GUI and one for the BL? why not XMPP is universal and you can use any Jabber server or client you like.
Other radical solutions:
It wasn’t clear from your post what is the number of messages that a typical client will send (are we talking about 10 messages or 10,000 messages a day?). In case you need to send a very large number of messages you can of course use a Jabber server (again, open source and easily extendable) or even use one of the latest JMS servers such as the excellent RabbitMQ or OpenJMS.
For saving your local messages on a local file system you can either use XML (I can recommend on Java library which I am suing for that) or use a local DB such as SQLITE (http://www.sqlite.org/) which is written in C but also runs on Symbian and there is a type 4 JDBC driver for it.
More options are available, please also indicate what type of server are you going to use and which services is it expected to support.