Benefits and Drawbacks of Smartphone Programming

Benefits and Drawbacks of Smartphone

On the plus side, Android-style smartphones are sexy. Offering Internet services over mobile devices dates back to the mid-1990s and the Handheld Device Markup Language (HDML). However, only in recent years have phones capable of Internet access taken off. Now, thanks to trends like text messaging and products like Apple’s iPhone, phones that can serve as Internet-access devices are rapidly gaining popularity. So, working on Android applications gives you experience with an interesting technology (Android) in a fast-moving market segment (Internet-enabled phones), which is always a good thing.
The problem comes when you actually have to program the darn things.
Anyone with experience in programming for PDAs or phones has felt the pain of phones

simply being small in all sorts of dimensions:
Screens are small (you will not get comments like, “Is that a 24-inch
LCD in your pocket, or . . . ?”).
Keyboards, if they exist, are small.

  •   Pointing devices, if they exist, are annoying (as anyone who has lost their stylus will tell you) or inexact (large fingers and “multitouch” LCDs can sometimes be . . . problematic).
  •  CPU speed and memory are always behind what’s available on desktops and servers.
    Moreover, applications running on a phone have to deal with the fact that they’re on a phone.
    People with mobile phones tend to get very irritated when those phones do not work. Similarly, those same people will get irritated if your program “breaks” their phones by
    •  Tying up the CPU such that calls can’t be received.
    •  Not quietly fading into the background when a call comes in or needs to be placed, because the program doesn’t work properly with the rest of the phone’s operating system.
    •  Crashing the phone’s operating system, such as by leaking memory like a sieve.
      Hence, developing programs for a phone is a different experience than developing desktop applications, web sites, or back-end server processes. The tools look different, the frameworks behave differently, and you have more limitations on what you can do with your programs.
      What Android tries to do is meet you halfway:
      •  You get a commonly used programming language (Java) with some commonly used libraries (e.g., some Apache Commons APIs), with support for tools you may be used to using (Eclipse).
      •  You get a fairly rigid and uncommon framework in which your programs need to run so they can be “good citizens” on the phone and not interfere with other programs or the operation of the phone itself.
        As you might expect, much of this book deals with that framework and how you write programs that work within its confines and take advantage of its capabilities. 

Please find more Topics on Android here

No comments:

Post a Comment

Thanks for your comments

Note: Only a member of this blog may post a comment.