Xamarin interview questions


Intro

The company I work for, Ordina Belgium, got many requests for ‘consultants with Xamarin experience’ from our customers lately. As leader of the Mobile Competence Center at Ordina, I’m bundling the interview questions our consultants get dished up when they go on an intake for a Xamarin project. I thought it would be nice to share some of these questions here on my blog. I’m just sharing questions, I’m not going to share entire answers as some questions are about opinions or have multiple solutions. I do might ‘hint’ to a possible answer.

If you have any additional questions that should be in the list according to you, additional remarks, or if you don’t understand a particular question, you can always drop a comment below!

I hope this list helps you out doing your homework for a Xamarin interview or just for testing your Xamarin knowledge.

I’ll try to regularly update this list with additional questions.

Good luck!

Note: Xamarin stands form Xamarin.iOS and Xamarin.Android. When talking about Forms, I explicitly use ‘Xamarin Forms’.

Questions

Last update: 17 April 2017

What is Xamarin?

Hint: Cross-platform, C#/F#, Mono, Native, Open Source, acquired by MS

How does this work on Android?

Hint: Embeded Mono runtime, IL, JIT, …

How does this work on iOS?

Hint: Ahead of Time compilation to ARM

Following previous question, is the entire .NET/Mono BCL included?

Hint: No, only used classes and functions (Linking)

What about Xamarin’s performance (vs. native Java on Android or Swift/Obj C on iOS, vs. native C++)?

Hint: Performance is good! Should not be a reason not to use Xamarin.

  • iOS: C++ > Swift > Xamarin iOS > Obj C
  • Android: C++ > Xamarin Droid > Java

Is Xamarin native?

Hint: Yes

What is Xamarin Forms?

Hint: Cross platform toolkit to also share user interface layouts

Is Xamarin Forms native?

Hint: Yes

What do you prefer? PCL (Portable Class Libraries) or Shared Projects? Why?

How many code / what kind of code can be shared across iOS and Android when using Xamarin?

Hint: Business logic can be shared, UI cannot be shared (you CAN share it in Xamarin Forms), UI is native, platform specific ‘low level’ stuff cannot be shared except for Xamarin components

How to build a UI for multiple screen factors on iOS?

Hint: Auto layout, Constraints, Unified storyboards, Separate Storyboards, manually in code behind

How to build a UI for multiple screen factors on Android?

Hint: Resources, manually in code behind

How do you test your app on multiple different devices?

Hint: Emulators, Xamarin Test Cloud

How can we monitor how our app behaves (stability, crashes, usage) in production or testing environments?

Hint: Xamarin Insights, HockeyApp

How to support/target different OS versions on Android?

Hint: Target Framework, Min Android Version, Target Android Version, Android.OS.Build.Version.SdkInt in code

What are Activities in Android?

Hint: one ‘screen’

What are Fragments in Android?

Hint: like ‘user controls’

Does this (Fragments) work on all Android versions?

Hint: no

How can I support this (Fragments) on older Android versions?

Hint: Android Support Library (AppCompat)

How does cell-reuse in lists work on iOS?

Hint: reuse of cells outside the view, GetCell method,  tableView.DequeueReusableCell

How does cell-reuse in lists work on Android?

Hint: reuse of cells outside the view , GetView method, convertView parameter, inflate

How to navigate in Android?

Hint: Intent (inside application and outside)

When using Storyboards for iOS, do we have to put everything in one Storyboard?

Hint: No, possible to navigate from one storyboard to another

How to launch other app to get a result back on Android?

Hint: Intent, LaunchForResult, override OnActivityResult method

How can you pass data from one intent to another when navigating?

Hint: PutExtra method on Intent

How do you receive data on an intent when data was passed to it?

Hint: Bundle

What does this object (Bundle) look like and what kind of data can we store in there?

Hint: Dictionary, base data types

Explain, high level, how Push Notifications work on iOS and Android

Hint: ask token on push notification server, store token on own server, send notification through push notification server using token

How to let the development team be able to have both a Dev, Alpha, Beta and Production version of the app on their device?

Hint: give each ‘version’ of the app another name (best practice: do this in CI pipeline)

Following the previous question, what if we want to give each version another icon?

Hint: other than just changing name, also change icon (best practice: do this in CI pipeline)

How can we easily distribute test-versions of our apps to our stakeholders?

Hint: HockeyApp, TestFlight

What is the easiest way to test the UI of your app?

Hint: Xamarin Calabash

Explain, high level, how to display data in a List on iOS

Hint: TableView, UITabelViewSource

Explain, high level, how to display data in a List on Android

Hint: ListView, Adapter

On Android, our app needs to support both Landscape and Portrait mode. Which things should we consider?

Hint: Manifest, Activity lifecycle, alternatively do manually in code, prevent Activity restart if desired

On Android, when I rotate my phone, some data disappears and some doesn’t. Explain this.

Hint: On Rotate activity restarts, OnSaveInstanceState , UI elements with id

In case you want to do something platform specific (eg use camera), how can we do this?

Hint: Xamarin Component Store or through an interface having specific implementation on iOS and Android using IoC container

We’ve got a REST api on http, do you see any issues using this in Xamarin?

Hint: On Android, no issue. New apps on iOS should use https exclusively, no ‘plain’ http calls are allowed.

Imagine we have a ListView on our iOS app. What do we have to do if we want to make the NavBar/TabBar disappear when the user scrolls down the list?

Hint: Custom TabelViewSource, override Scrolled method, check scroll direction, call methods to show/hide bar

How do you implement ‘Pull to refresh’ on iOS?

Hint: UIRefreshControl

In Xamarin Forms, what are Renderers?

Hint: for each control there is a renderer per platform. This renderer ‘translates’ or is the bridge between the Xamarin Forms abstraction and the native platform specific control. Can write your own custom renderers for custom controls.

In Xamarin Forms, what are Effects?

Hint: Introduction to Effects

What if I want to write an Effect in Xamarin Forms that is only applicable on iOS?

Hint: Only implement it for iOS. No specific implementation of the effect for other platforms.

What kind of built-in ListView cells are there in Xamarin Forms?

Hint: TextCell, ImageCell, SwitchCell, EntryCell

What about custom ListView cells and performance?

Hint: ListView Performance

Helpful Links

Xamarin - Getting Started with Android

Xamarin - Getting Started with iOS

Pluralsight - Building Your First Xamarin.Android App from Start to Store

Pluralsight - Building Your First Xamarin.iOS App from Start to Store

Did you enjoy reading this? If my work has saved you time or taught you something new, consider buying me a coffee.

Join the discussion

Archived comments (1)

Archived comments from the original blog, preserved here for reference. Join the discussion above.

  1. Vlad
    Best questions list I found