Streamline Mobile App Testing and Version Management with Smartface Testing Distribution

As the device and operating system fragmentation increases, testing becomes the most crucial step of mobile DevOps processes. Even though Smartface Cloud Development module minimizes the need to worry about fragmentation and allows you to test run and debug apps instantly on real devices, it is still a good practice to test mobile apps on different devices. In the lifecycle of a mobile app there are a number mobile app testing scenarios such as functional tests or user acceptance tests that might be carried out by different teams.

Until now, one of the main issues was that distributing apps to testers and devices is usually an unnecessarily complicated process. You need to use multiple tools for iOS and Android, install apps to install apps or connect all devices and install binaries manually.

Smartface eliminates the hassles of mobile application testing with the Smartface Cloud Testing Distribution module.

Testing Distribution allows you to distribute your iOS and Android apps for testing with individual testers and testing teams. It is a cross-platform testing solution that does not require any SDKs or setup and it works with all types of mobile apps regardless of their development technology.



In this module, you can manage your mobile app binaries as application profiles along with the versions as well as the teams with whom these apps will be shared. When you share the app, each user will be provided with unique download links so that you can track every tester individually.

This module is especially useful for internal testing by providing a platform to serve binaries with detailed management and tracking of applications, versions, testers and teams. It streamlines testing processes while providing you the perfect tool to store, archive and share app binaries for iOS and Android.

You can start using Single Link Distribution instantly and for free as a part of Smartface Cloud. No setup is needed to start distributing apps to testers. Try it now at


A Web Browser is All You Need to Develop Native iOS and Android Apps on any Platform with Smartface Cloud IDE

With Smartface Cloud, you can develop native iOS and Android apps, just with JavaScript and manage their lifecycle end-to-end, all in the cloud, within the comfort of your browser.

Our development module, Smartface Cloud IDE, runs right in your browser, no installation or setup needed to start developing native iOS and Android apps.

The Cloud IDE is a full-featured IDE for a complete mobile development experience with JavaScript. You can see a quick demonstration of the Smartface Cloud IDE is in the following video:


Unlike some other tools which claim in-browser development just with a limited feature set, Smartface Cloud IDE has all the features you expect from a traditional IDE with the added benefits of the cloud.

This is achieved with an innovative cloud implementation:

For every Smartface mobile application development project, you get a unique and personal Linux machine in the cloud.

Therefore, the IDE consumes local computing resources only as much as a rich web page, which keeps your computer cooler and even helps you spare some battery life for development.

Moreover, it is compatible with any operating system with a modern browser.  You can develop native iOS and Android apps on Linux, Windows or any other operating system, even on iOS itself.

Some of the notable features of the Cloud IDE can be outlined as follows:

  • Coding support functions like autocomplete (including support for custom JavaScript libraries) and direct access to API documents while coding
  • Cloning projects directly to the cloud from code repositories
  • Flexible workspace with extensive customization options
  • Fully functional Linux terminal
  • Wireless and instant app deployment from the cloud to real devices
  • Wireless debugging directly from the cloud to the mobile devices
  • Real-time coding and collaboration on the same project with other developers
  • Direct integration with other Smartface Cloud modules such as Testing Distribution ad Remote App Update so that you can deploy your apps without any download and upload processes.


You can start using start using Smartface Cloud instantly and experience the delight of native mobile development in the cloud at

Increase Mobile App Downloads and User Engagement with Smartface Single Link Distribution

Smartface Cloud Single Link Distribution allows you to distribute your iOS and Android apps with a single link and a QR code to facilitate mobile app marketing and increase mobile app downloads.

There is no need for any specific SDKs or development efforts, it can be used by anyone without any technical dependency and it can be applied for any app from the App Store or Google Play.

This module detects the device type automatically and redirects the user to the appropriate link based on the device type. These download links can be in the Google Play or App Store or you can redirect to user to any other download location. It also supports iOS URL schemes and Android intents. If the app is already installed in the user’s device, the user can be redirected to a screen or an action inside the app instead of the download URL.


This module is especially useful for app marketing, where you can share a single and shortened link with your customers, eliminating the device and install base fragmentation worries.

