Monday, October 17, 2011

Apps

The term "app" is short for application, but it has come to have a special meaning when applied to mobile devices such as phones, mp3 players and tablets. To some extent, these apps, like the term, are abbreviated. They are streamlined to run on the limited resources of a phone or tablet. That isn't to say that some of them aren't quite complex, but no matter how sophisticated, they must run within the constraints of the device they are on.

The question is how important is it for a student to get into the app market, and, if it is important, what skills do they need to get a foot in the door.

Apps have become big business, just as a decade ago every company had to have a web site, now every company has to have an app on your phone. Apps are rapidly becoming the predominate way of accessing the internet.

In September 2010 Chris Anderson wrote an article for Wired called The Web is Dead, Long Live the Internet In it he said:

 Over the past few years, one of the most important shifts in the digital world has been the move from the wide-open Web to semiclosed platforms that use the Internet for transport but not the browser for display. It’s driven primarily by the rise of the iPhone model of mobile computing, and it’s a world Google can’t crawl, one where HTML doesn’t rule. And it’s the world that consumers are increasingly choosing, not because they’re rejecting the idea of the Web but because these dedicated platforms often just work better or fit better into their lives (the screen comes to them, they don’t have to go to the screen). The fact that it’s easier for companies to make money on these platforms only cements the trend. Producers and consumers agree: The Web is not the culmination of the digital revolution.

And the shift is only accelerating. Within five years, Morgan Stanley projects, the number of users accessing the Net from mobile devices will surpass the number who access it from PCs. Because the screens are smaller, such mobile traffic tends to be driven by specialty software, mostly apps, designed for a single purpose. For the sake of the optimized experience on mobile devices, users forgo the general-purpose browser. They use the Net, but not the Web. Fast beats flexible.

http://www.wired.com/magazine/2010/08/ff_webrip/all/1

Sara Perez in Read Write Moblie notes: Native data applications, such as those installed on smartphones like the iPhone and devices running Android, now account for 50% of all mobile data volume according to a new report from Finnish mobile analytics company Zokem. In a global smartphone study released this month, the company found that while the mobile Web browser was still the most popular smartphone "app," the use of native apps outside the browser is growing faster than mobile browsing itself.

Cisco networks notes the following:

Global mobile data traffic grew 2.6-fold in 2010, nearly tripling for the third year in a row. The 2010 mobile data traffic growth rate was higher than anticipated. Last year's forecast projected that the growth rate would be 149 percent. This year's estimate is that global mobile data traffic grew 159 percent in 2010

Last year's mobile data traffic was three times the size of the entire global Internet in 2000. Global mobile data traffic in 2010 (237 petabytes per month) was over three times greater than the total global Internet traffic in 2000 (75 petabytes per month).

Mobile video traffic will exceed 50 percent for the first time in 2011. Mobile video traffic was 49.8 percent of total mobile data traffic at the end of 2010, and will account for 52.8 percent of traffic by the end of 2011.

http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11-520862.html

Companies are advertising for programmers to create apps. Typically they want people who can program for Apple's IOS and also for Android. Some also want Window's phone developers. Simply Hired had scores of listing for IPhone developer and nearly equal listings for Android developers. There were several listings for Windows phones as well.

The financial model for these apps is still developing. Many are free. They either generate no revenue for the app creator or they generate revenue by incorporating advertisements. Company based apps are usually free, the app itself being a form of advertising. Many other free apps are "lite" versions which encourage you to upgrade to a more feature rich version for a price. Some apps are sold at a 99 cent level. If an app takes off and is downloaded often enough this can add up to significant revenue. Other, usually serious productivity apps, such as Quick Office, charge comparatively large fees for download. But even these fees are miniscule compared to the prices of comparable software for the PC. An expensive app might be priced around 25 dollars, whereas its pc equivalent would be hundreds.

For a student, then there would seem to be two opportunities. One would be to work for a company that wants to build and distribute apps to support its business customers and processes. Another is to build their own apps and try to sell them in the app stores.


Skills Required to Create Apps

First let's consider what apps do:

  • They must use disk and memory resources efficiently since these are limited on mobile devices
  • They must surrender focus gracefully, especially on phones where they must recede to allow the phone call to take precedence.
  • They must thread processes to allow both foreground and background processing
  • They often store data locally for short terms (some for longer)
  • They usually read from and write to cloud data sources
  • They need to refresh on receiving focus
  • They usually keep the location and status of the user
  • Most apps listen for data and can pass alerts to the user
  • They need a simple, clear GUI
  • Many scale to the device with a different look on a phone than a tablet

Let's be clear, to develop apps a programmer still needs all the basic programming skills. He or she must know how to use programming structures such a selection, repetition and arrays. He or she must know how to create appropriate methods, etc. In addition they should have a good understanding of object oriented principles especially inheritance, since much mobile programming involves extending objects that are provided by the development kit.

Additionally, a developer should learn to thread applications, separating foreground and background operations. This is an important skill for surrendering focus to a phone call or another application

The developer should know how to find and access services, both on the phone and the cloud. These include the GPS services and various data services

Basic database skills for storing and retrieving data are also valuable.


Specific Platform requirements

IPhone| IPad| IPod

The tools for IOS development are only available on the MAC. IOS Apps are developed in Object C using XCode. All apps must be processed and approved by Apple and distributed through Apple's AppStore

Here is Apple's">Developer site

Here is an example of Objective C code for a hello world IPhone app

Android

The primary tools for Android are Java and xml through the Android SDK. There are several possible distributors for Android Apps, the largest of which is Google. You can also self distribute if you wish.

Here is the link to the Android Developers guide

Windows Phones

Windows phones use Silverlight with its XAML xml and C# or alternatively XBoxes XNA platform with C#.

Here is Microsoft's phone development site

It is also possible to create phone apps in all these platforms using HTML5. HTML5 apps are run through the phones browser. Microsoft has announced that its next OS, Windows 8 will work across hardware platforms and be based on HTML 5 and JavaScript. I am still unclear as to what that implementation will look like.


This is just a draft of the topic. I will try to expand on it more over time. Please feel free to comment and suggest additions or changes

No comments:

Post a Comment