Crossplatform Mobile App development with Xamarin
Now that Microsoft put its’ weight behind cross-platform C# development for Android and iOS with Visual Studio 2015, it makes even more sense to take a look at Xamarin.
Xamarin interacts with iOS and Android platforms via proxy libraries MonoTouch and Mono.Android.
Pros:
- Crossplatform – Multiplatform support is provided by standard Mono/.NET libraries – System.Data, System.IO, System.Net etc.
- Xamarin apps run Android, iOS and Windows.
- Visual Interface Designer- InterfaceBuilder and Visual Studio add-on allow visually designing UI.
- C# – Developers familiar with C# can build apps suitable for AppStore distribution without having to learn Objective-C or Java.
Cons:
- Memory Leaks – Most classes implement IDisposable interface and memory leaks are a serious concern. Elements are often proxies to native objects and Dispose it required to memory leakage.
- Exceptions – While Xamarin throws exceptions such by raising MonoTouch.Foundation.MonoTouchException and Java.Lang.Throwable, yet some exceptions only happen inside framework and never get to the app. Stack overflow, for example, crashes the app without even raising any exceptions.
- Some native API calls are not supported. For example, MonoTouch.AddressBook.ABPerson.GetVCards is missing. Xamarin.Android does not generate events AnimationStart and AnimationEnd for ViewFlipper.
- Support – there is a lot more information and help available for native development.
The shortcomings of Xamarin are manageable, but in some instances developers have to be ready to hack the Xamarin platform or engage a consultant to help with topical issues.
If you are planning to develop an app for just one platform, it probably makes sense to stay native, even if it requires learning a new platform.
- June 19, 2015
- Development
- cross-platform, native, xamarin
Categories
Search
Tags
fuchsia
ios
social
kubernetes
alexa
devsecops
security
cortana
hosting
azure
voice
javascript
cross-platform
react
react-native
native
node.js
titanium
objective-c
android
os
aws lambda
appcelerator
MVP
redux
mobile
google assistant
serverless
bootstrap
product
IoT
flutter
http
xamarin
babel
smarthome
According to comScore’s 2018 Global Digital Future in Focus report mobile apps…
Fuchsia is a new modular capability-based operating system currently being developed by…
Introduction Expo is a free and open source framework for building React…
Introduction QUIC, short for Quick UDP Internet Connections, also known as HTTP-over-QUIC…
Introduction The origin of the Unhandled Promise Rejection error lies in the…
Introduction In the previous article, we covered the Rematch framework, designed to…
Introduction Since their launch just a few years ago, React and Redux…
The JavaScript language has a concurrency model based on the "event loop"…