Any deep linking scenario works well with Smartface Cloud Single Link Distribution and it can be used for any iOS and Android app no matter with which technology it was built.  For instance, in your m-commerce app, you can redirect users to a specific product page instead of just launching the app and if the app is not installed, the store listing will be shown.

You can start using Single Link Distribution instantly and for free as a part of Smartface Cloud. No download, development or technical expertise is needed. Try it now at


Smartface Single Link Distribution and App Linking FAQ

1. Are there any specific requirements for using Smartface Single Link Distribution?

The module works for all apps, regardless of the used development tool or the structure of the app. It is not limited to Smartface apps, any app from the App Store or Google Play can be used with this module.

Also, there is no need for any SDKs or development. For instance, marketing department can create and manage single link distribution profiles without any technical dependency. There is no need for an app to have deep linking implemented, but if an app has URL schemes or intents defined (see question for details), opening app links will be the icing on the cake.

You can get more information from the Smartface Cloud Single Link Distribution guides.


2. What are the advantages of using Smartface Single Link Distribution?

It is a simple but powerful mobile app marketing tool to streamline app marketing for increasing the number of downloads at any stage of your app as well as the user engagement.

  • You can provide short, customizable links for your apps instead of long store links or complex URL schemes.
  • You can share a single link with your customers, without worrying about device fragmentation. (e.g. You can send a single SMS with a single link and the system handles operating system and form factor differences)
  • You can target both your installed and non-installed mobile user base with a single campaign.


3. What is deep linking/app links?

In the context of mobile apps, deep linking consists of using a uniform resource identifier (URI) that links to a specific location within a mobile app rather than simply launching the app. (Source: Wikipedia)

You can define links for any screen or compatible action in your mobile app so that just like web pages, you can target a specific screen to be displayed when the app is launched from a link.


4. What are some examples of app links?

The following URI launches the @Smartface_io Twitter profile directly on the Twitter app:
twitter://user?screen_name=smartface_io (you can see the URI in action if you are reading this page on your phone)

The following URIs are some of the most common ones that are handled by the system:
sms:1-650-317-3265 & tel:1-650-317-3265


5. How is deep linking implemented within an iOS or Android app?

Both iOS and Android uses URIs as a standard of inter-app communication, though the implementation is specific to each platform. Below are the app interaction implementation guides for iOS, Android and Smartface Cloud:

5.1. Inter-App Communication on iOS

On iOS, deep linking is implemented through URL schemes, which are defined as follows:

“A URL scheme lets you communicate with other apps through a protocol that you define. To communicate with an app that implements such a scheme, you must create an appropriately formatted URL and ask the system to open it.”

The URL scheme is registered in the Xcode project settings. You can find more information from the following guide  from Apple:


5.2. Interacting with Other Apps on Android

On Android, deep linking is implemented through Intents, which are defined as follows:

“Intent framework enables apps to handle requests from the system or other apps. An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities.”

The intent is registered in the Android Manifest. You can find more information from the following guide from Google:


5.3. App Interaction in Smartface

With Smartface, it is very quick and easy to implement URL Schemes and Intents for your app as well as to communicate with other apps, all in the same mobile application project for iOS and Android:


Smartface Cloud: The Next Generation of Enterprise Mobility

We are happy to announce that our next generation product Smartface Cloud is live. Smartface Cloud facilitates mobile transformation with enterprise mobility in the cloud.

You can register for free at and start using it right away. No download or setup is necessary and it is free for a lifetime.

You can quickly start mobile app development in your browser with the Cloud IDE and this is just the beginning. Once you develop your app, you can manage its lifecycle end-to-end with enterprise mobility modules in Smartface Cloud.


With the Cloud IDE, you can develop native iOS and Android apps just with JavaScript knowledge. It works on any modern browser and on any OS. You can use the Smartface “on-device emulator” at (you need to access the link from your phone) to view your app on real iOS and Android devices instantly and wirelessly with wireless debugging on Android. Smartface Cloud Development module comes with day-one support for iOS 10 and Android 7.

For more information about Smartface Cloud, you can access the following resources:

Start using Smartface Cloud at

Happy mobility,

Smartface Team.

