Posts tagged "C#"

Mobile App Development with Flutter or Xamarin?

When developing mobile apps, there are multitudes of development tools to utilize. App development for different platforms—also known as cross-platform development—opens up the possibilities of success for it. It presents a wider audience who can become potential users.

For cross-platform mobile app development, two frameworks worth considering are Flutter and Xamarin.

What is Flutter?

Flutter is a Software Development Kit or SDK, that’s open-sourced and available to the public for free. Its goal is to create apps that look like they are native apps. Flutter was released in 2015 by Google on the Android platform under the name ‘Sky’. However, it received a new name and was officially released as Flutter in 2018.

Some of its best features include:

  • Wide platform support
  • Large collection of tools to use
  • Contains a library and widgets for development

Major companies such as Google, eBay, BMW, Realtor.com, The New York Times, and Groupon use Flutter in their systems.

Flutter’s Strengths & Weaknesses

A strength of Flutter is its high-performance speed. Additionally, it has a hot load feature, which means updates can be made and seen within seconds of being changed. Having a high compatibility rate due to its use of widgets is popular among developers as well.

On the other hand, Flutter can’t construct completely native apps because of its reliance on widgets. The few years since its release is a weakness. Most development tools are updated and fixed over time, which means Flutter is somewhat limited in how issues are fixed. Google is constantly updating its programs, including Flutter, and that makes it a little harder to maintain an app’s code.

What is Xamarin?

Xamarin, like Flutter, is open-sourced, free, and cross-platform compatible. However, it was released four years prior to Flutter, in 2011. Then, in 2016, Microsoft purchased Xamarin.

Some features of Xamarin are:

  • Ability to access the features of native platforms
  • Implements XAML to design dynamic mobile apps utilizing the C# language
  • Libraries are available to help work with architectural patterns

Pinterest, UPS, the American Cancer Society, Fox Sports, Alaska Airlines, and other big companies use Xamarin.

Xamarin’s Strengths & Weaknesses

Under Microsoft, Xamarin and its developers have access to an extensive support system. Codesharing, high-performance speeds, and smooth user experiences are other strengths Xamarin has. Its weaknesses include an expensive price for commercial use, a small community of developers, overhead, and occasional lagging.

The Comparison

  1. Cost

Flutter is more affordable while commercial licenses under Xamarin can be expensive.

  1. Learning Curve

Both have libraries that contain guidelines, but Flutter is easier to learn because of its use of widgets.

  1. Ease of Use

Xamarin has a wider selection of development tools to choose from compared to Flutter.

  1. User Experience

Being around longer, apps built using Xamarin tend to have better UIs.

Conclusion

Flutter and Xamarin share about as many similarities as they do differences. What prevents one from receiving higher marks than the other is how each is used to create mobile apps. Each development project is different and should be built with tools that can support what it could be in the future.

Your Guide to Hiring a Xamarin Developer

It’s not easy interviewing and assessing software developers, especially if the technology isn’t your thing. A Xamarin developer will be able to build cross-platform apps for iOS and Android, but how do you know what to look for? Let’s take a closer look at what Xamarin is and some interview questions that you should be asking candidates.

What Is Xamarin?

Typically, apps will be developed using a platform such as .NET, which has its own

Set of tools and programming languages. Xamarin will extend this platform with even more tools and libraries that have been designed to enable the development of apps not only for iOS and Android but also for Windows, tvOS, watchOS, and MacOS.

What Are the Advantages of Hiring a Xamarin Developer?

Native Performance

Users are able to access apps on iOS or Android and still have the experience they would expect from the preferred operating system. Xamarin developers can also take advantage of native APIs, specifically those with platform-specific capabilities like iBeacons and Android Fragments.

C# Development

For cross-platform apps, a developer will need to know Java, as well as either Swift or Objective C. Xamarin developers only, need to know C# to build Android and iOS apps. C# has other advantages over other programming languages. It is responsive, requires less code, and lambdas are easier in C#.

Speed

As your Xamarin developer only has to develop one app with code logic for iOS and Android, the process is faster. As there is less code, your developer can also often save time with fewer bugs to fix. When it comes to testing, they will also need to write fewer tests.

What Skills Should a Xamarin Developer Have?

Experience with C# and MVVM

We have mentioned above the importance of C# knowledge. Model-View-View-Model is a software design pattern that is often used for cross-platform app development frameworks and candidates should be able to explain the importance of MVVM.

API and Third-Party Libraries

It is essential that candidates have experience working with APIs and third-party libraries as Xamarin offers plenty of support for this. Check work history for this skill.

Reusing Code

Candidates must be experts at reusing code as they will need to take code from one platform to use on the other.

The ability to keep learning

Good qualifications are a start, but the environment is continuously changing, and the right candidate will be willing to keep learning and staying up to date with new solutions.

What Interview Questions to Ask a Xamarin Candidate?

It is more than likely that you will have some questions that are specific to your own business but below you will find some questions that are ideal to find out more about the candidate’s Xamarin knowledge.

What different ways can you create a Xamarin app?

The candidate should be able to talk about the traditional method that provides direct access to certain APIs. This will entail platforms using Xamarin.iOS and Xamin.Android. Alternatively, they can use Xamarin.forms with either Portable Libraries or Shared Projects.

Can you describe the Xamarin.form’s lifecycle?

The lifecycle of Xamarin.form is the complete process from start to finish. The most important thing a candidate can talk about are calls like On Start, OnSleep, and OnResume.

What are Jagged Arrays in C#? How can you initialize it?

As an expert in C#, your candidate should be able to tell you that a jagged array if an array of arrays. For an example of how to initialize it, you could ask them to show you or at least write it down.

What are boxing and unboxing?

While both are types of conversion in C#, boxing converts value data type to the object or interface data. Unboxing extracts the value type from the object or interface.