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://developer.xamarin.com/samples/android/all/
·
http://www.genymotion.com/