Highlights and Takeaways from Mobile World Congress 2016

Another Mobile World Congress passed by with exciting announcements and updates. Even though we saw more smartphone announcements than last year, MWC 2016 was more than just “smartphones and wearable devices”.

Wearables were actually nowhere to be seen and virtual reality devices and technologies took the stage; followed by connected devices, whether it is a car or a smart home device.

In that sense, MWC 2016 provided a clear glimpse to the future, whereas MWC 2015 was more about the present.

Let’s delve deep into the highlights from Mobile World Congress 2016:

1. Smartphones and mobile OSes

We have mostly seen the typical flagship announcements in the smartphone space:

  • The biggest announcement came from Samsung as usual with the introduction of the new flagship phones Galaxy S7 and S7 Edge. The design is a polished iteration of S6 series with waterproofing and expandable storage.
  • Samsung is finally able to deliver good-looking and well-performing high end phones, as indicated by S6 Edge getting the best smartphone award in Global Mobile Awards.
  • LG introduced an expandable phone concept with “Friends” accessories supported by its flagship LG G5. This can make a difference in the crowded smartphone space with some accessories already available in launch.
  • Xiaomi, the biggest brand in China, is releasing its new flagship Mi5 with a refined design, high-end specs and an affordable price tag. With Mi5, Xiaomi is becoming a contender in the global market.
  • Sony announced its Xperia X series as upper-mid-range smartphones
  • CAT unveiled world’s first phone with a thermal camera, CAT S60. It’s a rugged phone targeted to a specific audience, nevertheless, it is an innovative device.


  • Although iOS and Android domination is evident, there was one significant Windows device announcement, HP Elite X3. This powerful device is aimed to business users and its most important feature is the ability to transform into a Windows PC with its notebook accessory. It is still a work in progress and the initial opinions are mixed.
  • As an alternative to Windows desktop, there was the 32-bit device support announcement from Remix OS, an Android-based desktop OS. You can bring your old PCs back to life with native Android.
  • Jolla, another struggling player in the mobile OS space with its Sailfish OS indicated that they are still alive and well with partnerships with operators in different regions.


  • As the smartphone screen sizes are increasing and 2-in-1 devices are gaining traction, tablets aren’t relevant anymore.
  • Huawei Matebook was the only tablet-like device that got real attention and it was actually a Windows 2-in-1 device similar to Microsoft Surface.


2. VR and AR devices

Most devices introduced were related with VR (virtual reality) and AR (augmented reality):

  • HTC Vive is finally getting released as the second VR device after Oculus.
  • Samsung introduced Gear 360 video camera to shoot 360 degree videos for VR use.
  • Similarly, LG is jumping on the VR train with LG 360 Cam and LG 360 VR headset.
  • Intel showcased Recon Jet, a Google Glass-like Android glasses.
  • Epson unveiled the next generation Moverio, Android-based AR glasses.
  • Lenovo and Google showcased Project Tango in a museum setting, an AR based indoor navigation and exploration system.


3. Wearables and smart devices

There were few notable devices in the wearable space:

  • Sony introduced Xperia Ear, a digital assistant whispering to your ear. Indeed, it resembles the assistant in the movie, “Her”.
  • Sony also showcased prototypes of a digital home assistant device (Xperia Agent), a smart projector (Xperia Projector) and a smart camera with automatic capture (Xperia Eye).
  • Jacob Jensen released the Halo smart bracelet which can send a distress signal with a simple gesture.
  • Oral-B showcased its latest “smart toothbrush”, Oral-B Genius, which can track the position and the movement of the toothbrush in your mouth. With its SDK and API, it will be an open ecosystem for developers.


4. Mobile technologies and enterprise mobility

For mobile technologies and enterprise mobility, below are some brief takeaways:

  • Mobile commerce and mobile payments are getting more and more attention. It is important to keep up with this trend in mobile application development.
  • GSMA approves embedded SIM concept, hopefully changing SIMs will be a thing of the past.
  • 4G LTE is now commonplace and 5G developments are in full motion since high speed is crucial to achieve the smart cities vision with connected cars, homes and devices.
  • Enterprise mobility is still a messy landscape with every phase of the mobile application lifecycle requiring to work with a different vendor.

    Smartface Cloud is here to address the needs of the enterprises with a cloud-based end-to-end enterprise mobility platform.


