Mario Cardinal

"The real voyage of discovery consists, not in seeking new landscapes, but in having new eyes" – Marcel Proust


1 Comment

We are building our mobile app with Xamarin.Forms

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 HTML5 application: HTML5 apps use standard web technologies—typically HTML5, JavaScript and CSS. This write-once-run-anywhere approach to mobile development creates cross-platform web page that work on multiple devices by mimicking the native user control behaviors.
  • 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.

xamarinThe 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.


1 Comment

My new phone is a 7-inch tablet

I’ve always been uncomfortable with the small size of my smartphone screen . So when the first 7-inch tablets size appeared, I considered merging my phone with a tablet to carry only one device with me. 

asus-fonepad1I am a big fan of the Phablets form factor and a 7-inch phone is a device with which I can live. After a long thinking , I finally decided to proceed with a change. This summer, I exchanged my iPhone 4 for an Asus Fonepad tablet. Here is a summary of my experience during this transition.

My needs were simple. I need to run the same applications (or equivalent) than what I used on my iphone 4. Here is a list of those applications sorted by priority:

  • Email that work with Exchange
  • Feed reader that work with feedly (i now use gReader)
  • Mobile reader for the Montreal newspaper “La Presse”
  • Mobile player for french canadian TV (Tou.tv)
  • Voice recorder (i now use smart voice recorder)
  • Google Maps
  • TuneIn Radio
  • Podcast player (i now use gReader)
  • Book reader (I now use Google Play to read epub and PDF)
  • Rdio player
  • Safari To Go
  • Pluralsight
  • Hootsuite
  • Twitter
  • OneNote
  • Lync2013

It was mandatory to obtain a tablet with 3G data. For the phone feature, I was ready to try Voice-Over-IP (VOIP) services such as Skype or Line2. Obviously, since I had an ipone 4, I evaluated the purchase of the iPad mini but when I saw the price (around $550), I decided it was too expensive. After evaluating all my options, I decided to opt for the Google tablet as I feel the price was fair (around $300).

So in June, I bought a Google Nexus 7 tablet with 3G data. As I live in Canada and I need a phone number in the 514 area, I subscribe to the Line2 service and start testing VOIP. During my tests, I discovered that the services provided by Line2 was correct even if the reach of 3G data is not equivalent as the reach of mobile phone. For example, I could hardly received phone calls when I was in the basement of my house. Those were constraints that I could live with.

Unfortunately, because of the design of the tablet, there was a problem that I could not tolerate. Since the speaker and the microphone were side by side, the microphone recorded the sound of the speaker which created a very unpleasant echo for the caller. All the people who were calling me experienced the echo and all were uncomfortable. Despite the fact that I enjoyed a lot my experience with Google Nexus 7, I had to consider another option. So, I canceled my subscription with Line2 and I sold my Nexus 7.

By doing some research over the web, I discovered that ASUS is offering an almost identical clone of the Nexus 7 that include a mobile phone.  This tablet is the ASUS Fonepad and bought it for 270 dollars through a reseller who import them from Japan. I now have the best of both worlds, a real mobile phone and a 7-inch tablet . It’s been almost 2 months since I used this new tablet and I could not be more happier.

sac-a-main

From now on, I plan to use only phablets and I’ll probably change my device every year. In this regard, the new 6-inch ASUS Fonepad Note seems like a promising device.

asus_fonepad_note_610x443


2 Comments

Why Slingboards will be an hybrid app?

In this post, I explain why at Slingboards Lab (my new venture), we have decided to build an hybrid mobile app instead of a native or HTML5 app.

I said in the past and I will say it again: the tablet is a completely different platform than the PC and in this sense it has its own natural structure for UX experiences.

Each space has a natural structure, which is an organizing principle that helps people form a mental model of how they think about and navigate that space. Rooms are the structure of homes, neighborhoods and streets are fixed structure of cities, aisles are the structure for most stores, and Web pages are the structure for Web sites.

The natural structure for the PC experience was the desktop and accompanying folder/ file system. Influenced by notions of containment and place, this structure allowed people to traverse their personal file systems with ease. Within the PC platform, applications are often relegated to the role of a secondary actor. Files are the stars of the desktop experience, whereas applications are merely the tools that make files.

In contrast, within the tablet platform, applications are the star, making them a natural structure for mobile experiences. In fact, we can summarize the tablet experience as a list of “native” apps. Disappointing by its simplicity, this minimalist approach has proven effective. Tablet application marketplaces also reinforce the app as the natural structure for mobile experiences. A tablet platform’s value and popularity are largely attributed to the depth and breadth of its App Store portfolio.apps-ipad

Nowadays, the main challenge for organizations is to develop mobile applications. However, we no longer control the mobile platform in use. Tablets are provided by individuals according to their personal preferences. Some will bring Apple IOS devices such as the iPad while other will arrive with Microsoft windows 8 tablets or with Google Androids tablets such as the Amazon Fire. This diversification of mobile devices would not be a handicap if there was a single programming model to build native apps. Unfortunately, this is not the case. 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).

If developers want to avoid writing three different mobile applications, an alternative is to rely on the open web and create HTML5 apps. HTML5 apps use standard web technologies—typically HTML5, JavaScript and CSS. This write-once-run-anywhere approach to mobile development creates cross-platform web page that work on multiple devices. While developers can create sophisticated apps with HTML5 and JavaScript alone, the vital limitations remain that this application is not visible as a native applications. The user must first start the browser application and navigate to a web pages to reach the application.

A third alternative is to create an hybrid apps. Hybrid apps make it possible to embed HTML5 apps inside a thin native container. Hybrid apps combine the best elements of native and HTML5 apps. With  the  rise  of  mobile  platforms, “native”  has  come  to  mean  an  experience  more  than  the  underlying language and runtime circumstances. That is, the new reality is that you don’t have to  write  an  application  in  Objective-C, Java or C# in order to have a native app.  With the appropriate container and a mix of CSS plus media query, the same Javascript application can target all the most important mobile platforms (Apple IOS, Google Android, Microsoft Windows 8).

So, if you are a young startup like Slingboards-Lab, should you go native, HTML5 or hybrid? Faced with this fundamental issue, I must acquiesce with Stephen Forte: A startup should never, ever, go native. 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 opting for an HTML5 app is a mistake. So there is only one logical choice; the hybrid app.

This thinking explains why we have chosen to build Slingboards as an hybrid app. We are working hard and soon we will be able to share with you the results of our discovery. Stay tune.