I saw a news document on applications running in mobile devices. And, I believe that might be interesting for people where I live (Internet is not developed - but the cellphone networks are much better).
So here are my questions:
Bref, What are similarities/dissimilarities between developments for applications running in big machines and those running on mobile phones?
Thanks for helping
In your situation, Windows Phone 7 may be a real contender - devices are around 3-6 months away from launch, but the developer tools are already available as a free download.
The application development environment is a pure .NET stack: C#, WPF, Silverlight frameworks or XNA (aimed at games), all hosted on Visual Studio 2010, and with a pretty decent emulator available.
I'm more of a kernel guy myself, but I found the development environment and the ease of development of very attractive applications extremely appealing.
BUT one thing I notice from your original mail is that it seems like you may be targeting developing country markets. In this case, it may be that iPhone, Android and Windows Phone 7 are really too expensive for many people, and you would be better off targetting lower cost devices. These are most often Java (J2ME), but on CDMA 2000 networks, BREW is also pretty common.
In the overall scheme of things, there is not so much difference in principle between desktop GUI application development and mobile application development for the more fully featured OS targets (Android, WP7, iPhone). From a practical perspective, however, you need to think about a few things you likely wouldn't worry about on a desktop device:
If you decide to target J2ME or BREW, things are far more restricted still. J2ME apps can only rely on about 128kB of RAM, have a very limited set of screen widgets and need to deal with many different screen sizes. The upside is that there are hundreds of millions of J2ME capable devices out there - even very inexpensive devices support it.
On balance, if you want to stick with what you know, Windows Phone 7 is very compelling, but it's going to be a very high end platform to start with (1 GHz CPU, large WVGA display etc). Android may require a bit of learning, but has the significant advantage that some lower cost (say 199 USD) devices are starting to come out, but it remains a very capable and relatively unrestricted (compared to J2ME) platform.
BREW is something of a niche, but if you have a CDMA 2000 network locally, it's worth investigating. It's a bit painful (basically like COM programming, but in the RAW without the excellent Microsoft tools support), but you can get excellent results, and the distribution approach is actually pretty good.
First you should decide, if you want to specialize for a specific mobile device (e.g. Android, or IPhone) With your background you could also have a look on windows mobile devices. Documentations are available for all platforms and can easily be found via google. You CAN develop for both without an actual device, using only simulators or emulators, i would recommend the usage of a mobile device though.
For Android you need the Android SDK (obviously) And for the IPhone you need the IPhone SDK and a MAC.
The single biggest difference I can think of: The desktop paradigm "We have infinite RAM at our disposal, so let's just 'new' these objects up for later use." is fundamentally not successful on a mobile device with seriously constrained RAM space.