NOTE:

NOTE: Of late, I have been getting requests for very trivial problems that many of you are facing in your day-to-day work. This blog is not to solve your "project" problems - surely not a "Support" site.
I just love to share my knowledge in my spare time and would appreciate any questions or feedback on the articles and code I have shared. I also do appreciate thought-provoking questions that would lead me to write more articles and share.
But please do not put your day-to-day trivial problems here. Even if you do, you most probably would not get a response here.
Thanks

Search This Blog

x

Monday 30 September 2013

Exploring the Samsung Mobile SDK

  
 As I worked with the Samsung Chord SDK, I came to realise that the Samsung Mobile SDK is an ecosystem in itself for an Android App Developer, with many new add-ons in the true spirit of extending the features of Android SDK in a powerful way.

One such package that is part of the Samsung Mobile SDK is the Pen package. In fact, Samsung has thrown open a new Samsung SmartApp Challenge currently targeting the new devices released by Samsung recently.

 The Challenge (Android Contest) is open from September 5th to November 30th with the judgement being pronounced in late February 2014. More details are available on the Samsung Developers site.(developer.samsung.com)

It is targeting the usage of Pen package and Look package of the Samsung Mobile SDK on the Samsung Galaxy Note 3 and their tablet Galaxy Note 10.1 (2014 Edition) both of which have been just released!! Wow, this seems like a smart move J Getting the strong Android Developer Community to rally around for the Challenge with their flagship SDK.

The new devices themselves have a lot to offer over the predecessors. It would be essential to understand what is provided as pre-packaged features in these phones before we can understand what the Pen package and Look package have to offer for Android Developers.  

In this post let us see what these devices have to offer with the said packages before I talk about the packages themselves.

The features offered by the usage of S Pen in Note 3 seems to be significantly more and hence gives more options for an app developer. And as I see and hear more about the Note 3, it certainly seems to be a class-leading tablet going to take the mobile market by storm.
 One of the important new features on the Note 3 using S Pen is the “Air Command” feature. If you just hover over the screen and press the screen once with the S Pen (pressing the S Pen button), the Air Command window pops up. And from the Air command window – you have access to the following features:

  1. Action Memo
  2. Scrapbook
  3. Screen Write
  4. S Finder
  5. Pen Window
The Air Command window looks like this:


Action Memo lets you handwrite a note. It just does not stop there, though!!  This is nothing new, you may say. Even in the 90s there were devices that capture notes written with a stylus! 

But this goes a step beyond and builds intelligence out of what you have written. For e.g. if you jot down a phone number, you can easily save it to you contacts without keying it in again!  If you jot down a valid address, it lets you navigate to Google maps directly to that address! How cool can it get?!! You can do many things like, call a phone number directly from the scribbled number, email to a scribbled email id, send instant text messages, add to a task list etc.

Scrapbook lets you circle content and not just grab a screen shot but actually fetch the content and save it automatically for easy browsing later. This includes even grabbing YouTube content!!

Screen Write captures a screen image and allows you to write comments on an image.

S Finder is the phone’s search engine providing a system-wide search.  It really is very handy in searching the content on the entire phone including chat messages, scrapbook etc.

Pen Window seems to be THE feature that is starting off a new trend in working with multiple windows of varying sizes and allowing for easy interaction between them. It gives your access to eight apps by drawing a box of any size on the screen! It may open up for more apps soon – a window of opportunity there.

The same is available on the Note 10.1 (2014 Edition) tablet as well with a few additional features.

The Look package grows on the basics provided by the Pen Package.  The Look package provides specialized widgets in the Android View System.
In my next few posts, I would look at what these powerful SDKs have to offer.

This article is sponsored by Samsung

Monday 23 September 2013

The Case of Xamarin – For Cross-Platform Mobile development

The Case of Xamarin – For cross-platform Mobile development

As an enterprise mobile developer, at some point, you would be faced with the decision to choose a cross platform development tool. Remain native and manage its challenges (which are elaborated a bit later) or go hybrid with tools like PhoneGap (Based on open-source Apache Cordova) or go with HTML5 and its related libraries?

As you might have guessed, there is certainly no right or wrong answer. The answer depends on what is the problem you are facing or trying to solve when you started looking at a cross-platform development tool.

Most-often, HTML5 based development or hybrid development tools seem to be advocated as the panacea for all problems faced by native development. So, what are the typical problems that continue to haunt if we were to take the native development route for Enterprise Apps? I specifically say “Enterprise” apps and not gaming apps (since gaming apps most often need not have custom UI per platform)

