Sunday, November 14, 2010

The Suprising Growth of A Google Product

App Inventor is my first experience with the fledgling days of a Google product. It is possible that every Google beta product has such an incredible development pace.  The product has only been out since mid year and has gone through some very major revisions.

The team of dev's at Google have consistently been apart of the community. Almost all of the updates that have not been specific bug fixes have been directly influenced by the requests of the community.  It is amazing to me that I can have a direct influence on a Google product.

I honestly hope that the App Inventor product matures into a true rapid application development platform.  I am putting together a little bit of a post that specifies my hopes and expectations for the product.

There is a lot of room for growth with App Inventor before it can be accepted amongst the community of serious android developers. However, I have very high hopes and in fact a great deal of faith that the incredible developers at Google will see the possibilities with this awesome product.
Following are the posts from the team to date detailing the updates to the App Inventor product.


http://groups.google.com/group/appinventor/browse_thread/thread/e213b942718dca6b/cd1eef8a03af9ca2?q=#cd1eef8a03af9ca2

http://groups.google.com/group/appinventor/browse_thread/thread/a43061782aa1669d/f846e5a9b4e05cc6?q=#f846e5a9b4e05cc6

https://groups.google.com/group/appinventor/browse_thread/thread/e182e56a314b11ee/5f370e5f28467c3b#5f370e5f28467c3b

https://groups.google.com/group/appinventor/browse_thread/thread/1656180912aeb892/ebaca1ec8e2a606f#ebaca1ec8e2a606f

Wednesday, November 3, 2010

Technology: It is not who you are.

My education is not primarily in Technology. Not even close. It is in Theology and Philosophy. World Views you might say. I would like to think that my education helps me keep technology in it proper place in the world. And more importantly in my world.

As an individual I am deeply immersed in technology. I am in fact almost exclusively involved with either teaching technology, learning new technology or writing about it. I am a geeks geek. I love the shiny lights, the empowerment and the wizardry.

I never, never get involved in Technology VS. Technology debates anymore.


As I have explored my discomfort with the iPhone vs. Android, PC vs. MAC, Chevy vs. Ford debates I have come to think that my discomfort is dual in nature.


At the top of the list is the acute realization that the more I learn about technology and the way it interacts with society the less I know about it.  My knowledge base grows daily. It is my job to learn at an almost break neck pace. Besides the fact that my appetite for technical knowledge is almost limitless, I have an innate ability to quickly absorb and digest technical knowledge.  Even so, I feel a most lugubrious Luddite when I consider the scope of what some of my near betters know or do when it comes to technology.

Put simply what I do not know about the technology I hold dearest would fill encyclopedias.

I look a fool arguing for something I am not absolute maser of.

Secondly, I refuse to have my identity as a person pigeonholed with something as limiting as a piece of technology.  Humans are flawed enough as it is. I certainly am flawed. To add to that lack the failings of a peice of technology is sheer madness.
My identity as a person is so complex that even I struggle with it from day to day. We all do. The great "Who Am I?" Should not be answered so simply as "A PC fan."   or "A staunch defender of the Apple design ethos."  That can and should certainly be apart of my identity. But not the hinge on which my destiny and value turn.
I am an enthusiast. I am enthusiastic about certain pieces and kinds of technology. And I can argue their relative merits. (The ones I think I understand.) But those enthusiasms have changed over time certainly.
More importantly I am an enthusiasist of people. This enormous rock we live on is populated by some of the most incredibly complex and interesting life forms. People are awesome.

If my enthusiasm for technology steps between my getting to know a person better. Then technology fails.

And certainly this is just an opinion. Part of my identity and subject to revision, redaction and outright denial at some later point.
Jason Wesley Tyler
http://Android.jwtyler.com
Twitter: @jwtyler

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.