Saturday, October 23, 2010

Google App Inventor: The Application Revolution.

Google AppInventor is based on some incredible and groundbreaking educational work at MIT that goes all the way back to the ‘60s.  Computer Scientist like Ricarose Roque, Eric Klopfer and Mitchel Resnick developed methods of teaching computer science concepts with fun and simple interfaces.  Hal Abelson, a professor at MIT worked with many of those early concepts and the rebels that believed programming should be fun and easy to learn. When Hal took a sabbatical at Google he brought with him a wealth of experience that his work at MIT with teaching and learning programming had given him.  Building on the work of Mitchel Resnick and Scratch (a program to learn about programing  with visual blocks)  Hal begin to develop AppInventor. AppInventor allows Android Apps to be built and programed using colorful easy to understand building blocks. You will first add interface elements to your application such as buttons, images and sounds. Then you will add logic and actions with plain language instruction blocks that snap together like a child’s building blocks. Not only are the blocks color and shape coded they are logical. Like “when a certain thing happens do another thing” as you see below.




While you are adding visual elements and arranging programing blocks you can see the application actually running on your connected Android phone.
You will begin immediately in my book to program applications for your Android device. As you go through each project you will learn how computers and the Android operating system “think” in relation to you and your world. You will be learning how each activity takes place and what instructions are required to make them happen. Very soon you will be able to design and create your own applications.  Making applications with AppInventor starts out as fun and then quickly becomes a joyous creative process as you create and refine actual functionality on your own Android phone.


More indepth history to come.

twitter: @jwtyler
http://android.jwtyler.com/

Wednesday, October 20, 2010

A Short History of App Inventor Part VI


How the Programmers do it.  

An Android application begins as a design idea or sketch on the back of a napkin.  To make an idea or a lunch time sketch a reality has until recently, meant meeting some pre-requisites.  An Android application developer had to have a solid and thorough knowledge of computer science concepts and mobile computing concepts. He or she also has to know how to program in Java. And then the developer desiring to make an Android Application has to become very familiar with the Android SDK. The SDK is the tools and Android specific functions that allow a programmer to make a phone do “stuff”.  It contains such mysteries as classes, functions, methods and calls that let the developer manipulate the hardware of a smartphone.  Using software tools such as Eclipse and ANT (Mysteries upon mysteries,) a developer writes Java code that looks like this:

public class AlarmReceiver extends BroadcastReceiver{
   @Override
   public void onReceive(Context context, Intent intent){
                  NotificationManager nm = (NotificationManager)
       context.getSystemService(Context.NOTIFICATION_SERVICE);
       nm.notifyWithText(R.id.alarm,
                         "Alarm!!!",
                         NotificationManager.LENGTH_SHORT,
                         null);
  }
}
This code gets compiled to Dalvik byte code (the underlying language for applications in the Android Applications universe,) and then installed on a cellphone. If the developer doesn’t like what he sees, then it’s back to the drawing board for another shot at the design goals.
Now some of that code looks like real words but obviously there are things going on there that most of us just don’t have time to understand or learn.  Luckily for us there has been a group of educators working at MIT that seem to agree with the rest of us that learning to program a computer shouldn’t be akin to magic where only wizards know the right words and incantations. We will look at some of the early history of App Inventor next time.
JWTyler
http://android.jwtyler.com
Twitter: @jwtyler

Monday, October 18, 2010

Part V A Short History of App Inventor.

The Birth of an Android Application
An Android Application is a program that can run on an Android powered Cell Phone or Tablet Computer.  An Application usually offers one or more “things” that a user can do with or to the application. For example an Android Application might allow a cellphone user to pre-set a message to be texted to any incoming SMS text messages.
There are several levels of functionality that an Android power device can have. The core operating system levels of functionality include creating the image you see on the display, interpreting user input and connecting to various wireless networks. The next level up is the “pre-installed” functionality usually in the form of Apps specially developed by Google to provide a base level of interaction and functionality. These include functionality like contact management, email inbox management, Camera and Clock/Alarm functions.
The next level of Apps are those apps developed by the handset manufacturer or carrier that provide different levels of beneficial or hair pullingly irritating functionality. Sometimes the applications from Manufacturers and Google cannot be removed or changed unless the developer is releasing a new version or an upgrade. Although Android is open in nature, many carriers and handset hardware manufacturers are not. The very openness of Android sometimes bites us when the carrier or manufacturer decides to implement draconian or unfriendly restrictions on applications or capability. Consumers need to be aware of the fact that although Google encourages free thinking and innovation with Android, carriers are not required to be as encouraging. Research a prospective device before purchasing and make sure that your device hasn’t had core functionality such as the ability to load non-market apps removed.
The next level of Apps is those that a user downloads from the Android Market that is available on all sanctioned Android devices. The Android Market has close to 100,000 applications in it some of which are of incredibly high quality. Others seem to have been brainstormed up in an illegal state of mind and programmed by Paleolithic high school dropouts.  They allow Android users to do everything from make disturbing biological noises to track dangerous drug interactions. Many people see the low quality of some of the applications in the Android Market as an argument against the Openness of Android. The simple truth is that freedom includes the freedom to be really bad. The Applications in the Android Market can be installed and uninstalled whenever the user likes. Google provides a framework for payment, refund and licensing.
There is a new fourth level of apps on Android devices with the introduction of AppInventor from Google. These are Apps that the users themselves have created based on their desire or need. The journey from a user’s dream or vision to that app running on their smartphone is an incredibly easy path.  How easy? To answer that question let’s look at how an Android App typically is created next time.
JWTyler
http://android.jwtyler.com
Twitter: @jwtyler

