on Wednesday, February 16, 2011


developing android appsEver since I first received my Droid, I’ve been very curious about how people produce some of those amazing applications on and off the Android market. I’m a programmer, but not a gifted hacker by any stretch of the imagination. I’ve mastered Visual Basic and Coldfusion, but when it comes to writing an application from scratch that would work on a mobile device, I was certain that was well beyond the scope of my abilities.
When it comes to writing mobile apps, the closest we’ve come at MUO is Beth’s article on how to develop an iPhone app. Even with the iPhone approach, you need to learn Objective-C. In other words – you’ve got to learn how to become a coder. Well, for those of you that appreciate visual-based programming like me, then you will be very happy to learn that Android has made it possible for anyone with even the most basic programming experience to create their very own high-quality and highly functional Android applications. The secret weapon to developing Android apps? It’s called the Google App Inventor and it’s offered at Google Labs.

Setting Up Google App Inventor

The App Inventor consists of three parts. There’s the design tool, the blocks editor, and finally configuring your phone.
The first thing you have to do is set up your phone. Go into Settings -> Applications and make sure that “Unknown sources” is selected. This allows the Blocks Editor to install itself and communicate with your phone for testing purposes.
developing android apps
Then, click on “Development” and make sure that you’ve enabled both “USB debugging” and “Stay awake.”
how to build android apps
Guess what – that’s all you have to do to configure your phone to work with the programming tools.
When you first sign up to use the App Inventor, you’re going to need to install the Block Editor as one of the steps. This is a Java application that installs onto your computer, and it gives you the ability to modify the behavior of the “blocks” that you’ve created in design mode, and it communicates directly with your phone.
Once you’ve signed up and you’re in the design tool, just select “New” and name your first project. In this example, I’m going to get started on a matching game for my kids where they need to match images of cats on a 3 x 4 grid.
how to build android apps
The design tool is set up a lot like Visual Basic and Visual C++, where the objects that you can use are on the left, and the design area, or “form” is in the center. In this case the form is the individual screen, and you can have multiple screens per app (just remember to include navigation).
how to build android apps
Once you click and drag a component onto the screen, it shows up on the right side of the design app under Components. Under “Properties” you can view and modify the initial display properties of that component.
how to make android apps
Now below I’ve basically created a screen with a 3×4 table (you can find this under “Screen Arrangement“) and then I added 12 buttons with individual cat images for each “image” property of the buttons.
how to make android apps
Once you start using the Blocks editor, all of these design properties can be modified. As you can see below, I defined the image of button 1 as a blank image (which I loaded in design mode as a grey image called “Image1″).
how to make android apps
As you can see, everything is visual – there’s no coding here. Under “My Blocks” I chose the “Screen1″ component and dragged the “Initialize” event to the center program area. You need to tell an event what to do when it takes place, so I dragged the Button1.Image property into the box, and then told it to make that property use “Image1″.
After about an hour of playing around – I finished programming the initialization of all of the buttons when my app first loads, as well as what to do when the user clicks on the first button.
As you can see, even an application like a matching game can require that you carefully consider every possibility. You can program for all possibilities by defining and programming component events. The example above can get complicated, so if you’re just getting started, stick with something simple like the example Google provides when you first sign up. You can graduate from there when you’re comfortable with the programming and testing process.
As you can see in the left navbar in the design tool, you have access to just about everything your Android can do – sensors, contact list, video players and much more.
So – here’s my work of art, programmed, tested and then finally installed onto my phone in about an hour. I still need to program the rest of the buttons as well.
developing android apps
Needless to say, the fact that I could even get anything to run on my phone with about an hour’s worth of effort is impressive. I thought it would be nearly impossible.
So, sign up to become a developer and try out the Google App Developer yourself. You may be surprised, you may find yourself creating some of the coolest applications imaginable. All it takes is a little bit of patience and some time to play around with the development tools.


what is web hostingEvery website on the Internet needs to be stored somewhere, and that’s what we refer to as “hosting” – but what exactly does that mean? With so many different ways of hosting your site, it’s easy to get lost in the internet tubes. Let me guide you through some of the many ways you can host your own website, as well as how much it’s likely to cost (if anything), and the advantages and disadvantages of each.
If you’ve been meaning to start a blog, but find the choices overwhelming and the jargon mind-boggling – or maybe you just want to satisfy your technological curiosity about how the Internet works – then read on.

What Is Web Hosting Anyway?