See you next year at Barcelona!

Developing Native Salesforce SDK Apps with Smartface

With the plugin support in Smartface, it is possible to implement any native SDK in Smartface apps. and as an example and the first of many, we would like to introduce the Salesforce native iOS and Android plugin for Smartface.

You can find more information about native plugin support in our previous article “Extending Smartface with Native iOS and Android Plugins

Smartface is a JavaScript based cross-platform native framework and it already provides a JavaScript interface to native OS components in iOS and Android. However, there might cases where you need to use a specific SDK for a specific purpose.

One of the most common use cases is the enterprise connectors. Most enterprise systems offer SDKs as well as web APIs and it is a matter of choice which one to use. Each has different use cases and advantages over the other. Web APIs offer granular control over the integration, whereas the SDKs handle some portion of the integration such as sessions automatically for eaiser development.

Smartface offers the flexibility of using both options for native apps. There is full support for web connectivity APIs so that you can consume web services in SOAP or REST from any enterprise software that provides them and the plugin support allows native SDKs to be used for enterprise connectivity.

Similarly, Salesforce developers have the choice of using either the Web APIs or the SDKs. Both Salesforce web services and native SDKs are supported by Smartface.

Smartface has wrapped the Salesforce Mobile SDK for iOS and Android and it is provided as a plugin to be used freely by all Smartface developers who want to add Salesforce capabilities to their mobile apps. Source codes of the plugin are available on GitHub and everyone is free to contribute:

This implementation is provided as a reference. You are invited to extend the plugin freely as per your requirements in your mobile apps that utilize Salesforce.

Actually, there are some naming and function differences in iOS and Android SDKs provided by Salesforce and Smartface offers a solution to disregard such differences to develop with a single JavaScript codebase.

Smartface plugin interface is designed to map native objects with JavaScript objects and it is possible to develop a JavaScript library which enables single codebase behavior. If a native plugin developer follows the necessary steps and develops the plugin with single codebase in mind, Smartface developers do not need to worry about OS differences, things are handled by Smartface native engine.

As we always emphasize, the possibilities are endless with Smartface plugins and Salesforce is just an example of many new enterprise plugins to come.

And you can always develop your own plugins from any SDK. The development and usage of Smartface plugins is free for all users, including the community license.

Download Smartface now and start developing native Salesforce mobile apps for iOS and Android.

Extending Smartface with Native iOS and Android Plugins

Smartface plugin interface is now open to all users, including the free Community license. Everyone can create their own native Objective-C and Java plugins for Smartface App Studio. The possibilities to extend your Smartface apps are now endless.

Smartface is a JavaScript based cross-platform native framework and it already provides a JavaScript interface to native OS components in iOS and Android. However, there might cases where you need to use a specific SDK for a specific purpose or a custom component.

Some of the examples for such cases are:

  • SDKs for different enterprise systems and frameworks for security, connectivity, etc.
  • SDKs for cloud services (you can use any cloud service with Smartface)
  • SDKs for mobile services such as analytics, in-app communication, application health monitoring, etc.
  • Custom user interface components such as animations or buttons and menus with different designs and interaction options or gesture components
  • Supporting beacons on Android (iBeacon is already supported in Smartface) or using a third party beacon framework


Plugin is a broad term and its definition tends to change in each platform, where they might be named as addons, extensions or components in different platforms. In Smartface, we have elected to define native plugins as any kind of native code/functionality that is implemented in Smartface with the plugin interface.

With native plugin support in Smartface, you can even implement full apps developed in Objective-C or Java.

In the lifecycle of a plugin in Smartface, there are two different phases involved.

If you are a Smartface developer who just wants to use a third party plugin, the development and packaging steps are not important for you. You may skip to the “Using the plugin” section to use any plugin just in two steps.


1. Native plugin development and packaging

The development and packaging are specific to each native platform and require some familiarity with the native development tools.

