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.