Last week’s distance learning experiment was a success! We had a few technical glitches… I forgot to hit the “record” button at the beginning and after the break and didn’t set the meeting time to last the whole session, so I’ll be repeating the class today at 4pm PST. The Blazing Cloud blog has more details on this Ruby on Rails class webinar.

I’m very excited about this format. Every time I offer this class, one or two people ask if they can attend remotely. And every time I feel like it is just too hard to get it all together. However, this time I decided to try this as an experimented and Anita Kuno suggested that we use InstantPresenter which seems to be working quite well. I am excited that we had remote participants from as far away as Cambodia and have felt honored by the warm response to the first class.

Tomorrow night we’re planning an experiment in distance learning. If it works out, we’ll offer our evening Blazing Cloud classes with a (for pay) online option, but for starters we thought we would try out the tech. If you want to join us at 6:30pm for an introduction to Ruby on Rails, please join this google group.

The audience is people who already know how to program, but don’t know Rails. If you want to join us, you should install Ruby and Rails before you arrive.

  • If you are on Mac or Linux, I recommend rvm for installing Ruby and Ruby Gems, use either 1.9.2 or 1.8.7 and then
    • gem install rails
    • install git — you can use instructions linked from here
  • If you are on Windows, I recommend the shiny new Rails Installer from the fine folks at Engine Yard

Also, please create an account on Heroku, since we will host our apps there

In the past few years there has been significant changes in mobile development. More than half of the world population now has a mobile phone — more people than have access to personal computers. Mobile phones have compute power that exceeds that of personal computers when I started programming and smartphones are gaining adoption fast.

My work has focused on application development on mobile phones and on the web. I’ve seen an interesting trend in mobile development that is explored in my new book: Pro Smartphone Cross-Platform Development: iPhone, Blackberry, Windows Mobile and Android Development and Distribution. If the title seems a bit long and complicated, it speaks to how mobile development today is a bit longer and more complicated than it should be given what we are able to produce. Every platform has its own APIs and often requires that you code in a specific language as well. The book addresses an alternate path which borrows patterns from the web and allows for rapid application development.

The cross-platform methodology explored in the book is where the UI of your application is in HTML with your business logic in Javascript, Ruby or native code. The focus is on native applications, which have access to local storage, camera, contacts, geolocation, etc. The book is written in three parts:

  1. Platform Development and Distribution covers how to write using the native language, tools and framework. It includes a “hello world” application with simple UI and how to embed a web browser component in your application. It also includes how to distribute an application, what you need to get into the platform marketplace or app store and whether there are other options, like “over the air” distribution.
  2. Cross-Platform Native Frameworks covers Rhodes, PhoneGap and Titanium Mobile. Originally we were just going to cover Rhodes and PhoneGap, which both use HTML UI with Ruby and Javascript respectively (although Rhodes lets you access native components). Titanium Mobile was a late addition and uses Javascript to include native components and supports just two platforms (iPhone and Android).
  3. HTML Interfaces covers how to sue HTML to make your application UI look and feel native on WebKit browsers. It also includes a chapter on how to craft HTML for BlackBerry if you need to support the older BlackBerry browsers — that chapter alone is worth the price of the book if you need it. There is also a nice appendix on core CSS concepts that you’ll need if you are new to app development in HTML.

It is a survey book, designed for people new to mobile development or who only know one platform and are seeking to understand how to tackle multiple platforms economically. The content has been criticized as something you could “google for;” however, I found that to really understand what it takes to develop and release a mobile application on each platform, you need to build one. This book gives you a good grounding in your options and collects all of the information in one place that you would need to make a decision about pursuing cross-platform development on your own or using one of the popular frameworks. The goal is to give you enough information so that you can productively dive into the right starting point for you.

This book won’t tell you everything. It’s not for folks who want to develop a game or expect to focus on a single platform. It’s for people who need to make quick decisions about how to move into mobile and to get a preview of the challenges they will face. It doesn’t endorse specific technologies, but lays out the trade-offs. This is the book I wish I could have read when I started mobile application development.