i. Developing iOS plugins with Objective-C:
  • Create the plugin template with the CLI tool
  • Merge your native code with the template
  • Fill in the configuration file
  • Define classes to be used in JavaScript
  • From the project files, generate the plugin file using the CLI tool

You can distribute the generated zip file, the Smartface plugin, in any way you like. For technical details on iOS plugins, you can refer to the Developing iOS (Objective-C) Plugins for Smartface guide and for a step-by-step generation of an iOS plugin, you can refer to the Hello World with iOS Plugin guide.


ii. Developing Android plugins with Java:
  • Download the plugin template from Smartface website
  • Put the template under Java folder in your project in the Android development environment
  • Fill in the configuration file
  • Define classes to be used in JavaScript
  • Generate the plugin file using the CLI tool
  • Build the project apk
  • From the apk, generate the plugin file using the CLI tool

You can distribute the generated zip file, the Smartface plugin, in any way you like. For technical details on Android plugins, you can refer to the Developing Android (Java) Plugins for Smartface guide and for a step-by-step generation of an Android plugin, you can refer to the Hello World with Android Plugin guide.


 2. Using the plugin in Smartface (JavaScript development)

It is very easy to implement any native plugin in Smartface just in two steps.

  • Get the plugin file from the developer and put it inside the Data->Plugins folder in your project structure
  • Activate the plugin in Project Details->Plugins section in Smartface IDE

You may refer to the Smartface Plugin guide for technical information.


Also, please note that with this plugin update, there are changes in the implementations of the third party plugins already available in Smartface. Now, they are presented as third party plugins as well.

You may refer to the guides section for more information about the changed components and you can visit the Smartface Developer Center for more native iOS and Android development resources. For updates, you can follow us on Twitter @smartface_io

With plugins, you can utilize any iOS and Android native code, component and SDK in Smartface to develop native apps just with JavaScript.

Download Smartface now and start native iOS and Android development!

Developing 3D Touch and Touch ID Apps for iOS Devices in Smartface

The latest release of Smartface, version 4.5, comes with 3D Touch (Force Touch) and Touch ID support for iOS devices, paving new ways for user interaction.

Smartface is fully native and you can develop next generation iOS apps with native features like 3D Touch and Touch ID just by using JavaScript.


3D Touch in Smartface

Force Touch is being used in all new generation Apple devices such as the new MacBook and Apple Watch and a more sensitive version named 3D Touch is released with iPhone 6S and 6S Plus. iPhone 7 and iPhone 6C are also expected to come with 3D Touch features. It should be noted that iPad Pro doesn’t have 3D Touch, it only has Apple Pencil with pressure sensors.

3D Touch is more than a gimmick; it adds a whole new dimension to the user interaction as the name implies. It allows the detection of the level of pressure exerted by the touches on the screen and trigger different actions with regards to the applied force (hence the name Force Touch).

Due to the special hardware, force detection is highly precise and one study even indicates that 3D Touch can detect up to 400 different points of pressure. Therefore, a single touch means more than just a tap.

As the reference implementation of 3D Touch, some iOS apps use Peek and Pop. For instance, in the inbox in Mail app, if you tap on a message, the message is shown fully. If you gently touch on a message (exerting small amount of a pressure), you get a “Peek” at the message without leaving the inbox, so you are back to the inbox when you stop touching. However, if you touch harder while “peek”ing (exerting a higher pressure than before), you can “Pop” the message to show it full screen.

With Smartface, it is easy to use 3D Touch in a similar manner. Below is a brief information about how 3D Touch is used with JavaScript. Please refer to the 3D Touch with Force Touch in iOS guide for more information as well as sample codes for 3D Touch implementation.

For objects that have touch events onPressed, onTouch, onTouchEnded, onDragInside and onDragOutside, iOS runtime provides a force value. This value is a number. This force value can be obtained from any of those events as e.force.

Also there is another value which keeps the maximum possible force value that is called maximumPossibleForce. This maximum force value can be obtained from the above events by e.maximumPossibleForce.

With Smartface, the force is always with you. Will you choose the dark side or follow the path of the light side? It is up to you how you are going to use the “force” in your native iOS apps.


Touch ID in Smartface

