Tuesday, September 2, 2014

Mobizen - Perfect Android Device Mirroring

I have been searching for android device mirroring softwares and found a perfect one, Mobizen.

Once you install the Mobizen app on your phone and PC you have a perfect screen mirror of your Android device. It puts up a real device artwork.

It works on WiFi and with USB debugging.
You can use your device screen or mouse for control.
Use Ctrl+trackpad for pinch zoom.
You can drag and drop files from your PC onto your device.
You can record video, take snap shot and use marker during your presentation.

In short the best android device mirroring tool for presentation.

Setup:
1. Download Mobizen from The Google Play Store
2. Download(Windows/MAC) and install Mobizen PC to your desktop
3. Connect to your Android(through USB with )

Get start with Mobizen.

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 27, 2014

Device Art Generator

The device art generator enables you to quickly wrap app screenshots in real device artwork. 

This provides better visual context for your app screenshots on your website , PPT's or in other promotional materials.

For google device you can use below link for art generation.
http://developer.android.com/distribute/tools/promote/device-art.html

You can also add shadow and screen glare.

If you want to use the latest device frames from Apple, Google, Samsung, LG, Motorola, Sony, BlackBerry, Amazon, Nokia, etc, then you can try Appdemostore.

http://www.appdemostore.com/frameapp

Arun's book review - Xamarin Cross-platform Application by Jonathan Peppers

Last week I started to read an interesting book Xamarin Cross-platform Application by Jonathan Peppers.

Jonathan Peppers is a Xamarin MVP and the lead developer.

Jonathan Peppers primarily covered Android (Xamarin.Android) and iOS (Xamarin.iOS) development in this book.

Who should read this book?
If you are a C# or windows phone developer with a desire to develop iOS and Android application and become a cross platform developer.

Prerequisite:
  • You need a Mac computer (OS X 10.8)
  • C# knowledge
  • Of course motivation and desire to become a cross platform developer

What this book covers?
  • Environment setup for cross platform development
  • Basic concepts of each platform
  • Process to submit your app to stores
  • iOS and android development concepts
  • Code sharing technique and unit test
  • Xamarin component store and leverage native Java & Objective-C libraries
  • XamChat an instant messenger, using Azure Mobile Services for data storage and cross platform push notifications.

Few things I like most that have been covered in this book are design pattern (MVVM, DI and IoC) used for mobile applications development with example and different code sharing techniques with advantage and disadvantage.

What this book won’t provide?
Windows phone development
Details of iOS and Android development
Visual studio integration

In short this book gives a quick start for any one who wants to learn about Xamarin and become a Xamarin developer.

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 embed/bundle assemblies in native code?

Bundling the assemblies into native shared library, helps to keep your code safe.

Prerequisites:
1) Requires an Enterprise License.
2) Should install and map Android NDK to IDE.

Xamarin Studio Users:

Xamarin Studio -> Android Projects -> Project Options -> Android Build

Check/ Uncheck  - Embed assemblies in native code

Visual Studio Users:
Android Project -> Properties - > Android Options

Check/ Uncheck  - Bundle assemblies in native code

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