fast-moving-world-of-mobility

How to Keep Up with the Fast-Moving World of Mobility and Adapt to Fragmentation with Productivity

Mobile apps are getting increasingly short-lived. In B2C (consumer) apps, this is more visible like the Flappy Bird case, but B2E (employee) and B2B (business) apps are also short-lived for various reasons.

New versions of operating systems and new generation devices are being released so fast that it’s not always possible to catch up, especially for enterprises with limited mobile development resources.

The tables below show a general history of iOS and Android versions. So many things change in so little time and adaptation is always an issue since the first versions.

iOS Version History:

Name
Version
Release date
Notable Features
iPhone OS 1 1.0 – 1.1.5 June 29, 2007 First release with standard apps
iPhone OS 2 2.0 – 2.2.1 July 11, 2008 App Store with 3rd party app support (paid update)
iPhone OS 3 3.0 – 3.2.2 June 17, 2009 Copy and paste & iPad release
iOS 4 4.0 – 4.3.5 June 21, 2010 Multitasking & Retina Display
iOS 5 5.0 – 5.1.1 October 12, 2011 Notification Center & iMessage
iOS 6 6.0 – 6.1.6 September 19, 2012 Siri out of beta & Apple Maps
iOS 7 7.0 – 7.1.2 September 18, 2013 Full design change to flat design & Touch ID
iOS 8 8.0 – 8.4.1 September 17, 2014 4000 new APIs (“Kit”s, Widgets, etc)
iOS 9 9.0 – 9.3.3 September 16, 2015 Improved performance & app thinning
iOS 10 10.0 September 2016 Functional redesign & new APIs
iOS 11 (?) 11.0 September 2017 (?) Massive revamp expected for 10th anniversary

Android Version History:

Code name
Version
Release date
Notable Features
N/A 1.0 September 23, 2008 First release with Android Market & Google Apps
1.1 February 9, 2009
Cupcake 1.5 April 27, 2009 Widgets & custom keyboards
Donut 1.6 September 15, 2009 Speech synthesis & gestures
Eclair 2.0 – 2.1 October 26, 2009 Improved user experience and performance
Froyo 2.2 – 2.2.3 May 20, 2010 V8 Engine & push nofitications
Gingerbread 2.3 – 2.3.7 December 6, 2010 NFC and sensor support
Honeycomb 3.0 – 3.2.6 February 22, 2011 Only for tablets, new Holo user interface
Ice Cream Sandwich 4.0 – 4.0.4 October 18, 2011 Holo interface & soft buttons for phones
Jelly Bean 4.1 – 4.3.1 July 9, 2012 Improved performance & Bluetooth LE
KitKat 4.4 – 4.4.4 October 31, 2013 New APIs & wearable extensions
Lollipop 5.0 – 5.1.1 November 12, 2014 Material design & runtime replacement
Marshmallow 6.0 – 6.0.1 October 5, 2015 Individual permissions & fingerprint scanning
Nougat 7.0-7.1 September 2016 Multiwindow support & Google Assistant

 

Just for compatibility with new iOS and Android version and devices, all mobile apps require constant maintenance and that’s just the beginning.

As we always emphasize, your users are not comparing your apps to of your competitors but to the likes of Facebook and Twitter, which are usually used more often than any other app. Therefore, the users tend to expect the same level of smoothness and user experience from any app and even the smallest issue may discourage them using it.

Moreover, users are always requesting more and more features from an app along with an improved user experience. It doesn’t matter if it’s a B2C, B2B or B2E app.

Per our interviews with enterprises, 80% of the initial development cost is an expected value for the yearly maintenance cost of a mobile app. When you consider all the factors outlined above, this figure can even be considered low.

However, deciding not to develop mobile apps and sticking with web alternatives with an inferior experience is not an option. In today’s world, digital transformation is unavoidable for any enterprise and mobile transformation, which consists of mobile app development, has a crucial role in digitalization.

Here are few recommendations to alleviate this issue:

  • Focus on quick wins with mobile apps.
  • Start with small, potentially disposable apps and build on them.
  • Never underestimate the pace of change. Redeveloping an old app with new technologies can be more productive than maintaining it.
  • And the last, but not the least, take advantage of platforms like Smartface, which reduces fragmentation and increases productivity by enabling development of native iOS and Android apps only with JavaScript knowledge and maintain their lifecycle end-to-end. Let these platforms worry about fragmentation, app updates and management so that you can focus on your core business.

To facilitate mobile transformation, Smartface Cloud enables you to:

  • Develop mobile apps fully in the cloud without worrying about development environment (Xcode, Android Studio) updates.
  • Share apps with testers and internal users directly from the cloud and manage the app versions from a single dashboard.
  • To build your apps without the need for a Mac
  • Distribute your apps to the end users using a single link, without worrying about device fragmentation in the field
  • Update your apps remotely with hot deployment to always deliver the latest and the best user experience

Experience Smartface Cloud at https://smartface.io/cloud and see how you can develop and manage your mobile apps in the best and most productive way possible in the fast-moving world of mobility.

 

smartface-cloud-ide-debugger

Wireless Mobile App Debugging with Smartface Cloud IDE

While Smartface Cloud is more than just about development with the mobile app lifecycle management features, the Cloud IDE is one of the most notable parts of the Smartface Cloud platform.

It is a full-featured development environment that runs in the cloud with unique features like easy and powerful collaboration similar to online document editing for native iOS and Android development.

Smartface Cloud Development Module uses the power of the cloud to its fullest, while providing the features that you came to expect from any development environment. As one of the most important features that developers cannot live without is debugging, Smartface Cloud IDE also comes with a debugger.

In Smartface debugger, the advantages of cloud and JavaScript is utilized to provide you with a convenient, flexible and wireless debugging experience. You can use the debugging panel on the right or just set a breakpoint to turn on debug mode for your app during the “Run on Device” process.

Just like a regular debugger, you can use breakpoints, step controls and watches. Moreover, call stacks and immediate JavaScript code injection is supported with Smartface Cloud IDE debugging. All operations are done wirelessly, directly from the cloud to your mobile device.

Below is a quick demonstration of the debugging features in Smartface Cloud:

 

For more information on debugging you can refer to the Smartface Cloud Application Debugging Guide.

You can visit https://cloud.smartface.io and try the cloud debugger yourself. With the Cloud IDE, you can instantly start developing native iOS and Android apps in the cloud, on any operating system.

The future of mobile development awaits you (wireless debugger included).

 

td

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 https://cloud.smartface.io

 

cloud-ide

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 https://cloud.smartface.io

smartface-cloud-single-link-distribution

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 https://cloud.smartface.io

 

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:
https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html

 

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:
https://developer.android.com/training/basics/intents/index.html

 

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:
https://smartface.atlassian.net/wiki/display/GUIDE/Inter-app+communication%2C+URL+Schemes+and+Intents

 

smartface_cloud_enterprise_mobility

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 https://cloud.smartface.io 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 https://smf.to/app (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 https://cloud.smartface.io

Happy mobility,

Smartface Team.

blog1

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!

salesforces_with_smartface

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.

native

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