Since its release, Touch ID was met with skepticism. On one hand, it was praised for its accuracy and ease of use; on the other hand, there were some cases that showed that Touch ID can be hacked or some people claimed that providing passcodes as an alternative to Touch ID disavows the fact that Touch ID is a more secure mechanism for authentication.

Still, Touch ID is one of the more successful implementations of fingerprint authentication and Apple bets highly on it. Besides its main use of unlocking the iOS devices, it is integrated to other features on iOS such as Apple Pay or App Store purchases.

And of course, it has an API that can be used by app developers and now Smartface developers can also use Touch ID in their native iOS apps. iPhone 5S and later devices and iPad Air 2 and later devices support Touch ID, so the majority of the devices in the market are Touch ID capable.

The most important fact about Touch ID is that it is a local security mechanism. The biometry data (the fingerprints) are stored locally inside the processor of the iOS device and never shared with apps or sent to the cloud. Therefore, it is especially a good choice for second factor authentication, but it can be used in any authentication scenario.

The use of Touch ID is straightforward. The authentication process and the biometry data are never exposed to the developers for security reasons and only the result of the fingerprint scanning process can be utilized within the apps.

With Smartface, it is even easier to use Touch ID in native iOS apps. Below is a brief information about how Touch ID is used with JavaScript. Please refer to the Touch ID for Fingerprint in iOS guide for more information as well as sample codes for Touch ID implementation.

For using Touch ID, device.scanFingerPrint method is called with customization options for the texts that appear in Touch ID dialog. After a successful fingerprint authentication, onSuccess event is triggered and the app can continue with the operations for an authenticated user. If there is an error, the onError event is triggered with an error code and error description such as “Application retry limit exceeded”, “Canceled by user”, “UI canceled by system” or “Biometry is not available”.

The developer can direct the user to alternative ways of authentication if an error occurs in Touch ID authentication.

Just a few lines of code are sufficient to enable Touch ID in your iOS apps. Non-authenticated users “can’t touch this”.


You can develop native iOS apps with 3D Touch and Touch ID just with JavaScript. No Objective-C or Swift knowledge is required.

You can visit the related guide pages for more information on 3D Touch and Touch ID implementations and you can visit the Smartface Developer Center for more native iOS and Android development resources. For updates, you can follow us on Twitter @smartface_io


Download Smartface now and start coding right away for 3D Touch and Touch ID

Developing Native iOS and Android Apps with Offline Capabilities in Smartface

Even though we are very much used to being online all the time while using our mobile devices, offline usage is still a must.

In B2C apps, offline functionality is a highly demanded feature for reducing data usage or accessing certain sets of information when offline. Some examples are:

  • Saving music offline is one of the most important features of Spotify
  • Google Maps recently introduced offline maps feature, which allows users to save maps on their devices
  • TripAdvisor city guides are available offline in cases you are traveling abroad with no data plan
  • Some games support offline play, where the game data is synced when the device gets online.

For enterprises, however, it is not just about being unable to use mobile data on a subway or abroad. There are other, business-critical use cases where offline capabilities are required.

The most common of these use cases are the following two items, which are presented below with some real life examples.


1. Cases where reliable network connection is not available throughout the day:

The mobile user might be visiting locations (e.g. remote locations or warehouses where the network connection is weak). This is especially common in retail environments as well as service-oriented businesses.

  • Sales order management: sales reps getting orders from stores
  • Field service management: service technicians visiting different locations for installation or maintenance
  • Merchandising/surveying: collection of data from different locations by inquiring people or visual inspection


2.Operations with large files and/or large amounts of data:

It might be desired to reduce data usage during mobile usage, for reasons such as minimizing delay or eliminating network hiccups. The information is loaded previously so it is readily available during use. After the full data is loaded, it is possible to delta update the content during use.

  • Product presentation: making a product presentation with interactive content using tablets instead of handing out brochures or leaflets. This use case is especially common with medical reps, but it is applicable in any kind of presentation case.
  • Events: providing detailed information in crowded events offline to reduce data traffic or for limited network connectivity
  • E-learning: providing rich learning content in remote learning or in classrooms


