views:

152

answers:

4

I have recently been given the opportunity to move from large scale server development to UI development (applications on handheld devices etc) and am trying to find the pros and cons of each world before making a final decision.

The general impression I get is that server development allows for a wider range of languages and technologies while UI development is more about choosing the right libraries for the job - but then again, I have no experience in the UI world.

Any advice on this?

+2  A: 

Having done the same thing a few years ago the difference is not so much in the technology but in the style of what you develop. UI development requires a lot of attention to how people will use the product. It requires a lot more interaction with people watching them use the product, working with the writers about how the product is usable, that sort of thing. The technology for UI development can be just as complex as server technologies (though often you don't need to worry as much about threading issues), so that's not the main difference. It's more the higher level of iteration if you do it right (being willing to change quickly and in response to things that are akward), and not being able to figure out everything before you start programming. You really don't know how things will be until you try them. Also, there can be a lot of stuff like working with UI mockups, working with designers (both web and graphic). A very different world in terms of who you work with. I'm really glad I made the switch, though I actually do more or less both now.

Francis Upton
A: 

Hai jean,

For UI Developement You'd do great as a GWT programmer, I would assume. Google Web Toolkit. Have a look at it. Thanks.

Pandiya Chendur
+3  A: 

The biggest difference is that when doing large scale server development, you have total control over the environment. When developing something that the user will install on their own computer or handset, you have no idea what they might be running it on and how it might interact with other software.

Some people will have buggy versions of the operating system. Others will be using unusual color schemes that will make your UI look terrible, or screen zoomers, or screen readers, or strange input devices, or all sorts of things you never knew existed. It makes testing and debugging frustrating and difficult.

On the other hand, doing client development can awesome - you can make stuff that really makes people's lives better. Creating the best backend is worthless if the interface to the software is unusable. On the other hand, a nice UI can make up for surprisingly bad backends by staying responsive and keeping the user productive.

If you've never experienced it, you might want to give it a try. After a year, you'll know if it's for you - but I think the best programmers I've met are invariably well-rounded - they're comfortable doing both frontend and backend work.

dmazzoni
A: 

First of all check here(HCI) which is important. And check Mobile UI Design. This will be good to be start. And then you can search technologies, JME,Oracle ADF, Jave ME, GWT, flash lite etc. (Also you can follow open screen project to learn what is going on.

Articles :
Mobile Design
How to choose a mobile platform
for microsoft mobile design guideliness
UI design documentation of nokia

javaloper