Xamarin, a new technology to our community, is useful and interesting. With Xamarin, you can write code only once and build apps for different platforms, including native Android, iOS and UWP (Universal Windows Platform) app.
Xamarin also becomes popular on Topcoder. We have run several Xamarin challenges on Topcoder and will launch a good number of Xamarin challenges in the future.
We are launching this fun challenge to introduce you to Xamarin so that you can make yourself comfortable for the upcoming challenges on Xamarin.
This is a fun challenge. No prize money will be awarded for completing this challenge successfully.
10 T-shirts will be raffled off to submitters randomly.
What is Xamarin?
When considering how to build iOS and Android apps, people usually think that the native languages - Objective-C and Swift for iOS, Java for Android. Developers need to learn different languages and features, each feature and UI has to be implemented multiple times. It’s inefficient in both time and cost.
Xamari unifies in this space by offering a single language C# and wrapping native libraries in the .NET runtime that works across three different platforms - iOS, Android and UWP (Universal Windows Platform). Xamarin allows developers to share about 90% of code across platforms. With the single language C# and unified .NET runtime, Xamarin also provides a bridge to introduce .NET developers to native iOS and Android development world.
Xamarin provides the following variants to support different platforms.
Xamarin.iOS: exposes the complete iOS SDK for .NET developers. Build fully native iOS apps using C# (or F#) in Visual Studio.
Xamarin.Android: exposes the complete Android SDK for .NET developers. Build fully-native Android apps using C# (or F#) in Visual Studio.
Xamarin.Forms: exposes a complete cross-platform UI toolkit for .NET developers. Build fully-native Android, iOS and UWP apps using C# in Visual Studio.
Xamarin.Mac: exposes the complete macOS SDK for .NET developers. Build fully native apps in Visual Studio for Mac.
Which variant should I choose?
If your app needs to support cross-platform, Xamarin.Forms is your preference.
If your app only needs to support a single platform, and you are a .NET developer and want to get into the iOS/Android/Mac development world quickly, you should choose Xamarin.iOS, Xamarin.Android or Xamarin.Mac. Compared to Xamarin.Forms, they have fewer limits and are more efficient on their own platform.
Requirements for this challenge
In this challenge, you would be creating a simple calculator by Xamarin.Forms, your calculator will run on iOS, Android and UWP. This challenge prevails to give you a head start on Xamarin by covering basics.
Note: If you don’t have a Windows machine, then the UWP app is not required. If you don’t have a Mac, then the iOS app is not required.
What will you learn-
How to set up the environment for developing Xamarin.
How to develop Xamarin with Visual Studio 2017 or Visual Studio 2017 for Mac
The project structure of Xamarin.Forms.
C#, .NET and XAML basics.
Application Fundamentals, like App Lifecycle, Data Binding etc.
How to debug and deploy apps on the emulator and real device.
Please build a basic calculator based on Xamarin.Forms. The UI of the calculator is shown below. I think you must know how a calculator should work, so the functionality is straightforward.
Follow this Get Started Guide to
learn rest tutorials from the Get Started Guide and think how to implement the calculator.
If you get stuck on the implementation, I provided a sample code in the forum for your reference. But please AVOID READING it before you finished this challenge.