Xamarin is an open source project that was originally developed by the Mono project on the Linux program, which was originally developed by the C# project. Later published in support of Mono iOS Touch framework and For Android Framework Mono. So it's not a new product on the market. 2011, originally in the Mono Novell project team to set up an independent company, officially changed the name to Xamarin.
Xamarin is a mobile app development platform, provides a cross platform development, developers through xamarin development tools and programming languages, will be the development of the IOS, Android and windows platform native (native) app, does not need to be individually using the platform the development of industry and trade with and programming languages, not just "write-once, run everywhere" cross platform solution, it can achieve the "write your code once, and present native UIs on each platform." cross platform development ability. Because Xamarin can directly produce the native App application of each platform, compared to other cross platform program, by App developed by Xamarin application, more can play the function and characteristics of each action platform, and has the best performance.
Xamarin is a small cross platform mobile development tool to provide native solutions on the market, native applications should include the following features:
Using the standard user interface and in line with the design guidelines for each mobile platform. Collocation device hardware to provide optimized performance. Be able to complete the function of the hardware of the device.
Xamarin will be native (Native) IOS and API Android conversion to C# function library for users to use, developers can use C# to write programs, and call the native platform (IOS, Android) API, and through good design, you can share part of the program code in different platforms. Developers can compile the program through the Xamarin, the program will be compiled directly to the implementation of ARM files, and the package of the various platforms. Compiler package is completed by the App as a result of no intermediate translation, directly compiled into the native binary implementation file, and therefore has a good operating efficiency.
Xamarin development platform mainly consists of the following 4 parts:
Development programming language:Xamarin to C# as a development program language, developers can write directly to the development of C#. Integrated development tools:Xamarin provide integrated development tools (IDE) xamarin studio, developers can directly in the tool of development, debugging, testing and simulation and other operations. Xamarin is also targeted at the Visual Studio Microsoft to provide attached hanging Kit (Plug-In). Cross platform development framework:(Mono.Net Framework) Xamarin development framework, support implementation of cross platform (cross-platform implementation). Compiler:Xamarin with the various platforms of the compiler, can be directly compiled into the iOS and Android platform machine code.
Rapid establishment of native (Native) mobile device applications:
Through C# affinity and fully functional language features, collocation Framework Base Class Library.NET (BCL) convenience, so that developers can develop mobile device applications with the highest productivity. Currently Mono supports C# 5 language specification, developers can use Expression Lambda, LINQ or even Async/Await asynchronous processing.
Program code sharing:
The current Objective-C application developed by the iOS and the Android application developed by Java, can not achieve the program code sharing. Xamarin is the use of C# writing, so through good design can be business logic, data access and sharing between different platforms, to write. In addition to save the time cost of re writing, for the maintenance and consistency of the version also has a considerable help.
Integration with Studio Visual:
Xamarin provides Studio 2010/2012 plug-in Visual, so that the original familiar with the Studio Visual developers do not have to be familiar with other development tools. In the establishment of the project, you can directly establish iOS and Android project template. Development teams can also be the IOS and Android program code into the ALM, using Team Foundation Server version and the establishment of the management.
Ensure the first time update:
Xamarin for iOS and Android version update spare no effort, in the SDK iOS 5, 6 to 6.1, and Apple on the same day published the corresponding Framework version. 7 will also be published on the same day. And Android and xamarin even the Android source code, from the original Java replaced by C# re written, and efficiency has been greatly improved.
Native application efficiency:
Xamarin for iOS and Android platform development compiler. C# program code directly compiled into the CPU ARM machine code. So the effectiveness will be compared with the native mode development application, there is no difference. And on the Android system, because the Xamarin does not use the Dalvik Android virtual machine, instead of using CLR, the test of its effectiveness even more than the native applications.
The following table is a comparison of the methods for developing App applications on mobile platforms:
|Web Mobile||Hybrid||App Interpreted||Compiling Cross||App Native|
|Representative products||Mobile HTML5/JQuery||PhoneGap||Titanium||Xamarin||Objective-C/Java|
|Cross platform capability||strong||strong||in||in||low|
|Integration and function||weak||Yes||in||high||strong|
In the development method of the table, the operation of cross platform for Web Mobile, Hybrid, App Interpreted and Compiling Cross and other 4 kinds, Xamarin is the use of Compiling Cross method.
Web Mobile method:
As a pure browser solution, can not effectively play the functions and characteristics of the various mobile devices and platforms, non real mobile App application development.
Is not the use of native user interface, reduce the user experience, Hybrid method using multiple platform minimum shared control (Common Denominator Lowest). Security concerns: due to the Hybrid approach is based on the front-end technology, so in the past will be vulnerable to attack, after the conversion platform to app, still exist. Hybrid method is not able to manage memory and related system resources. Engine browser of each device to HTML5 and CSS3 level of support is different, the application process to adjust to meet the majority of the mainstream platform will have hidden risks and costs.
Xamarin development of App application methods outlined as follows: developers in a single development environment that can manage, write programs and test the App application platform for applications, you can integrate all platforms in the same program projects, including iOS, Android, Phone Windows and Windows 8 App Store.
Xamarin support MVC design pattern, developers can design which is associated with the user interface part, and the platform independent business logic, service access, data access and data layer from the interface pumping out. Accordingly based on application divided into two parts, respectively, for the core and user interface, effectively achieve the code sharing, let design architecture is much more rigorous.
According to the project integration development and code sharing, as shown in the left half of the figure, the developers can will pull out sharing independent code into a project (shared code), and only by the addition of common components (such as the base class library), if there is a part of program code to use and platform specific component or technology, adding conditional compilation directives in the code, for the platform to be used directly, do not need to modify.
In each platform project, developers can use the Linker Project, the file link, to link the shared program code to the platform. In the development platform project, as long as the user interface and the operation of the control to write programs can be. For the business logic or data access part, you can share in the platform, which is the use of native development mode (Objective-C, Java) can not be achieved. After the completion of the development, you can compile the Xamarin compiler. Xamarin provides compiler for different platforms. In the iOS platform, Xamarin use AOT compiler, in the Android platform, the use of JIT compiler, the C# program code directly compiled into CPU ARM machine code, to get the best performance.
Q: how to install Xamarin?
A: please checkHttp://thinkpower.info/xamarin/cn/Article_01.aspx? Idx=01#xamarin_top?
Q: if the network environment can not be activated by the impact of how to do?
A:1, the computer can be changed to the Internet environment, online activation.
2, please follow the platform (Xamarin.iOS, Xamarin.Android) the way to download offline authorization documents offline activation.
Q: how to combine the graphics platform tools, such as: ArcGIS, in the application and compatibility of the map, the app store apple shelves are 100 percent success?
A: any system that provides native API (iOS, Android) in Xamarin can be integrated through the binding, please refer to the following link:
A Java Library [Binding (.Jar)]Http://docs.xamarin.com/guides/android/advanced_topics/java_integration_overview/binding_a_java_library_ (.Jar)
Objective-C] http://docs.xamarin.com/guides/ios/advanced_topics/binding_objective-c [Binding
Shelves success or not depends on whether the app store Apple review guideline https://developer.apple.com/appstore/guidelines.html (such as the following link), not because of the use of Xamarin development and have an impact.
Q: upgrade issues, under what conditions need to be upgraded, such as IOS update to 7, 8, a version of the upgrade? Or your company's upgrade edition, if it is the latter, not to upgrade. Ios7, 8 also can be developed, just missing some of the new features?
A: upgrade is to xamarin version, rather than IOS or Android version. When the user subscriptions expire and not renew, a user can use the final version of the development. Supported platforms with xamarin version at the time. For example user contract at maturity by the end of August this year, and did not renew their contracts, IOS 7 launched in mid September, the user cannot for IOS 7 development.
Q: is currently using eclipse to write app Android, for iOS also need to learn object-C, Xamarin is really a lot of convenience, Xamarin can make mobile phone wireless debug?
A: please refer to:
[iOS]:Http://docs.xamarin.com/guides/ios/deployment, _testing, _and_metrics/debugging_in_xamarin_ios
[Android]:Http://docs.xamarin.com/guides/android/deployment, _testing, _and_metrics/set_up_for_device_development
Q: how can I get the Xamarin experience?
A:1. to participate in Xamarin public training courses.
30 download the full version of the test for 2 days:Http://xamarin.com/downloadNote]Compile compiled files after the use of 24 hours to re compile.
Q: what is the function of the Xamarin can not be done?
A: please refer to: http://docs.xamarin.com/guides/ios/advanced_topics/limitations
Q: what are the successful cases?
A: please refer to: http://xamarin.com/apps
Q: other instructions?
Jar with eclipse development of the A:1. file must be to give the use of Android, before it can be carried out in binding. Xamarin
2 collocation's Studio Visual must be a paid version of 2010/2012/2013 (Professional, Premium, Ultimate).