This is just another point why enterprises need native apps. No matter how good the mobile network coverage is, there will be always cases where offline operations will be required and the best way to achieve this without any workarounds is developing native apps.

Native apps are also the most secure way for offline operation since they provide full access to native security features provided by OSes (e.g. keychain), you have more options to encrypt different types of data, and use native security SDKs. You can implement native security SDKs for iOS and Android as plugins in Smartface.

Thanks to offline operations support and binary data (BLOB) support in Smartface, you can develop any kind of native apps with offline operations; whether it is a field sales app where all the data including product master data, orders, etc. stored in a database or a classroom app where interactive learning materials are downloaded and stored offline. You can visit the related guide pages for more information on offline operations.

Typical implementation of an online/offline database access can be easily done in Smartface. Create the dataset with the network wizard and commit it; then populate the database with the data to be stored offline by using the app. Once it is set up, the app can make network connectivity checks before each operation and direct itself to the online or offline database accordingly.

Then the app can keep the online and offline databases in sync either with delta updates or with full database commits, if the backend supports such mechanisms.

Moreover, you have access to a wide array of enterprise level encryption options in the cryptology library of Smartface. You can encrypt and protect your offline data when things go south, which is more likely in field operations where the users are “mobile” throughout the day.

Smartface even supports more advanced implementations like offline authentication with fingerprint so that offline data is secure but still accessible by the right user.

Being an enterprise mobility platform, Smartface is designed for enterprises with enterprises to isolate you from the complexities of the mobile world. With Smartface, it is quick and easy to develop secure native apps with offline capabilities.

Our support team created some great guides to make offline operations easier for you. With these guides, you can easily incorporate offline capabilities in your apps.

  • File and database download and upload: You can perform two-way file and database transfers with a WebClient object. You can find sample codes and sample files to work with in the guide
  • Binary data operations: You can work with binary files such as PDF in your iOS and Android apps using the BLOB object. You can find sample codes and more explanation how to use BLOB object in the guide

With a few lines of JavaScript, you can develop native apps that work in any network connectivity situation with any kind of content. Also, note that these operations are fully single codebase.

If you haven’t started using Smartface yet, download today and start developing native offline apps for iOS and Android with a single JavaScript codebase.

5 Reasons Why Smartface is Unique in Native iOS and Android Mobile Application Development

There are many different mobile application development platforms (MADP) are out there and we frequently come across the question why Smartface is unique among all other MADPs and why Smartface should be chosen over the others.

In this article, we elaborate the unique features of Smartface. There are already many things that Smartface does better than the others, but there are certain features that even platform-based native (Obj-C/Swift/Java) frameworks do not have.

We believe that taking these features into consideration would greatly assist your decision making process to select the right mobile application development platform for your needs.


  1. Smartface is fully native with the JavaScript engines of the operating systems:
  • What separates Smartface from other native development platforms is that Smartface uses the operating system’s standard JavaScript engines, Google V8 on Android and JavaScript Core framework in iOS, not a custom JavaScript framework that requires learning a new subset of JavaScript.
  • Unlike “hybrid” or “native-like” platforms, the apps developed with Smartface only use native objects.
  • Thanks to the unique architecture of Smartface, JavaScript code can interact with native objects both in UI and system level.Standard JavaScript knowledge is sufficient to develop native apps and any JavaScript code that doesn’t depend on DOM can be used in Smartface.


  1. Smartface is one of few cross-platform native platforms with a real What You See Is What You Get (WYSIWYG) Editor:

Considering the fact that 50% of mobile developments efforts account for UI development, the unique WYSIWYG editor of Smartface provides a huge productivity advantage while providing a fully native design.

The commonly observed issues with other platforms can be outlined as follows:

  • Some platforms only support UI design by coding, which might be burdensome if you are developing an app with a complex UI or if you are not experienced with the development language.
  • Some platforms offer some sort of a “design editor”, but these editors are used only for facilitating UI development with code. The design shown on the editor is not consistent with what will be shown on real devices due to the device fragmentation.