Saturday, October 16, 2010

Part IV in the Ongoing Saga of the History behind App Inventor


The core openness of Android quickly became its primary driving factor. The HTC Dream was released by T-Mobile in the U.S. as the G1 in October of 2008 as the first commercially available cellphone handset powered by Android.  By April of 2009 T-Mobile alone had sold over a million G1 devices.  And the Android Revolution began, with most major handset manufacturers carrying some version of an Android Device by mid-2010.


Each and every Android device had a set of core functions but allowed the user to download and install other apps as the user desired.  This in itself was not a particularly new idea. But the openness of the market and development platform was very different. Developers did not have to go through an expensive or irritatingly draconian approval process for their applications. Developers rushed to get app’s into Google’s “App Market” for prices ranging from free and advertisement supported to a few dollars. The App Market began to grow almost exponentially as developers tried to fill the different niches they identified in the market. Until today the App Market's growth is a little staggering in terms of the number released by AndroLib. 



 The availability of applications to fill the functional need that an individual identified was not a new concept. The iPhone, Blackberry and Symbian carriers had similar markets albeit not open in nature. Apparently "Open" wasn't such a bad idea in terms of market adoption and growth afterall. 

But Google had yet another revolutionary concept up their sleeve.


( See Market and App statistics here http://www.androlib.com/appstats.aspx show them some love.)
http://android.jwtyler.com/
Twitter: @jwtyler

Thursday, October 14, 2010

The Dawn of a New Age in Telecom

The next couple of decades saw the smartphone rise to popularity primarily in the business world where companies like Research In Motion, Nokia and Handspring dominated what was in reality a niche market. And the cell phone itself was becoming veritably ubiquitous with an estimated 3 billion handsets worldwide.  The introduction of Apple’s IPhone built on the existing market with a new sleek design, new functionality and a generous helping of fun. The wildly popular IPhone added fuel to what was already an incredibly fast growing market. RIM’s Blackberry had become the de facto standard for business and personal connectivity. But the IPhone made it fun, stylish and accessible to everyone.
Like most good things there were some down sides to the burgeoning smartphone market. One of the main issues was the very closed and controlled nature of the operating systems and tools used to develop functionality for the smartphones. The companies with the best products limited access to the fundamental tools and information needed to make functionality, also known as applications, or “apps” for the phones. Most companies required expensive licensing fees, strict development controls and all reserved the final word on whether or not a developer’s hard work would ever be used on a certain device.
Many developers and observers begin to feel that the strict gatekeeper mentality of most of the industry was actually stifling innovation and killing quality. Many people had “great ideas” for what they wanted their Smartphone to do, but only a select few had the resources and knowledge to make those ideas a reality. Even those with the knowledge and resources were frequently turned away simply because their vision did not mesh with the cellphone hardware and operating system creator’s vision.

Google and the Android Operation System

On November 5th 2005 Google in conjunction with the Open Handset Alliance announced the release of a new operating system for cellular smartphones called Android. The radical part of the announcement was that the operating system would be “open source.” This meant that anyone one could use it. Anyone could change it, add to it, alter it and become a part of its growth process. More importantly all of the development tools and capabilities would be available to anyone. For the very low price of absolutely free.
The idea was so incredibly radical that many observers and analysts predicted a fairly niche market for the operating system. However, on the side of Android’s likelihood of success was the fact that Google was already a powerhouse technical innovator. Google had by 2005 brought search technologies and information management technology from the dark ages into a sleek and efficient modern world. Google also had fairly deep pockets and a whole lot of experience marketing and creating innovation adoption. Add to the mix the fact that the Open Handset Alliance had many heavy hitters in the cell phone industry such as Motorola, T-Mobile, Texas Instruments and HTC all onboard with the idea of creating a cell phone that was not only functional but very adaptable.
Android itself was an operating system based on the known stability of Linux. Operating Systems provide the basic interaction with hardware. They also act as the “middle man” between users and computers or cellphones. Android was “open” so that anyone could see how these processes worked unlike its main competitors such as the dominant Symbian,  RIM’s blahblah, Palm OS, and Apple’s IOS.
A core idea with the Android operating system was that developers should be able to make whatever functionality or App for the operating system that they could imagine. The SDK (Software Development Kit) the tools used to create Android Apps was released for anyone to use as long as you had the programing knowledge to do so. This philosophy was a fundamental shift in the cell phone world where handset developers and operation system developers frequently were the sole arbiters of who should and should not be allowed to have an application on a certain handset.

Wednesday, October 13, 2010

The Smartphone Cometh

This is the Second in a series I am doing on the history behind Android App Inventor

The SmartPhone cometh.

The telephone and the personal computer have had a very close relationship since the very dawn of their existence.  By the time the computer became common place, telephone company infrastructure was established and relatively stable. It didn’t take long for computer scientist and hobbyist to start trying to make computers talk to each other over the phone. From the earliest efforts to communicate across the telephone wires, came the birth of the information age and the Internet. In just 25 or so years the personal computer and the telephone were locked into a symbiotic relationship that connected not just computers but people via written word. Email, the World Wide Web and the easy connectivity of the well-established telephone industry provided for a rich and rapid growth of new means of communicating and managing information.
As demand increased for more functionality from personal computers, their size decreased and their capability increased. The early days of ugly furniture size computers and grainy displays faded into sleek, vibrant and fashionable miniaturization.   Soon, laptops, PDA’s and hand held computers became common place. Alongside the growth of the personal computer, the cell phone had it’s own rapid growth. Brick-like, expensive and unreliable cell phones gave way to affordable and functional cell phones. It seems in retrospect that it was inevitable that the two primary technological means of communication would merge and become something even better. Soon the power and functionality of personal computers, along with the portability and connectedness of cellphones would merge into something entirely new and different.
As the need to stay connected in the business world and the business of modern life increased, more and more functionality began to migrate over onto the cell phone. The first logical step was that of managing WHO you needed to contact and when you needed to contact them. Cell phones began to include contact and scheduling functionality. The age of the “on-the-go” professional was upon us and we needed to have our rolodex, calendar and telephone with us at all times.

In 1992 IBM introduced Simon, the first “smartphone”. The Simon was a cellphone that was more than just a way to communicate with the spoken word. It included a contact manager, email, and fax. On top of communication capabilities it had functionality that could be useful to its owner completely outside the realm of communication. It had a notepad, a calendar, a world clock and a calculator.  Many of these types of functionality had shown up from time to time on other cellphones in one form or another. But the Simon was unique in that it allowed interaction with all that functionality via a touchscreen interface.  The Smartphone was born and many other manufacturers began to bring to market phones with functionality that went well beyond that of just communication. Nokia, Ericcson, and other manufacturers quickly began to design and manufacture hardware that could support this new concept of a multi-use phone-computer.

Monday, October 11, 2010

Android Applications: A short history....Part I

“Mr. Watson come here. I want you.”  Alexander Graham Bell, the inventor of the Telephone would surely be shocked to see how far the first ever understandable spoken words on a telephone have brought us.  For ninety years after its invention the telephone changed little in its basic form.  A “phone” was used for communicating via spoken words to people who might be miles away from you. But, if you were miles away from a telephone you would be forced to resort to smoke signals and loud shouting.
Then in 1973, Martin Cooper developed what would become known as the “Cell Phone.” The cell phone was a radical new technology that would allow anyone to communicate with a traditional “land line” phone or someone else with a “cell phone.”
In the early eighties I remember my uncle bringing in a briefcase and making the startling claim that it was a telephone. It was an incredible innovation but impractical in many respects. The battery life alone would have had you sprinting from electrical outlet to electrical outlet to make a phone call of any length. The range was limited, the sound quality was dreadful and very few telephone companies had the capability of supporting them.


The DynaTac 8000 was one of the first truly portable cell phones and despite all of its limitations and an almost $4000 price tag, had a waiting list in the thousands. With that kind of demand and interest, other companies and other models quickly began to be manufactured. The Cell Phone revolution began and continues to grow at an almost exponential rate to this very day.
At the same time cell phone technology was going through its birth pains and growth the personal computer was just coming of age. Computers were moving from being giant power gobbling machines that only interested large corporations, to nimble and powerful machines able to do new and interesting stuff. No longer just the domain of a few nerdy hobbyists’, the personal computer began to be very common in the average home.   The new personal computer allowed the Average Joe access to incredible new functionality like Pong, Frogger and Spreadsheets. As the power of the personal computer became greater, the programs that the average person could run increased. Until soon, word processing, financial management and a whole world of entertainment became available to the home user. And, soon an entirely new paradigm to communication.

Saturday, October 9, 2010

Coming Soon!! "Google App Inventor For Android"

We are excited about the publication of "Google App Inventor For Android" by J.W. Tyler, coming in the first quarter of 2011. 

For a preview of the upcoming book, check out the new video tutorial at http://android.jwtyler.com.