Smartface vs. Xamarin (Cross-Platform Native Frameworks)

The objective of Smartface is to make native app development accessible to masses without sacrificing quality. At every opportunity, we emphasize the importance of “real native” quality and performance and that makes “real natives” win over “like-native” hybrid frameworks like Phonegap, Cordova, etc.

Unlike hybrid frameworks, most of which are just the fork of a single product, huge amount of effort is required to create cross-platform native frameworks. Therefore, there are only a handful of cross-platform frameworks that produce real native output.

While all cross-platform native products are praiseworthy, Smartface is here to make cross-platform native development even more appealing along with end-to-end lifecycle management.

In this article, we would like to explain you the main differences between Smartface and Xamarin (Microsoft).

Smartface Xamarin (Microsoft)
Mobile Application Development
Technology/Scope Cross-platform native Cross-platform native
Look and Feel, Sense, UX Native Native
UI Responsiveness Smooth Smooth
Performance Fast Fast
Development Language JavaScript (ECMAScript 6) C# (Microsoft lock-in)
Single Codebase Yes Yes (Xamarin.Forms only)
Supported Platform iOS and Android Native iOS, Android & Windows Native
100% iOS & Android

Native API Access

Yes Yes
Advanced Native Platform Support No (through plugins) watchOS, tvOS, Android Wear, Game Development & macOS (not single codebase)
Development Environment Cloud-based Desktop-based
WYSIWYG Design Editor Yes No – Xamarin.Forms (previewer),

Yes – non-single codebase Xamarin.iOS and Android

Real-time Development Collaboration Yes No
Wireless Deployment and Instant Update to Real Devices Yes Yes (in alpha phase, some app features are not supported)
Debugging Yes (Android-only) Yes
iOS Application Development and Signing without a Mac Yes Partially (only for development certificates, not for distribution)
Works on any Environment and OS without any Setup Yes No
Extend with Plugins Yes Yes

 

Smartface Xamarin (Microsoft)
Mobile Application Lifecycle
Integrated Cloud Environment for App Lifecycle Yes Partially
Update Native Apps Skipping App Store Submission (Hot Deployment) Yes No
Testing Distribution Yes Yes
Testing Automation for

Device Farms

With 3rd party tools Yes
Next Generation No-Ops Approach Yes (All modules are fully integrated, no need for configuration and CLI) No
Crash Analytics and Bug Reporting With 3rd party tool

(integrated with Fabric.io)

Yes
Enrollment-free Enterprise App Store Yes No (MDM tool available)
Build for and Submit to App Stores without a Mac Yes No
Single-Link Distribution for Store Apps Yes No

 

Xamarin offers a different approach to cross-platform native development compared to Smartface. It is C# based and unlike JavaScript based Smartface apps, whose code are interpreted at runtime, Xamarin apps are complied.

Therefore, besides the cloud-based next generation development and lifecycle management environment offered by Smartface,  primary differences between Smartface and Xamarin stem from the differences between C# programming and JavaScript programming.

Although it would not be possible and appropriate to classify one language being superior to the other; the types of developers can be classified as backend-oriented for C# and frontend-oriented for JavaScript due to the nature of the languages (JavaScript is also preferred for C# applications with a web frontend). Since user experience is of the highest importance in mobile development, developers with more frontend experience may produce better results and get acquainted to mobile development faster.

Both frameworks produce native output for iOS and Android. Yet, because of compiler and interpreter differences, binary sizes are smaller in Xamarin for small projects, but as the projects get larger, the interpreter overhead in Smartface eliminates repetition and binary sizes are smaller in Smartface for larger projects. A related advantage of interpreter structure of Smartface is that it is possible to run JavaScript files from the server. Therefore, app updates can be applied without submitting a new version of the app to the stores. A similar feature is available in hybrid apps, but they are just webpages. Smartface allows this for native apps and this is not possible for platform-based native apps and Xamarin.

Another thing to note is that until recently, Xamarin did not have a single code based offering. It was required to code separately for each platform. For standard Xamarin projects, this is still the case, but there is an offering called Xamarin.Forms, which allows single code based apps for a specified set of UI controls.

Both platforms have their own IDEs. The advantage of Xamarin is that besides its own Xamarin Studio, it has Visual Studio support and this is an important advantage for target audience of C# developers. However, this still requires a serious installation and update effort.

With Smartface, you can start mobile development instantly without any setup, just in your browser, fully independent from platforms.

Smartface also has a single codebase WYSIWYG (What You See Is What You Get) design editor with full source code generation. In Xamarin.Forms, the single codebase offering, there is only a design previewer, which requires XAML for UI development.

In Smartface, you may choose to design your app either with drag and drop components, with code or with a combination of both. Smartface design editor produces actualy JavaScript, not an intermediary XML code such as XAML. Xamarin has platform-specific “designer” tools for visual design of apps, but it is not directly translated into working apps. In Smartface, your design appears on any phone/tablet as exactly as you see it on the visual editor.

Moreover, Xamarin does not support iOS development on Windows (or Linux for that matter). If you have a Mac in the same network, you can use Windows to develop iOS apps in Xamarin, but it does not eliminate the need for a Mac and setup over network may be an issue in some network configurations. Smartface is the only cross-platform native framework that supports whole iOS development cycle on Windows.

Moreover, C# is not as common as JavaScript and might introduce a dependency on a specific ecosystem. For developing with Smartface, web know-how is sufficient, so the potential community is much larger.

Both platforms are highly stable. Smartface is a next generation cross-platform native framework developed for enterprises with enterprises and it is almost as stable as the platform-based native frameworks themselves.

 

From an enterprise perspective, development is only one part of the mobile application lifecycle. Since Xamarin has been developed from a community perspective until Microsoft acquisition, it is still in a transition phase to a full enterprise focus. On the other hand, Smartface has been developed for enterprises in mind.

In terms of mobile application lifecycle management, both platforms offer comprehensive tools, however Microsoft’s lifecycle management offerings are brought together by combining different tools and not built with integration in mind from scratch. For this reason, the environments are not fully integrated and depends on a CLI tool for some workflows.

Smartface has a fully integrated and seamless lifecycle management environment in the cloud. There are no upload or download operations for application binaries from development to store deployment. This brings in high productivity.

Tools provided by Microsoft are focusing on automating certain parts of the DevOps processes; whereas Smartface as a whole focuses beyond DevOps, to a “No-Ops” approach where no setup or intervention is required from development to distribution.

 

And the last but not the least is that Microsoft doesn’t have an enrollment-free enterprise app store, meaning that MDM required for in-house app distribution, which is not viable especially in B2B or BYOD (bring your own device) use cases. Smartface Enterprise App Store does not require an MDM solution and can be used instantly from the cloud.