Herbert A. Simon (Nobel Prize - 1976) was interested in the role of knowledge in expertise. He was the first to say that becoming an expert required about 10 years of experience. He and his colleagues estimated that expertise was the result of learning roughly 50,000 chunks of information.
Malcolm Gladwell highlighted this rule in his book, Outliers: The Story of Success. He states that men and women who have spent more than 10,000 hours to learn something end up being out of the ordinary in this area. In the same vein, regarding software development, Scott Hanselman recommend to ‘'read lots of code and lots of books, pick a language that fits your brain and helps you learn how to think, and when you do think, think about abstractions.
How do you become an expert in architecting mobile applications? Understanding of UX interaction patterns is a key learning for sure. You could read books (and you should) but do not underestimate first hand experiences with real devices. I firmly believe that, of the 50,000 chunks of information to acquire, the most important are the actual experiences with mobile OS. Every year you should experiment with a new mobile OS.
I used to change phones every 6 months. From the initial launch of the iPhone in 2007, I moved to IOS and I have been an enthusiastic user for many years. In 2013, having learned everything I needed to know about IOS and in a need for a phablet, I moved to Android. Last year, I wrote about my experience with a 7-inch tablet Android as a phone.
Nine months ago, at the beginning of 2014, I have migrated to Windows Phone. My current phone is a Nokia Lumia 1320. I am extremely pleased with this 6 inches device and I love the Windows operating system. I agree with Scott Hanselman Windows Phone 8.1 is now definitely as good as Android or IOS.
I would have kept this phone for a while longer, but, unfortunately, I will changed for an iPhone 5 in the coming weeks. For the upcoming months, I will thoroughly test the Personal Task Manager that we develop with IOS8. Since we expect that the vast majority of our customers will use IOS8, I want to ensure that the user experience will be perfect. In addition, this will allow me to experiment and update myself with the latest functionalities of IOS8.
So do not be surprised if you see me these days with an old iPhone 5. One day, I will be back with a Windows Phone. In the meantime, my focus is the good of my product.
Sixteen months ago, I wrote on this blog that if a startup has to build a mobile application, the entrepreneurs should never go native. At the time, there were only three options for building a mobile application:
- Build three different native applications: Native apps are specific to a given mobile platform and are built using the development tools and language that the respective platform supports (e.g., Xcode and Objective-C with Apple iOS, Eclipse and Java with Google Android, Microsoft Visual Studio and C# with Windows Phone).
- Build an hybrid application: Hybrid apps make it possible to embed HTML5 apps inside a thin native container. Hybrid apps combine the best elements of HTML5 app but, unfortunately, they do not provide a native user experience.
Since last spring there is a new option:
- Build native applications with Xamarin.Forms: With a C# shared codebase, Xamarin.Forms is a cross-platform development tools that enable to easily create user interfaces that can be shared across Android, iOS, and Windows Phone. The user interfaces are rendered using the native controls of each the platform, allowing to retain the appropriate look and feel for each platform.
The option proposed by Xamarin seems very promising, especially since this company is not a newcomer. Xamarin was founded in 2009 by the instigators of the Mono project. Xamarin.Forms is the result of five years of work to build a cross-platform natively backed UI toolkit abstraction for mobile development. This is a serious player in the mobile arena. In fact, last week they held their annual conference in Atlanta. With over 1,200 registered developers, the event was not only sold out but also the largest cross-platform mobile development event.
Why all the interest about Xamarin? Probably because there is a growing awareness in the industry that when it's time to write a mobile app -- something interactive, not just a document with some hyperlinks, the Web is a second-class option. I was not surprised to read this week that Tim Bray lamented that the mobile apps are leaving Web work in the dust. The reality is quite simple, native rendering is important and the three major mobile platform vendors (Apple, Google and Microsoft) are embedding this feature in their proprietary operating system not in the open Web browser.
For those of you who follow this blog, you know that in recent months we have repositioned our startup and that we are currently building a personal task planner for smartphones. Following the above arguments for Xamarin, what development tools do you think we chose to build our mobile app? The very nature of a startup is that you have little money and need to be super fast on the market to validate your assumptions (and discover that you're wrong). On the other hand, because the apps are the natural structure for mobile experience, I think native rendering is mandatory. So there is only one logical choice. Do we think that everything will be perfect and really easy with Xamarin? No, but we are confident that in the next 12 months we will not regret our decision. Anyway, if Xamarin proves unsustainable and our product is a success, then we should have the resources to rewrite the application with another option.