A website host is really just a computer that is on all the time and connected to the Internet. When you visit a website, you’re downloading some files from the machine that stores that particular website. The truth is that any computer can be used to host a website, even the one you are using now – but the computers used by professional hosting companies are incredibly powerful with lots of hard disks and memory, highly optimized to deliver the website files to thousands of readers simultaneously. The machines are stacked up high, and there are no keyboards, mice or monitors to be seen.

So – You Need A Website Host?

There are various ways of hosting your website, so let’s take a look.

Hosted Services

The first and simplest kind of hosting is creating a sub-website within a larger site, usually for a specific application like a blog. There are so many hosted services on the Internet, but here are some specific blog examples, all free:
WordPress.com – Free, but your blog will be hosted at a URL such as myblog.wordpress.com(unless you pay a premium for your own domain). You will get to choose from a restricted set of blog themes and plugins, and generally can’t do anything beyond the basic setup.
Blogger.com – owned by Google, Blogger gives you a little more flexibility with regards to writing your own theme code, but the plugin selection is limited and the Blogger branding is everywhere. Frankly, there is a reason WordPress is top – but it’s good to have a choice anyway.
Advantages:
  • Simple to set up and get started.
  • Generally good speeds as the company is specialised and good at what they do.
Disadvantages:
  • Very little control over the technical side of things. Non-approved plugins not supported, although Blogger is a little more flexible.
  • Portability: If your blog does get popular and you have a subdomain from a free hosted service, then moving to your own host later becomes difficult and you’re liable to lose some of the fans you’ve built up when the domain changes.
what is web hosting

Self-Hosted

If you want to go the DIY free route, then it is in fact entirely possible to host your own website at home, on your own Internet connection – but you should be aware that most ISPs don’t approve of this and it may be in violation of your terms of service, so do check first.
We’ve written a few guides before on how to self host a website on a spare computer, or even within Windows on your main computer.
Advantages:
  • As much computing power as you have to throw at it.
  • The ultimate in freedom to do whatever you want with your site.
  • Free.
Disadvantages:
  • A fairly high level of technical knowledge, or the patience to learn.
  • The speed of your website will depend upon the upload speed of your internet connection, which is both slow and very limited. Bear in mind that any upload traffic you use to host your site will also count toward your ISP’s monthly quota, if they have one.

Shared Hosting:

So called because you share a hosting server with thousands of other websites that are also stored on the same computer. Shared hosting is the budget option – prices and packages vary greatly – most will come will a free domain name registration and so called “unlimited bandwidth and storage”, but don’t be fooled. Shared hosts rarely allow anything other than basic web files – so you can’t use that unlimited storage to backup your computer, for instance.
Perhaps the most famous budget shared host is GoDaddy, with plans starting at $3 a month. There are also lots of free shared webhosts, but you really do get what you pay for.
Advantages:
  • Budget, and a great way to start out with your own custom domain.
  • Easy install options for popular blogging and forum web apps that mean you don’t need a lot of technical knowledge.
Disadvantages:
  • Incredibly slow.
  • Anything beyond a basic blog will get warnings from your host regarding CPU and memory overusage.
what is a web hosting company

Virtual Private Server & Dedicated Servers:

These are the top 2 levels of website hosting, and mean you get the whole server to yourself. The difference between Virtual Private Server (VPS) and Dedicated Server is that a Dedicated Server is a single, physical system which you essentially “rent” inside of a data center. A VPS is a single, virtual machine – similar to the way you can use Parallels to run a virtual machine inside of your OSX install. MakeUseOf is hosted on a dedicated server.
My personal recommendation for a VPS or Dedicated server is Media Temple. Their VPS starts from $50 a month, while dedicated servers start at $750 (yes, you did just read that right).
Advantages:
  • (Nearly) Unlimited domain hosting.
  • The fastest hosting available (just to illustrate, I recently moved my iPadBoardGames site from shared hosting to a VPS, and the page load time dropped from an appalling 10 seconds to under 2.5 seconds).
Disadvantages:
  • High level of technical knowledge required.
  • Expensive.
what is web hosting

Starting Out

If you’re serious about starting a blog, I really suggest you skip the free route and head straight to a shared hosting account. Yes, it may cost a little, but it will save you so many headaches down the line – and there is a psychological effect that if you’re actually paying for it, you’re going to put more effort in. When the time comes to upgrade – then you can easily migrate to more a more professional solution. The learning process is one hell of a ride, so what are you waiting for?