Xamarin Interview Questions and Answers
Founded in the year 2011 in the month of May, Xamarin is a cross-platform development company owned by Microsoft. It is a San Francisco based company that has created Mono, Xamarin.android and Xamarin.iOS in recent years. Xamarin has cross platforms that implement Common Language Infrastructure as well as Common Language Specifications. Codes can be shared on multiple platforms such as Windows and many more. With its growing popularity, there has been an increase in the level of Xamarin Interview questions. Xamarin has a C# shared codebase which makes it easier for the developers to write native Windows, Android and iOS applications with shared codes and native user-interfaces.
Advantages of Xamarin
- They can deliver native iOS, Windows, and Android apps using existing skills, teams, and code(C# XAML).
- With Xamarin technology one can take full advantage of Native APIs. Native controls and behaviors can be mapped with Xamarin.Form elements.
- The app store of Xamarian allows the addition of high-quality components to the app directly from the IDE, including controls, web service API and more.
- Features like PCL/Shared make it very easy for the app developers to share the same code base throughout various projects.
Most Frequently Asked Xamarin Interview Questions
Xamarin Forms | Xamarin Native |
---|---|
In Xamarin.Form you share both the business logic and the UI and allows its users to share its UI coding to multiple platforms. | Xamarin Native allows its users to develop a platform-specific user application. |
Cross-platform applications are less efficient in performance. | Cross-platform applications are more efficient in performance. |
The application size is larger. | The application size is smaller |
Easier to maintain and scale because 80-95% of code is common between platforms where the deployment of an application takes place. | Moderate scaling and maintenance. |
To develop a mobile application a limited timeframe and budget are needed. | Requires more time than Xamarin Forms to develop a mobile application. |
Native App: Specific native language(C#, Objective C, Swift, Java) is needed to develop a specific native app for Windows, Android or IOS. These are all needed if we are looking forward to developing a native app
Cross-platform App: Using a cross-platform, a developer can develop an app for all three mobile platforms. It uses a single code base wrapping in a native application layer. Customization of interfaces to native languages is always required.
Xamarin is basically a cross-platform technology that uses a single codebase with C# where the user can build suitable native user interfaces as well as native applications for platforms such as Windows, macOS, etc. It is a one-stop platform whose tools can be used in any of the operating systems and thus various applications can be developed which can run on these platforms without any kind of significant change in the code.
Xamarin is very unique as it uses only one language, and that language is C#, it has a class library and runtime that work throughout all the three platforms of iOS, Android and Windows phone( The native language of Xamarian is already C#). It also offers Xami support for creating a user interface.
There are several disadvantages of Xaml in Xamarin. Forms which can be explained by the following points
- XAML is incapable of containing the code. Usually, the code file must contain all the event handlers.
- XAML does not have the feature of loops for repetitive processing. There are some tools such as ListView, that can generate various children and do further processing.
- Conditional processing cannot be contained by XAML. However, the data binding feature eventually allows some of the conditional processing.
- Classes that do not define parameterless constructor, cannot be instantiated by XAML.
- Generally, methods cannot be called XAML.
- Windows Phone, Windows and UWP cannot be created with the help of Xamarin studio but it can be created through Visual studio.
- In the Mac operating system, it is possible to develop Android and iOS apps with the help of Xamarin studios whereas this is not possible while using Visual studio.
- The feature of Xamarin studios to develop Android apps only in Windows helps the user to switch to visual studios for application development.
- To develop apps in Xamarin. Form, the user requires Windows 10 and Visual Studio version 2015.
Using Xamarin Technology, there are two ways in which we can deliver native iOS, Android or Windows apps:
- Traditional Xamarin approach: Through this, direct access to platform-specific API can be provided. Platform-specific apps can also be created using Xamarin, for example, iOS-specific for iOS applications. Android-specific apps can be created.
- Xamarin.Forms: It follows the same architecture as that of Traditional cross-platform apps. Implementation of portable libraries or shared projects to save the shared code and then creating specific applications for every platform that will use this shared code. These were the most used methods for implementation.
Xamarin uses a fully functional implementation of the .NET runtime known as Mono, which compiles the app into a native ARM which helps to execute the code using all the functionalities of C#. It uses all the features of C# and .NET such as memory management, .NET base class libraries, and reflection. Developers then use any of the features of the provided programming languages to create native APIs on iOS while taking care of Apple’s privacy policies.
List View | Table View |
---|---|
List View shows its data stacked vertically | Table View shows its data horizontally |
List View provides you item templates and item source | The table view doesn't provide any of these |
Every cell in a ListView have the same type | You can mix different types of cells in Table View |
Data Binding is based on MVVM (Model-View-ViewModel) Architecture. It links the properties of two objects. This allows changes in one property to automatically reflect in the other one. It can be implemented either with XAML or with code. It is wise to use it with XAML as it reduces the code-behind file size.
Effects simplify the customization of controls, are reusable, and further parameters can be added in the future to increase its reuse. It allows us to customize the traditional or native controls on each platform. An Effect is recommended when we change the properties of a platform-specific control that is achieving the desired result.
Four events occur during the Xamarin.Forms LifeCycle:
- OnStart event - Startup of an application.
- Suspension - When the Xamarin.Forms come to this event, it got suspended or terminated.
- OnResume event - When the application is resumed from background.
- OnSleep event - When the application goes to background.
There are 5 types of layout control in Xamarin.Forms:
- StackLayout
- Grid
- AbsoluteLayout
- RelativeLayout
- FlexLayout
There are 6 types of pages available in Xamarin Forms: Carousel Page, Content Page, MasterDetail Page, Navigation Page, Tabbed Page, and Template Page.
A resource dictionary is a repository for XAML resources that your application uses, such as styles. You define resources in XAML and retrieve it using two markup extensions. Static and Theme resource. You can also retrieve it using a code.
View to view bindings means linking of the properties of two views on the same page just like data bindings which link properties of two objects, called source and target.
Xamarin Essentials helps developers to establish a single cross-platform API for their mobile applications like Android, iOS, and any UWP applications or Xamarin.Forms that can be accessed from shared code. This library APIs save a lot of time and money for developers and facilitates the rapid prototyping process.
When the Android runtime needs to call managed code, we use Android Callable Wrappers. These wrappers are needed because it is not possible to register classes with Android runtime during a runtime. Thus whenever there is a lack of runtime type registration support needed, Android Callable Wrappers come into play.
They can deliver native iOS, Windows, and Android apps using existing skills, teams, and code(C# XAML).
- With Xamarin technology one can take full advantage of Native APIs. Native controls and behaviors can be mapped with Xamarin.Form elements.
- The app store of Xamarian allows the addition of high-quality components to the app directly from the IDE, including controls, web service API and more.
- Features like PCL/Shared make it very easy for the app developers to share the same code base throughout various projects.
A technique that automatically synchronizes the user interface with its source of data is known as data binding. After data binding, any change made on the business model or data gets automatically reflected in the UI and vice versa.
It notifies users about any error during the compile-time checking of XAML. It eliminates the load and indirect referencing time for XAML elements. It doesn't include the final assembly hence reduces the file size.
There are 3 code sharing techniques in xamarin forms:
- PCL (Portable Class Libraries): It targets different platforms with a common API interface which provides a platform-specific functionality.
- Shared Project: We use a shared project to organize source code and manage platform-specific requirements using the #if compiler.
- Dot Net standard libraries: It allows you to implement code to share across different platforms and can be accessed by a large number of .Net APIs.
Mono Android in Xamarin provides an access to all indigenous Android API's. This is possible because a mono runtime is ported to the Android OS.
Xamarin | Mono |
---|---|
Xamarin is the company that created Mono. | Mono is a substitute for implementing C# |
It is used to build the tools suite that helps cross-platform development. | It is used to building the apps for mobile and desktop devices |
ICommand is a property in a ViewModel that is used to access the command interface. For this, a ViewModel must refer a class that can implement the ICommand interface. When used with Windows Class, it allows you to share your ViewModels between Xamarin.Forms and Windows App.
It has gained huge popularity since its release. As of 2017, Xamarin has been observed to be used by over 1.4 million developers across 120 countries in the world. Developers wish to enter this firm for a handsome package and a huge scope of work at the same time. With proper preparation, command in coding, confidence, and presence of mind, one can bag a respectable post in this firm.