Xamarin.Forms - Fun Challenge - Basic Calculator




    The challenge is finished.
    Show Deadlinesicon-arrow-up

    Challenge Overview

    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.

    Important Note:

    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.

    • App views

    • 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.


    Learning steps

    Follow this Get Started Guide to

    1. install dependencies.

    2. learn how to build your first app

    3. learn how to build a simple single screen app

    4. 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.

    Enjoy Learning!

    Final Submission Guidelines

    Important Note:

    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.

    Submit your Xamarin.Forms project in a zip archive.

    Reliability Rating and Bonus

    For challenges that have a reliability bonus, the bonus depends on the reliability rating at the moment of registration for that project. A participant with no previous projects is considered to have no reliability rating, and therefore gets no bonus. Reliability bonus does not apply to Digital Run winnings. Since reliability rating is based on the past 15 projects, it can only have 15 discrete values.
    Read more.


    Final Review:

    Community Review Board


    User Sign-Off