Smartface has the following powerful features that differentiate it from other MADPs:

  • Smartface offers a real WYSIWYG editor for native UI development, which is not even fully available in Java based Android development.
  • With the rule-based, easy-to-use drag & drop design editor, the design can be previewed as it will be displayed on different devices (e.g. phones or tablets).
  • There is minimal need for adjustment for different screen sizes and resolutions and the design appears exactly as shown on the editor with no coding required for standard UI development.
  • Moreover, for advanced implementations and remotely updated apps, Smartface supports code based design as well, meaning that the developer is not limited to a single UI development option. Full UI of a native app can be developed with JavaScript code. The combination of different approaches is also possible. Static design made with the design editor can be extended with dynamic design by coding and vice versa.


  1. Smartface is the only platform that can be used to update native apps remotely (on-the-fly native app update):
  • With the power of JavaScript and the ability to develop the full UI of an app dynamically by coding, you can update your native apps remotely.
  • Some platforms offer textual contents of the app to be updated only, but Smartface is different, you can update any layer of the app: UI, BI, logic, networking, etc. securely and without any performance loss, due to the fact that the remote code is interpreted exactly the same way with local code.
  • For apps distributed in enterprise channels, this allows unlimited ways of managing the app without republishing every time.
  • Since the system JavaScript frameworks (specifically, JavaScript Core for iOS) is used in Smartface, remote update feature can also be used for B2C apps, if the updates are within reasonable limits.
  • This means that no more waiting for app review processes for critical and urgent updates like bug-fixes or making sure that all apps in the field are connecting to the latest version of the backend with the latest connectivity parameters.
  • This feature is not even available in platform-based native (Obj-C/Swift/Java/.NET) frameworks due to the nature of the development languages.

Smartface is the one and only platform that allows remote updating of complete native iOS and Android apps.


  1. All the layers of a native app are single codebase in Smartface:
  • There are many platforms that claim to be single codebase, but such claims might be covering just a portion of the app.
  • Usually, the UI layers are separate for different target environments and these layers should be coded separately without any UI development facilitator tools. Some platforms provide single codebase of the UI only for some specific use cases with special tools.
  • With Smartface, however, all the layers of an app, including the UI layer, are single codebase.
  • It doesn’t matter if you develop your UI with code or with the WYSIWYG design editor, both of them are single codebase.
  • Design and develop your app once in Smartface and deploy to multiple types of OSes and devices.
  • Smartface handles it all, not just platform differences between iOS and Android but also OS version differences (e.g. between Android 4 and Android 5).
  • What’s more is that if an element, property or event is not available for one OS, Smartface provides a compatible version of that missing feature for the specific OS (e.g. onDragOutside event is only available for native iOS but Smartface supports this event in native Android as well).
  • As for more advanced implementations, Smartface supports different development patterns like MVC for universal application development.

In that sense, “Is it single codebase?” is an incomplete question. For selecting the right cross-platform mobile application development platform, the right question should be “Are all the layers, including the UI and logic layers, single codebase?”

Smartface can answer this question as “Yes”.


  1. Smartface is enterprise-focused and it is developed for enterprises with enterprises:
  • There are only a few mobile application development platforms that are suited to meet enterprise needs.
  • Offering a mobility solution in an enterprise setting is a challenging task as it requires achieving the delicate balance between meticulous requirements of enterprises and the dynamism of the mobile world.
  • Smartface is able to achieve this as it has been developed for more than 3.5 years in closed beta with select enterprise users.
  • Smartface was released to the public only after it is deemed to be mature enough to meet the needs of the market instead of wearing out the market with an inadequate product as experienced with some other platforms.
  • Smartface takes the enterprise focus one step ahead of other platforms and engages with its enterprise community actively to shape the platform according to their needs and to share best practices across industries.
  • This distinctive synergy allows enterprises to adapt to the mobile world much quicker with Smartface than other platforms, while making Smartface to become even more mature than its counterparts.
  • Smartface is
    • Secure with advanced security features and built-in plugins
    • Flexible with its native plugin engine
    • Productive with enterprise connectors and single codebase structure
    • Convenient with offline operation and syncing capabilities


There are even more reasons to choose Smartface. You can explore them on our Why Smartface page and you can contact us for any questions regarding the selection of the right mobile application development platform. We are more than happy to assist you in your mobility journey.