Showing posts with label Xamarin Android. Show all posts
Showing posts with label Xamarin Android. Show all posts

Sunday, August 24, 2014

Performance comparison between Xamarin.Android+C# vs Dalvik/ART+Java

I always wanted to come up a with comparison between Xamarin.Android VS Native Android.

Recently I got a chance to look into the github code by EgorBo and wanted to share the same.

1. Arithmetic test
alt text
2. Collections, generics, custom value types
alt text
3. Working with strings
alt text

Sunday, July 6, 2014

What is Xamarin? - Part II

Checkout Part I

Is Xamarin the best cross-platform development tool?

Xamarin enables the best of both worlds—providing the advantages of native UI, access to device features, and native performance coupled with the time-to-market advantages of code sharing and reuse.

Companies that build software using Xamarin achieve cost effective cross platform development and have the flexibility to handle native user experience.

Why C# is Awesome?
  • Setting up event handling is a breeze
  • The async and await keywords make asynchronous programming incredibly pleasant and code will be much more linear and much easier to understand
  • Use LINQ to query, filter and select data from in-memory arrays, or from databases such as SQLite
  • Statically typed so you avoid a pitfall of errors that afflict other languages
  • Conditional compilation
  • Intellisense, lambdas, etc. are all awesome
  • Json.NET offers simple conversions to and from JSON strings and .NET objects, with SerializeObject and DeserializeObject methods
  • Parsing XML is easy

How Xamarin.Android works?

Android has its own runtime environment called Dalvik, which is used to execute conventional java based Android applications. Android’s platform specific functionality is made accessible through Java APIs that are tied to the Dalvik environment.

Xamarin.Android applications use the Mono and Dalvik runtimes at the same time, allowing developers to take advantage of the full range of functionality offered by both environments. Mono itself operates on Android much as it would in any other computing environment—it uses standard Mono JIT compilation. Fully transparent interaction between Mono and Dalvik is made possible by leveraging standard Java Native Interface (JNI) calls. Android’s open platform model enables Xamarin to leverage the full power of Mono while providing deep interoperability with the platform’s native development stack. As a result, Xamarin applications run just like regular Java-based Android applications, but with full access to all of the functionality provided by Mono.

The Managed Callable Wrapper is the wrapper code that converts Mono generated code to Java Code. MCW is called when managed code in Mono runtime needs to invoke Android code in Dalvik VM. 
The Android Callable Wrapper is invoked when the Android runtime wants to call the Managed Code after an Android event.

Xamarin Developer Certifications

Xamarin skills are increasingly in demand – certifications let the market know you represent top talent


Sunday, June 29, 2014

Xamarin Android ZipAlign not found

Problem:
After installing, latest Android SDK Tools(Android L Developer Preview), Platform-tools, and Build-tools, you will not be able to run Xamarin Android projects.

Error MSB6004: The specified task executable location "C:\Users\admin\AppData\Local\Android\android-sdk\\tools\zipalign.exe" is invalid.

Fix:

The latest SDK release from Google moved some things around.

Work around for this issue is by copying zipalign from the build-tools\20.0.0 directory to the tools directory.

Tuesday, June 24, 2014

Portable Class Library(PCL) setup for Visual Studio

Below are the steps to make PCL work in Visual Studio.

*Make sure you install in same order

Steps to setup PCL for Visual Studio
  • Download and install PortableLibraryTools2 (It contains)
    • PCL 4.0 profiles: 104, 131, 14, 18, 19, 1, 23, 24, 2, 36, 37, 3, 41, 42, 46, 47, 4, 5, 6, 88, 95, 96
    • PCL 4.5 profiles: 7
    • PCL 4.0 and 4.5
    • MSBuild targets
  • Extract the PortableReferenceAssemblies.zip (from C:\Program Files (x86)\Microsoft .NET Portable Library Reference Assemblies 4.6\PortableReferenceAssemblies.zip) into the PCL reference assemblies directory C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable.

Note: If you have already installed Xamarin for Windows, we need to reinstall Xamarin.Android to get the SupportedFramework files.

Monday, June 23, 2014

What is Xamarin? - Part I

Xamarin is one of the best cross-platform development tool that allows us to create apps in C# for Android, iOS, Windows and Mac. Xamarin is best known as the company behind Mono.

Xamarin is the company sponsoring mono development and support. Commercial products based on mono are Xamarin.iOS(MonoTouch) and Xamarin.Android(MonoAndroid) for developing cross platform mobile applications.

"Xamarin was founded with a mission to delight developers with the world's best platform for mobile development" said Nat Friedman, Xamarin founder and CEO.

What is Mono?

Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.

Mono runs on multiple platforms - Linux, OS X, BSD, iPhone, Android, PlayStation 3, Wii, Xbox 360, and Microsoft Windows, including x86, x86-64, ARM, s390, PowerPC, SPARC, IA64, MIPS and much more

How did Xamarin got its name?

Just as mono means monkey in spanish,  Xamarin derives its name from a Spanish term for Tamarin species.

What is Xamarin ?

Xamarin enables developers to reach all major mobile platforms
  • Native User Interface
  • Native Performance
  • Shared Code Across Platforms
  • C# & .NET Framework


Why Xamarin?

- Xamarin provides full access to the Native platform APIs from C#.

- Xamarin compiler outputs native executable and packaged as iOS or Android app.  As a result the performance of the applications built by the Xamarin Mono is very high.
- Native compilation gives users brilliant app performance for even the most demanding scenarios, like high frame rate gaming and complex data visualizations.
- Write Everything in C#
- Over a Decade of Enterprise Production Use
- Xamarin offers 100% API coverage on iOS and Android
- Take advantage of everything great about C# and now write code that can be shared across all platforms
  • iOS
  • Android,
  • Mac
  • Windows (WPF, Store, Phone, ASP.NET, etc)

"With Xamarin, developers combine all of the productivity benefits of C#, Visual Studio 2013 and Windows Azure with the flexibility to quickly build for multiple device targets." said S. Somasegar, Corporate Vice President, Microsoft.

Xamarin History





Checkout Part II

Saturday, June 21, 2014

How do I preserve application data/cache on device/emulator between deployments?

Preserve application data/cache on device/emulator between deployments

Xamarin Studio Users:

Xamarin Studio -> Preferences -> Projects -> Android

Check/ Uncheck  - Preserve data/cache between application deploys

Visual Studio Users:
Tools -> Options -> Xamarin
Check/Uncheck - Preserve application data/cache on device between deploys

*If Xamarin option is not available then click on Show all settings check box in Options window