Thursday 17 February 2011

Hello HTML 5

And so my journey starts, and it starts with a book.
“Building iPhone Apps with HTML, CSS, and JavaScript” it is exactly what I was looking for.

  1. I have a good knowledge and experience with HTML, CSS and JavaScript. So it looks like my learning curve will be very short (will have to learn some of the latest HTML 5 features and to polish my JavaScript, as I didn’t do any web project for the past four years).
  2. Although the book’s title talks about building an iPhone app, the same tools and technics applies for ANY mobile OS.
  3. No need to buy any product/license –just grab any text editor/IDE and hit the road.
  4. Can develop using my Windows PC. One of the annoying things with building an iPhone app is the fact you have to have a Mac. My wife owns a MacBook Pro, so worst case I can use her, but I would definitely prefer to work on my Windows PC, using my Visual Studio.

If I will try to summaries the book with my key points:

  1. Build a web app
  2. Give your web app the same look and feel as iPhone app, using HTML, CSS and JavaScript.
  3. Build a native package from the web app code using PhoneGap
  4. Send your application to the market. In case you had problems to approve your app, you still have a web app.

PhoneGap also have API that gives access to the device hardware, So if you want to write application that will make use of the device’s file system, Events, Contacts, Camera and so – it can be done with some limitations on some devices.
All sounds good, clear and simple.

My biggest problem at this point was the fact I didn’t have any idea of specific app to develop. As I cannot code without any clear target to achieve, I came up with a simple idea, I will develop a very simple math game. And so I started.

I was wondering how to manage a local Database using HTML, CSS and JavaScript. After some Googling I have learn about using local DB with HTML 5. Will answer most of my needs.
The next thing I did (following the book) was to install a web server (IIS) on my PC, so I will be able to browse and play with my web app from my iPhone, at my home wireless network.

Eventually didn't go very far with my development, as very quickly I felt a bit unsure about the whole thing.
I do know how to create nice user interface elements, using HTML, to mimic the iOS native controls, but it did not feel right. Too many lines of code and it does not feel like the ‘real’ thing. I felt I could not deliver the same 'native experience' with my app.
As I started to be a bit sceptic I have decided to stop my development and to go back to Google.

I was looking for some answers. What kind of web application people already made (not necessarily PhoneGap 'native' apps – but web apps in general) ? Just to get the impression of how powerful a web app could be.
What kind of games you can write using pure JavaScript ?

To answer my first question I have checked apple’s web app catalogue.
After checking some I could say that it was exactly what I thought. Some of the web applications are really nice and made with a lot of hard work, but still, for my view, nothing to compare to native apps.
As for the JavaScript games I have found few articles like this one. It was just like a self remind of what I didn't like with web development. I don't like all of this HTML inside JavaScript...
Some will say that JavaScript is very powerful and you can do amazing things with it. Even if I will agree, I don't think that it is easy.
The bottom line - I don't want to create a web app !
Few days ago, my good old friend Yossi sent me this link. I was very happy to read and to know, I am not alone.

To be fair I would say that I really think that PhoneGap is a very impressive tool and can easily see how it can be use for some scenarios, but I don't see how it will help me with having fun, coding on my free time.

OK - So bye bye HTML 5, and goodbye PhoneGap - so what's now :(  ?
Some Googling, and...
Should I try "Appcelerator" ?

- to be continue...

Monday 14 February 2011

Few words about Nokia

I find it a bit funny, day after I have published my first post, saying:
“About two years ago I said goodbye to my old good Nokia’s set of phones who served me well since 1996…” and
“It is true that now with windows mobile 7 I could have find my ‘natural place’, but I don’t feel like developing to it, yet.”

If I would like to give my opinion, I would say that the paragraph below, taken from arstechnica describes it best from my view:

"Whether this deal can save Nokia is a question that's difficult to answer, but it's clear that the company's ambitions have diminished. Adopting Microsoft's platform puts Nokia in the unenviable position of being dependent on Microsoft and the success of Microsoft's fledgling mobile platform."

And back to my ‘new mobile developer’ point of view, the good news,
One OS less to support ! J
Goodbye Symbian.

Thursday 10 February 2011

“Hello World”

About two years ago I said goodbye to my old good Nokia’s set of phones who served me well since 1996, and bought a new HTC G1, “The first Android device”, the “Dinosauroid”.
The G1 was my first smart phone.

As a developer I was fascinated with this ‘new world’ of applications. Small, simple and focus to serve a specific task/target. The games were simple too and went back to the “roots”; remind me my good old Commodore 64 days. A game doesn’t have to have an amazing and sophisticated 3D graphic world, they can be very small, simple – and fun!

From a developer point of view, it is a real opportunity, like going back about 20 years ago, where a single developer have the ability to create a successful and popular app/game.
Arguably the web flash games did the same (for games), but for my opinion there are two major differences:
1. for a gamer, in most cases smart phones will deliver much better gaming experience compare to a game runs on a PC browser. Some will even say that mobile phones will kill the handle console devices – if not changing them dramatically (like the coming Sony’s PSP phone).
2. Without the concept of a market place, It is harder to be found and of course harder to make money out of it.

From the very first days with my G1, I played around with the idea of develop a mobile app. So far did nothing. First I didn't have a specific idea that would make me want to start. Second, as a full time father and a BizTalk/middleware developer, who lives in Microsoft world, I didn’t want to ‘spend’ my precious free time  with learning Dalvik Java or Objective C or any C/C++ graphics.

It is true that now with windows mobile 7 I could have find my ‘natural place’, but I don’t feel like developing to it, yet.
First, it is just started. There are not enough devices/users/code samples/best practices/engines/etc’ yet (some other may say that it is a good opportunity as there are not a lot of apps too) . Second, although I know .Net, I am a middleware developer and not very familiar with WPF and Silverlight , so given the fact I would have to learn, I am not sure if I want to learn Silverlight. Third and the main one, Personally I prefer not to develop games/apps that will run on a single mobile OS (true for all of them).

Today, mobile devices development becomes easier, thanks to all the rapid development frameworks and open libraries available. I thought that if it is really easy and fun - I may give it a try.
During the last few weeks I have been looking into few of them – played, learn and 'felt' them.
Wanted to check how really easy it is, and to understand the disadvantages of each platform/method.
The journey was very interesting and I think I have found my way (and while looking for a platform I have found an idea for a game as well).

As I am sure I am not going to be the last developer that walked/walking/will walk on this same path, I thought it would be better to share my experience (and have a nice thing to do on my daily train commuting :) ).

Enjoy my new Blog,
Roni.