The problems could be of:
·      Managing a large number of code bases – for Android, iOS, Windows, for smartphones, tablets, mini tablets, TVs, including some variations if you are targeting different countries.
·      Adding new features to the many code bases that exist
·      Fixing bugs in each and every code base
·      Testing all the code bases for each feature enhancement or bug fix
·      Ensuring features are in parity in the large number of code bases
·      Giving a standard experience on each of them
In short, the problems are all related to the growing number of code bases each time we target a new device form-factor or platform or country.

HTML5 or hybrid apps could bring down the number of code bases. Infact, they have matured over the years to be able to give most of the features that native apps support.  They are positioned as “write-once-run-anywhere” solutions.

However, one fundamental question you have to ask yourself is whether you are looking for an app with the exact same User-Interface (UI) on Android, iOS, Windows etc.? If you are looking for platform-specific UI paradigms, you will have to do a lot of branching in the code – which very soon can become a nightmare. Your entire view layer code would be filled with branches on platform specific UI!! That certainly was not the intention when you chose a cross-platform tool!!

This may not be too different for the hybrid route too. You also have to deal with the lowest common denominator of the UI features supported by the cross platform tools.  So, if you intend to give native UI feel and features without being stuck with the least common denominator of features for your app and without having to do platform specific coding through “if…else” branches in your code, you must take a look at Xamarin.

Xamarin is the cross-platform tool that has addressed this very problem in a very elegant way!! It makes an assumption or advocates that you develop all the backend pieces of common, non-UI code in a separate layer and you write your platform specific UI in a separate layer.  Considering such a design, Xamarin  gives a complete set of platform specific features to you through the platform specific SDKs. You have the Xamarin.Android and Xamarin.iOS, which give you a 100% support to every feature on their specific platforms. But you also have Xamarin itself with out platform dependencies that can be used to build all the non-UI logic and reuse it across platforms – giving you the advantages of cross platform development but also giving you’re the advantage of native development of UI !! Howzat?!! And since this is developed using C#, you are almost ready to deploy the same code with UI development specific to Windows on Windows mobile as well!! 

Based on my experience in mobile app development, typically about 60% to 705 of the code is non-UI in enterprise apps and that is what lends itself to reuse.

Sure, it is now giving a “write-once-run-anywhere” assurance. It requires you to develop UI specific to platforms. Infact, what can be touted as its biggest limitation – having to develop UI separately for each platform is what I term as THE biggest advantage in enterprise apps that want platform-specific UI but cross-platform development!

Sure, any solution is suitable only considering the problem you are trying to solve. So, take an informed decision J

Check it out at Xamarin.com.


Thursday 5 September 2013

Android's Growing Fragmentation - An Insight

Last year in June, I posted this article talking about the huge levels of fragmentation in the Android world. However, that seems to have been just the beginning...

The number of devices were around 3997. Any guesses on how many this year? a whopping 11,868 as per the report by OpenSignal.

What was seen as a growing bane for developers has also turned out to be an advantage. OpenSignal summarizes the growing advantage aptly:

              "Despite the problems, fragmentation also has a great number of benefits – for both developers and users. The availability of cheap Android phones (rarely running the most recent version) means that they have a much greater global reach than iOS, so app developers have a wider audience to build for. It may be tricky to do, but the potential reward definitely makes it worthwhile. For consumers, extreme fragmentation means that they can get exactly the phone they want – big or small, cheap or expensive, with any number of different feature combinations."

Out of 682,000 devices that were surveyed, Samsung had a share of 47.5% making it clear as to who is in the lead. There are many unheard of devices probably in the local markets of the various countries. And not surprisingly, there are still 8 versions of android in active use. We know many of th
e lower end phones are available in older versions without any upgrade path to the latest versions. 

Why, lower end phones? Even Samsung Galaxy S does not allow for an upgrade to ICS or Jellybean!!  Interestingly, a mere 37.9% are on Jelly Bean. So, the "upgrade to the latest version" mania is not for the Android market, it looks like. :)

Some graphics form the report convey a lot about the level of fragmentation and the market share. The device fragmentation is shown here:

It is far more fragmented earlier and we should watch and see where this goes and surely lead to some consolidation !! 

The brand fragmentation is another insightful graphic:

All this makes the market an exciting place to be in - for all types of developers, testers and buyers of mobile phones as well. There is so much choice and smartphones are now in the reach of a larger customer base - it is no more 'exclusive' stuff for a smaller percentage of a privileged few!! 

While, all this is happening in the Android world, the latest version of Android being named "Kitkat" makes me wonder if Android is going to "Take a Break" and pave the way for Microsoft and Nokia?!!