Friday, August 22, 2014

Android app development start up with Xamarin + C#



When I get to know the about Xamarin , following questions are popping up in my mind. I believe, right now in your mind, same questions are floating in gray cell area. Let’s try to have a brief over view.

Why?
Android app development industry is booming now. That means the market requirement is getting very high. When a development industry grows, it needs more developer. To fill the gap experienced developer need to shift their technical domain. It’s a very challenging situation when a set of developer need to develop a new skill quick and do it efficiently. After working years with a development environment and language, it takes some time span to do the shift. As an example, when a c# developer need to shift from c# and visual studio to Eclipse and java for android development , it is definitely not a smooth transition for them and also require some time. Xamarin is basically is the answer to it.

How it is helpful?
Xamarin provides a development environment which is just same as c# development environment for android app development. Not only android but also iPhone, and windows app can be developed using Xamarin. And the best thing is reusable code. The same code can be used in iPhone, android, windows phone, as we are using Xamarin.
Basically normal c# code is running on its own Mono (.net) framework on the top of android os and talking with hardware. Mono framework officially release in 2004 for linux. Mono is nothing but .net for the environment other than windows.
Java libraries or existing code also can be imported using c# binding. It is really awesome to have this feature. We can use any existing java library created for Android native environment.  Java code will be wrapped by c# code to use in c# Xamarin development. To build android app, we may need access to java widget and sdk. We can expose those using bindings. It will expose any java class or library as per needed. We can use these classes in c# code just as in c# itself. Awesome. J

How it works?
It acts like almost desktop app development for c#.  The compiler is producing IL (Intermediate Language), then package that IL in apk. The apk is running on top of .net mono framework which runs over Andrid os. There is no java involvement in deployment. It runs over Mono and Delvik runtime, which runs parallel in android os. Other things like- view, resources, manifest are maintained as in android native development. These are the simple self explanatory xml files. I will not talk about android development here. Please refer to android development tutorial blogs- http://www.xoriant.com/blog/?s=android+basics

Ok, enough. Now give it a try.

Setting up development environment
Download latest Xamarin from http://xamarin.com and install it.  After you finish, you will get free GUI xamarin studio and visual studio integrated development environment. You can use any of them. Xamarin studio is free, almost feels like visual studio and has intellisense also. If you have visual studio licence, you can use visual studio flawlessly. To run & test the app in simulator you need to use ADT. You can create a virtual device using Android virtual device manager. But it is slower than you can imagine. You can also use third parties, like- Genymotion (faster, but not freeL )

 
Let’s create a project using following instruction-

Open Xamarin studio.


Fellow these steps: File -> New -> Solution
Select Android Application as shown bellow. Provide suitable name to the project and path to save.


 





After saving project, you will get a first view of code, which is basically associated with the views

in xml in “resource/layout” folder. It (MainActivity.cs) is inherited from activity which acts like view controller, just as in android. 
Now as you can see, the code is pretty simple. It is basically associating a click event to a button on view creation time, and printing the number of clicks on the button itself. Run the above code by clicking Run (>) button to see the actual effect on simulator. 

The stage is set for you to play around.  

So you are ready to go further. Create your own native apps using Xamarin.

Further study & ref: 
·         http://api.xamarin.com/
·         http://developer.xamarin.com/samples/android/all/
·         http://www.genymotion.com/

No comments: