10 Tips for Remote Working for Software Development Teams (whether on a Daily Basis or in a State of Emergency)

As the COVID-19 or widely known as the Coronavirus is spreading around the world, more and more companies of any size and industry have no choice but to have their employees work remotely and preferably from home, sometimes even mandated by the governments themselves.

Compared to the state institutions or the manufacturing industry per se, the tech industry looks better equipped and more acquainted with remote working; but things are not as they seem. Especially in software development, the teamwork and collaboration are so crucial that many teams are specifically conceived for working together onsite.

Although the new generation of collaboration tools are working to alleviate the burden on physical presence, the core tools of software engineers have not yet caught up except a few innovative collaborative coding tools.

There are many technology start-ups as well as enterprises who successfully maintain a work from home culture with multi-location teams across geographies and even different time zones. Here are some tips as a guide to a successful telecommuting for software development teams, regardless of their technology stack.

 

1. Embrace the cultural shift

The current state of things regarding the virus outbreak is indeed unpleasant and the safety and the wellbeing of the employees overweighs any biases or concerns regarding remote working.

Even under normal circumstances, remote working has a positive impact on the wellbeing of the employees, which are usually overlooked.

Of course, the shift does not happen just with the employees. The working environment is as crucial, so it also requires a shift in the technologies being used. In this sense, this is also an as an opportunity to realize the actual benefits of working in the cloud. Assess if and how you can shift the working environment to the cloud with the next generation solutions.

 

2. Overcome the negative bias about remote employees

There is a bias the employees will work less efficiently remotely. In certain industries such as manufacturing, that may be more applicable, but in the tech industry, the employees can be as productive as onsite with the right tools.

Remote presence tools such as chat and videoconferencing has been evolving for remote work from the cloud and now it is time for the core tools to follow.

Smartface Cloud IDE is one of the first of its kind to provide a full-featured Cloud IDE for mobile development and any other compatible technology stack such as JavaScript, TypeScript, Java, and .NET. It is not just a “browser-based editor”, but instead a cloud-powered development environment that employees can use remotely just as they would onsite.

 

3. Set up a platform-agnostic work environment

Due to the current circumstances, many enterprises are being obliged to take emergency actions to mandate working from home. However, the employees may be constrained with infrastructure limitations.

For instance, even if the employees are allowed to use their personal devices at home for work, their devices may be unsuitable due to the hardware or the software. (e.g. iOS development requires a Mac no matter what.)

The next generation cloud tools like the Smartface Platform aim to eliminate this dependency. Smartface Cloud IDE and Smartface Cloud CI/CD platform are fully independent from hardware and software. You can develop, build and deploy mobile apps anywhere and it works fine on low-end hardware as well.

Another benefit is the reduced battery consumption for the remote client. As the heavy lifting is offloaded to the cloud, the client consumes much less resources just to run the web browser instead of a heavy set of processes for an IDE.

Mobile development has one additional concern of running apps on mobile devices. When working onsite, the employees can utilize a common device pool, but working remotely requires an alternative solution to run mobile apps on multiple devices.

For this reason, we developed Smartface Preview on Device module. You can test your mobile apps just in your browser on multiple devices, no downloads or installation needed.

 

4. Utilize highly available and scalable solutions

Many enterprises provide ways of accessing the internal resources usually through the combination of VPN and remote desktop. However, both of these technologies have significant scaling challenges if the enterprises haven’t invested sufficiently on the infrastructure.

Remote desktop requires a steady and high bandwidth connection and even the slightest delay has a highly negative impact on the experience. When combined with VPN, the problem may be  augmented, since a high-performance VPN requires a high capacity network infrastructure. In cases where all employees are working remotely just as we are facing now, the combination of VPN and remote desktop may not be up to the task.

Even if the VPN infrastructure is sufficient, there are challenges in configuration of the local clients and certain experience issues while taking over the full network traffic of the client.

Smartface Cloud IDE provides a much better experience than a remote desktop solution, with less dependency on the network stability and less bandwidth requirements. Moreover, the VPN can be handled on the server-side, putting less strain on the network.

Smartface Cloud IDE is a cloud-native solution and with its Kubernetes-based structure, it is highly scalable and available. All employees can work remotely with the same performance they can expect onsite.

 

5. Utilize collaborative solutions

Nowadays, most enterprises are using either Google Gsuite or Microsoft Office 365 for enterprise collaboration. For software development teams, tools like Atlassian JIRA and Slack are also following suit.

With remote working getting more prominent, these suites are getting more indispensable to remote access to resources as well as sharing and collaboration.

Smartface Cloud IDE enables enterprises to realize the benefits of the cloud collaboration for coding. Just like a Google Doc, developers can share their workspaces with others and work on the same project as if they are next to each other.

 

6. Implement strict guidelines and a structure

Another challenge of remote working is standardization. Especially, if the employees are using their own devices, it is highly problematic to manage a wide range of points from licenses to tooling standards.

Smartface Cloud IDE overcomes these issues with the pre-configured workspaces built for the enterprise specifications. The Cloud IDE can be used for many different technology stacks, including but not limited to JavaScript, Java and .NET.

The enterprise can prepare a specific workspace image and the all employees will have the exact same workspace when they load the Cloud IDE, regardless from where they access it.

 

7. Don’t let the tooling limit the flexibility

One thing that employees struggle when working from home is their personal setup if they are working on different devices. This may cause a loss in productivity from different aspects.

Smartface Cloud IDE provides the best of both worlds for this purpose. The developers can access the same environment just as they left it from any device. This minimizes the adaptation time and ensures that the developers are in their comfort zones where they are the most productive.

While Smartface Cloud IDE comes with pre-configured workspaces for the convenience of the enterprise, the IDE itself is fully customizable for the convenience of the developer. It is a full-featured IDE that matches desktop IDEs with features and experience.

 

8. Eliminate the pressure of demonstration of work

When working remotely, there is usually an untold pressure for the need to demonstrate that the employee is indeed working. Similarly, the supervisor is also concerned if the employee goes silent for a while.

Even the thought of this pressure distracts employees and reduces productivity. It is further intensified when the employees start focusing on “showing off work” instead of doing the actual work.

Smartface Cloud eliminates these concerns by providing various usage reports based on the Cloud IDE and CI/CD activities. The developers can focus on their work and the work shows itself with detailed reports.

 

9. Monitor, review and improve

Monitoring the productivity is not only crucial for the supervisors, but it is also important for establishing the remote work culture within the enterprise. The productivity numbers will help you see if there are any improvement areas to increase the productivity.

Smartface Cloud IDE reporting and auditing tools helps you make improvement decisions backed with numbers and if these decisions are related with technical improvements and changes, you can simply deploy a new IDE image and the updated IDE image will be available for everyone when they next launch their environment.

 

10. Realize the benefits and make the changes permanent

Whether through the circumstances or through a deliberate choice, you will have worked your way through the challenges of remote working with the help of best-in-class solutions like the Smartface Platform and you will be realizing the benefits.

  • The boundaries are eliminated, the employees are still productive, and their work satisfaction increased.
  • You can apply your learnings with employees to work with contractors or the third parties remotely as well.
  • The supervisors still have the same level of visibility, if not more, with the help of detailed reports.
  • Even if the nature of the business demands onsite work, you now have a backup option in case of emergencies.

 

The cloud-native architecture of the Smartface Platform for mobile development and CI/CD enables you to move your enterprise to the cloud with minimal dependency on onsite infrastructure for the shift to a remote working culture.

Smartface Cloud Platform is a fully cloud-based, cloud native, continuously integrated platform with multi-channel app development & lifecycle management and middleware & API management.

With Smartface, it is possible to develop native iOS/Android mobile and single-page web applications and mobile backends just with JavaScript/TypeScript knowledge and centrally manage all enterprise mobility and frontend management processes. The platform can run on compatible Kubernetes or OpenShift environments for the maximum flexibility.

You can get in touch with us for more information about the Smartface Platform.

The 5 Mobile App Distribution Methods and Channels in the Mobile App Lifecycle

We are always talking about the advantages of mobility; however, there is one downside that we are so used to that we tend to overlook. In terms of app delivery and updates, mobile platforms forced us to go back using the obsolete method of binary distribution. Especially on iOS, there are a number of restrictions that makes deployment complicated.

For this reason, there are a number of different ways of distributing apps for different purposes. Let’s examine each mobile application distribution use case in detail:

 

1. Distribution During Development

  • Used by the developers that are actively working on the app.
  • It may be necessary to update the app frequently.
  • The main issue here is to keep the deployment times as short as possible not to impede the development process.
  • For this purpose, Apple requires the use of an iOS Development certificate.

 

With the Smartface Development Module

  • You don’t need to recompile your app every time you make an update.
  • You can deploy your application remotely and when you make an update in the code, only the delta code will be downloaded just in a few seconds.
  • You don’t need a Mac or a development certificate to test your app during development.

 

2. Distribution for Prereleases

  • Used for distribution to a small group of specific devices and users, primarily for testing or evaluation of the app.
  • The main issue here is the keeping track of versions and the testers both for iOS and Android. The prerelease distribution of an app must be tightly controlled.
  • For this purpose, Apple requires the use of “Ad Hoc” certificates, which allows distribution to a predefined set of devices. For enterprises, the use of an iOS Enterprise certificate is also applicable, which removes this device restriction.
  • One additional, usually overlooked but important concern is that after testing, the app needs to be resigned with production certificates. This requires going back to the development phase for configuration changes and recompilation. Since this is a manual process, it creates a risk with missing or unspecified changes after testing.

 

With the Smartface Testing Module

  • You get a cross-platform testing distribution environment. No need for separate tools for iOS and Android.
  • You can share the app with individual testers and testing teams and keep track of each tester.
  • You can keep a full archive of binaries of all versions previously shared.
  • You can resign the application for production without going back to development so that you can make sure that the tested application is released to production without any additional changes.

For more information, you can visit https://developer.smartface.io/docs/testing-distribution

 

3. Distribution for In-House Enterprise Use

  • Used for distribution to internal stakeholders such as employees or contractors.
  • For this purpose, Apple requires the use of Enterprise certificates for app distribution without going through the App Store.
  • Apple requires that any external party other than the employees must have a binding, protective agreement for internal use of the application. Even if it is a B2B app, the customers still cannot use the app. The only exception is the on-premise or supervised use of the app by the customers in a company-owned device (e.g. in a branch).
  • The main issue here is to manage and monitor the access of to the application in an ongoing manner so that only permitted users have access (e.g. if an employee leaves the company, the access should be cut off immediately).
  • The reason for these restrictions is that iOS Enterprise certificates allow distribution of iOS apps not reviewed by Apple. If these rules are broken (e.g. the app is publicly released, or the certificate is stolen), Apple reserves the right to revoke the certificate or even pursue further action. This makes it crucial to distribute the app with proper methods.
  • Another concern is the prevention of the leaking of the enterprise certificate. Such leaked or stolen certificates are usually used to publish and distribute apps with malicious intent and Apple has no tolerance in such cases.
  • In the same manner, if an Android keystore is obtained somehow, it is possible to create impostor malicious applications. For this reason, keeping the signing identities secure is as important as keeping the application secure.

 

With the Smartface Enterprise App Store and Cloud Build Modules

  • You get a cross-platform Enterprise App Store that can be integrated with any identity management system through LDAP, ADFS or oAuth so that you can ensure restricted access compliant with Apple’s policies.
  • No MDM enrollment needed, so any employee or stakeholder can use it with their own devices instantly.
  • You have reports of which users are downloading which apps so that you can have full control over app distribution.
  • With the Cloud Build module, you can restrict access to the signing identities, protecting them from unauthorized downloads while allowing developers to use them for publishing applications.

For more information, you can visit https://smartface.io/byod-mdm-mam-enterprise-app-store/

 

4. Distribution for Public App Stores

  • Used for distribution to end users through the App Store or Google Play.
  • For this purpose, Apple requires the use of public distribution certificates.
  • For the App Store, the apps must be uploaded from a Mac in a specified way and then they are submitted for review before going live and it may take a couple of days, if not more.
  • For Google Play, there is a reactive review process, but still it may take a couple of hours for the app to be published.

 

With the Smartface Store Submission and Cloud Build Modules

  • You can upload your binaries directly from Smartface Cloud to the public app stores, there is no need for a Mac and it allows segregation of duties as the application developer and uploader roles can be separated.
  • With the Cloud Build module, you can restrict access to the signing identities, protecting them from unauthorized downloads while allowing developers to use them for publishing applications.

For more information, you can visit https://developer.smartface.io/docs/submit-to-stores

 

5. Distribution for Application Updates

Standard way of updating apps without Smartface

  • Since the application updates are carried out through application binaries, this is essentially the same with enterprise or public distribution processes.
  • Regardless of the scope of the update, the full binary must be resubmitted to the App Store and Google Play, going through the same review process every time.
  • After the update is published, the users will be prompted that an update is available. In most cases, the app must be downloaded in full and reinstalled over the current installation.
  • It is not possible to force users to download and update the app and multiple versions of an app will be present in the field, causing backend compatibility complexities.
  • Some web-based solutions such as hybrid apps try to overcome this issue, but in return, they sacrifice the native user experience, features and performance no matter how close they are trying to be “like native”.

 

With the Smartface Remote App Update Module

  • Actual native apps can be updated remotely with hot deployment.
  • As long as you comply with Apple’s policies, almost any kind of change can be made in the app remotely.
  • Especially for small updates, there is no need to go through the review processes.
  • Updates can be forced and deployed instantly so that critical fixes can be applied without any complexities and backend compatibility issues can be eliminated.

For more information, you can visit https://smartface.io/rau

 

With Smartface Cloud, you get a fully integrated mobile application and lifecycle management platform, eliminating the complexities of distribution in the full lifecycle of a mobile app from development to production.

What is NoOps and How to Achieve NoOps in Mobile App Development?

As enterprises are embracing DevOps and realizing its benefits, especially in their well-established software stacks, they are challenged with another question with the increasing prominence of DevOps in the cloud applications supported with automation.

The question can be expressed as “why don’t we fully streamline the DevOps processes even further since it is more or less consist of tasks in a highly structured flow?”

The primary hurdle is the presence of physical hardware that requires maintenance in any case, but moving to the cloud and taking advantage of SaaS (Software as a Service) or PaaS (Platform as a Service) products eliminates this layer of complexity and automated DevOps starts to make more sense.

And this concept actually has a recently coined name of “NoOps”, which is gaining foothold in parallel with the cloud adoption.

 

What is NoOps?

In the simplest way, NoOps can be considered as integrating and automating (wherever possible) DevOps processes. In this sense, it is perceived as an alternative to DevOps or sometimes even as “DevOps” killer, but, it is more like an extension and further streamlining of the DevOps concept.

The term is first identified by Forrester and they emphasize that

“NoOps means that application developers will never have to speak with an operations professional again.”

Indeed, when NoOps is implemented and used in the right way and in the right conditions, it is as beneficial and productive as the name suggests.

However, it requires the right tools and preferably a full cloud presence and it should not be considered as a silver bullet for DevOps needs.

With the advantage of the cloud, NoOps eliminates the hassle of integration and upload/download operations.

 

DevOps vs. NoOps

There are certain fields where you have an established DevOps culture and an “Ops” team, such as maintaining critical backend applications, which may include dealing with locally installed hardware and software.

However, in emerging technologies such as mobility, it is not as easy as to find and maintain internal resources for DevOps or you might not have the operations experience that you have already gained in backend applications for decades.

 

 

DevOps in Enterprise Mobility

Due to its nature, mobility has its own DevOps challenges:

  • Requiring a binary to be installed on mobile devices
  • Device and operating system fragmentation making coding, testing and distribution processes demanding
  • Binary distribution regulations to mobile devices
  • Strict app signing requirements
  • Issues with keeping signing identities safe, secure and accessible
  • Complex app signing and submission processes that force the use of specific hardware and software.
  • Lengthy and complex store submission and review processes causing issues in maintenance of the apps after production

For this reason, we highlight the fact that mobile app development is only the tip of the iceberg and the lifecycle management of mobile apps (the “Ops” part) is as important as the development itself, if not more.

The Typical Mobile App Lifecycle

 

Switching From DevOps to NoOps in Mobile App Development

Achieving NoOps in mobile app development is more difficult but also more important than many other fields due to the problems outlined in the previous section.

For a true NoOps approach in mobility, it is important to be able to prevent the DevOps chain breaking from development to production, which can be achieved with a fully integrated mobility platform in the cloud.

We developed Smartface Cloud for enterprises to embrace the NoOps approach in enterprise mobility.

You can consider Smartface like an automated production line, where everything is transferred automatically between stations.

Smartface Cloud is a next generation NoOps platform with an end-to-end integrated cloud structure with development, testing, deployment, distribution and management.

What is the Difference Between a Platform and a Framework?

In today’s everchanging world of technology, we have a very fluid terminology, where certain words and phrases tend to overlap, and the same word may have multiple meanings in different contexts.

We usually emphasize that one of the main differences of Smartface Cloud from similar products is that

Smartface Cloud is a full-featured “mobile app development and lifecycle management platform”, not just another “mobile app development framework”.

This is usually followed by this question; what is the advantage of being a platform instead of a framework? Basically, a platform is a much more comprehensive, usually a multipurpose product and may actually host a framework in itself along with other tools. When you use a framework, you may need to form your own “platform-like” environment by combining various tools for various needs; whereas in a platform, these needs can be met from a single point and in a tightly integrated manner, increasing productivity and making it more suitable for enterprises.

Let’s check the formal definitions for clarification:

 

What is a Platform?

In traditional dictionaries, the definition of the platform is simplified down to “operating systems and/or hardware” and this is correct up to a point. We consider iOS and Android as “platforms” for which we develop mobile apps and from the same perspective, Smartface is a “cross-platform” native mobile application development platform, but this definition itself raises another question about being a “cross-platform platform”.

This is due to the fact that the changes in technology is much faster than the changes in the language. When we delve deeper, we see that Wikipedia classifies the platform concept under the “Computing Platform” article. In this article, we see the description “Software frameworks that provide ready-made functionality” as one of the items that a platform may include.

This sheds some light on our discussion in the previous section but raises yet another question.

 

What is a Framework?

Again referencing Wikipedia, we see that a framework is defined as “an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework provides a standard way to build and deploy applications.”

Therefore, we can incur that a framework is more like a tool on which you can develop software in a more organized manner and a framework can also be a part of a platform. For instance, Smartface Cloud Platform uses Smartface Native Framework to produce native iOS and Android apps.

 

Then, what is the advantage of using a Development Platform instead of a Development Framework?

With a framework, you only get the underlying technology for development (e.g. a language standard such as JavaScript along with an SDK), usually a packager/compiler (e.g. a command-line tool) and sometimes a development environment. Although some frameworks may offer helper tools, that’s usually all. A framework is more like a facilitator than a complete solution. For instance, to use a mobile application development framework to build and deploy mobile apps:

  • You may need to download the framework itself along with Android Studio and Xcode so that it supports the targeted operating platforms.
  • If there is an update, you may need to update all the components and dependencies separately.
  • To build an app, you need to first package it in the framework and then compile it separately in the respective platform tool for iOS and Android.
  • For the rest of the mobile application lifecycle such as testing and distribution, you need to resort to third party tools, all of which may require separate configuration efforts.
  • If there are no integration between these tools, you may need to do uploads and downloads all the time or build your own.
  • If the tools don’t have cross-platform support, you may need to do everything separately for iOS and Android twice.

 

On the other hand, if you use a mobile application development platform which also includes a mobile application framework, everything will be much easier, productive, faster and less error prone.

In that sense, a mobile application development platform is a complete solution for software development with an integrated suite of tools and frameworks.

 

 

For instance, Smartface Cloud is a fully integrated end-to-end mobile application development and lifecycle management platform and offers much more than a framework with:

 

The only Cloud IDE for cross-platform native development:

  • Design and develop native iOS and Android apps just with JavaScript knowledge with a full WYSIWYG editor and a cloud IDE right in your browser. No downloads or configuration needed.
  • Automatically updated environment, no need to maintain third-party tools like Xcode or Android Studio.
  • No dependency on a single PC, can be accessible from anywhere from any device.

 

Testing Distribution:

  • Publish your apps from development to testing, no binary operations needed.
  • Distribute apps internally to testers and teams and keep track of downloads.
  • Full version history archive with all binaries.
  • Re-sign applications for production without going back and forth to the development module.

 

Cloud Signing Identity Management:

  • No need for a Mac or any other tools to generate iOS and Android signing identities.
  • Keep the iOS certificates and Android keystores secure and in a centralized location.
  • No need for keeping local copies and sharing certificate files.

 

Cloud iOS and Android App Build:

  • Direct APK and IPA output from centralized signing identities. No need for a Mac and no dependency on specific environments.
  • Apps can be built with any type of certificate.
  • Full individual build history for tracking and auditing.

 

Submission to Public Stores:

  • Publish your apps from development or from testing to public store submission, no binary operations needed.
  • Ability to upload apps directly to the App Store and Google Play.
  • No Mac needed and no need for any download/upload processes.

 

Single Link Distribution for Marketing and Deep Linking:

  • Single, shortened link and QR Code for multiplatform public store URLs with URL scheme and intent support and application install detection for deep linking.

 

Enrollment-free Enterprise App Store:

  • Publish your apps from development or from testing to the enterprise app store, no binary operations needed.
  • In-house, enterprise-specific, customizable app store to provide access to in-house apps (B2E, B2B) with internal authentication (LDAP, OAuth) and custom domain support. Supports all types of apps.
  • BYOD-friendly. No need for enrollment to MDM.
  • General and individual reports about users and apps.

 

Remote App Update:

  • Live update for native apps with hot deployment.
  • No need for App Store review and complete app updates.
  • Always deliver the latest and the best experience.

 

Team Management with Notification Center:

  • Module-based team and role management. Segregation of duties for separating roles like development, DevOps and distribution, etc. for compliance and control
  • Email notifications for full control over each step of the mobile application lifecycle for increased collaboration and agility. Keep track of teams and actions.

 

If an enterprise prefers to use different frameworks for all of these features, the enterprise may also need to form a large technology stack that is required to be maintained and integrated manually. However, this is not viable and productive for most enterprises and this is the reason why a platform is much different than a framework.

A full-featured mobile application development platform like Smartface offers much more than just a development framework and minimizes the manual operations and streamlines the enterprise mobility processes.

How to Solve The Dilemma of MDM (Mobile Device Management) in BYOD (Bring Your Own Device) Cases Using MAM (Mobile App Management)

As mobile devices get more capable and affordable, enterprises are realizing the benefits of enterprise mobility such as agility and productivity intensively.

However, mobility introduces a serious burden on enterprises from security, management as well as the cost perspective.

Previously, only some employees were using company-issued notebooks, which are well-protected with things like data encryption, domain enrollment and VPN. Their only purpose was work, and the mobility of the devices were limited, making is less prone to accidents or theft.

However, with enterprise mobility, there is an ongoing mind shift not just regarding the use of devices but also the management of the devices.

Unlike company-issued notebooks, providing mobile devices to employees do not work in all cases for certain reasons.

Such devices may not be embraced as much as personal devices due to reasons like preference over iOS over Android or being not comfortable with the form factor. For this reason, they might be more prone to accidents and losses. Usually, these devices are provided along with a company phone line, employees might be forced to carry a second device for the personal phone line. This is something burdensome for most employees and it may make devices to be disregarded with as little use as possible.

For this reason, Bring Your Own Device (BYOD) or Choose Your Own Device (CYOD) policies are emerging so that the benefits of the enterprise mobility initiatives can reach its maximum potential.

 

In its latest Predicts 2018: Mobile, Endpoint and Wearable Computing Strategies report, Gartner indicates that

By 2022, more than 75% of smartphones used in the enterprise will be bring your own device (BYOD), forcing a migration from device-centric management to app- and data-centric management. (Source: Gartner)

 

However, another concern arises in such cases, which is keeping the company data secure as many things can go negatively with personal devices on different levels, such as malware, theft, intentionally malicious acts or accidents, etc.

This is where Mobile Device Management (MDM) solutions first come to one’s mind. In theory, it is a highly viable solution for security issues with things like

  • Remote data access for all types of stored data including but not limited to apps, photos and messages
  • Remote data wipe
  • Real-time location tracking
  • Application and network restrictions
  • Screenshot capture, etc.

These policies seemingly solve the downsides of the BYOD policies.

In practice though, things do not work as expected, not from a technical perspective but from a behavioral perspective.

Only a handful users get to enroll their personal devices to MDM due to the very nature of the solution. The enterprise may provide all guarantees that they will not use MDM invasively in personal devices, but once a user gets their device enrolled, there is to turning back. The enterprise can apply new policies anytime, which actually means that the enterprise is taking ownership of the personal device.

Moreover, in some cases, the enterprise mobile applications do not contain sensitive data and the only reason MDM is used is for in-house distribution, which is an over-costly solution for a simple need.

In B2B cases, where the enterprise cannot force policies, MDM is not even an option for application distribution.

The question then becomes, how can an enterprise ensure proper distribution and security of enterprise apps without crippling enterprise mobility efforts or alienating users.

This is where MDM enrollment-free Mobile Application Management (MAM) solutions come in play. Just like how cross-platform native mobile development approaches provide best of both worlds in terms of productivity and quality, MAM solutions provide the highest level of security without the invasion of personal privacy.

MAM solutions provide similar security features that MDM solutions provide only at an application level with features like

  • Application data encryption and leak protection
  • Remote application data wipe
  • Root/jailbreak detection
  • Per-app VPN
  • Enrollment-free enterprise app store and more

 

With its “no-ops” approach, Smartface Cloud provides an end-to-end solution for mobile app development and mobile app management. Smartface Cloud lifecycle management modules also support apps that are not developed with Smartface.

You can use Smartface Cloud to develop native iOS and Android apps just with JavaScript and then manage these applications in the same environment.

As for the lifecycle, Smartface Enterprise App Store eliminates the need for expensive, invasive and arduous process of MDM enrollment for internal app distribution for B2B or B2E for any type of mobile app.

Just in a few minutes, you can have an enterprise app store up and running with features like

  • Customizable storefront branding
  • Custom URL
  • Ability to distribute any type of enterprise IPA/APK
  • Ability to redirect users to a custom URL
  • LDAP (Active Directory) and OAuth support for user authentication
  • Detailed user and device reports

Enjoy the comfort of enterprise mobility in the cloud with Smartface.

How to Create a Synergy Between Conversational Interfaces (Chatbots) with Touch Interfaces (Mobile Apps) for the Best User Experience

Although chatbots and virtual personal assistants are getting more and more prominent each day by providing a new channel for certain types of processes; it should be noted that just like any other interaction channel, they are just means to an end, which is usually about interacting with the user in the most productive and mutually beneficial way.

For this reason, chatbots should not be considered as inferior or superior to the other channels. Each interaction point, whether it is a web site, a mobile app, a call center agent or a chatbot, has advantages and disadvantages and works best in specific use cases.

In that sense, chatbots are more suited to things like:

  • Conversation-oriented processes, replacing human agents in the first line of contact
  • Responding to frequent, small and automatable tasks
  • Structured and well-defined processes usually followed in a specific order and/or specific inputs
  • Running decision trees with finite and definable options

These processes are more prevalent in B2C use cases and this makes chatbots more suitable for B2C applications in terms productivity and positive business impact. They are usually a part of a corporate website or provided through public chatbot channels such as Facebook Messenger.

 

Although there are even more use cases in B2E/B2B space for mobility, chatbots may not be suitable for most due to the following limitations:

  • Offline operations, as chatbots require an always-on connection.
  • Execution of complex processes that require different types of inputs, not just text entry; since the means of interacting with chatbots are limited compared to touch interfaces.
  • Difficult-to-predict use cases, which have a wide array of branching steps, which require high efforts in chatbot development.
  • Quick data entry such as order collection, in which interaction with chatbots may slow down the process.
  • Processes which require one-handed use of the mobile device, where typing full words and sentences is difficult.
  • Public locations where speech to text is not viable.
  • The requirement of a private and in-house distributed client since using channels like Facebook would not be viable for internal enterprise operations. However, if a mobile app only contains the chatbot itself, then it would be a missed opportunity in terms of enterprise mobility as more services can be provided in a mobile app.

 

Therefore, especially for B2B/B2E, where using public channels is not an option, the decision is not about choosing between a mobile app or a chatbot, it is about finding the right combination of conversational and touch interfaces in a mobile app.

As an example, in an employee HR self-service mobile app, the leave request process can be handled with a chatbot, reducing it to a single step instead of selecting options from pickers to define the scope of the leave request. In the same app, the expense request process can be handled with mobile interactions like image upload or location detection.

In more complex apps, chatbots can be used for navigation, even though everything else is done with touch interactions. Similar to the IVR (interactive voice response) mechanism used in call centers, the user can just type in or tell the function to be accessed and then the related screen can be displayed with further steps to be completed through the touch interface.

For developing fully native mobile apps with chatbot capabilities for iOS and Android, Smartface SmartApps offer a convenient solution. These are open-source full-featured enterprise mobile apps which you can use freely and extend as you wish. A chatbot client is also available in the SmartApps portfolio. You can use the native Smartface Chatbot Client in any mobile app.

In a cherry-pick manner, you can combine different functionalities from different SmartApps in a single app, including the chatbot client to provide your users the best combination of touch and conversational interfaces.

For more information on Smartface SmartApps and the Smartface Chatbot Client, you can visit https://smartface.io/smartapps

Smartface Chatbot Client for In-House Enterprise Chatbots

The future of mobility is inevitably moving towards artificial intelligence with the rise of virtual personal assistants and chatbots. For certain interactions and processes, it is more convenient just to use natural language instead of going through hoops in a mobile device.

Before chatbots, it was not possible to eliminate human interaction for some processes, but now chatbots are increasingly becoming the first point of interaction and falling back to a human only in complex cases.

Chatbots for external customers (B2C) can be served over public chat channels such as Facebook Messenger, however not all chatbots can be served through public channels due to issues like privacy and security.

For enterprise use cases (B2B or B2E), it is even more complicated. It wouldn’t be viable for an enterprise to provide services to its employees or business partners through Facebook or a similar messaging platform, which may look unprofessional and pose security issues.

For this purpose, there is a strong need for an alternative private channel to serve chatbots and the newest app of the open source Smartface accelerator SmartApps, Chatbot Client enables enterprises to serve internal chatbots.

      

Smartface Chatbot Client is a fully native chat application, so it can work with any type of chatbot use case with advanced interactions such as multiple-choice questions or native features like maps and directions.

The app is integrated with Oracle Mobile Cloud Enterprise (Oracle Mobile Cloud Service and Chatbot Service) and any Oracle-based chatbot can be used in the client easily using Webhooks.

The app can be distributed to internal users through Smartface Enterprise App Store, fully eliminating the need to expose the chatbot or the application to the public. Everything can be totally private and internal.

Moreover, the enterprises can include this client in their other internal applications (e.g. an HR self-service chatbot in an HR self-service application) for maximum flexibility and convenience.

For more information on Smartface SmartApps and Smartface Chatbot Client, you can visit https://smartface.io/smartapps

Accelerate your mobile transformation with Smartface Cloud, enterprise mobility in the cloud.

Using Oracle JET (JavaScript Extension Toolkit) in Smartface

JavaScript is becoming a de facto standard in enterprise settings, especially in front-end applications.

For this reason, Smartface allows development of native iOS and Android applications just with JavaScript so that both web and mobile frontend development operations can be handled with a single resource, increasing productivity.

Similarly, Oracle offers Oracle JavaScript Extension Toolkit (Oracle JET) as a complete, modular and open-source JavaScript development toolkit designed to help developers build engaging user interfaces that interact with enterprise systems.

Smartface brings the power of the Oracle JET framework to native apps with the Smartface Oracle JET extension.

This unique offering combines the high quality and the performance of native apps with the flexibility and the modularity of Oracle JET.

  • Oracle JET is now embedded in Smartface as the preferred data visualization tool.
    • You can create visually stunning charts in your mobile apps by using Oracle JET Charts.
    • Oracle JET is a powerful front-end tool. The charts provided are fast, responsive and fully functional. Smartface recommends using Oracle JET to display charts in a native app without sacrificing native functionality.
  • Smartface enables the interaction of Oracle JET components with native components.
    • Oracle JET in mobile apps is enhanced with 100% native mobile platform access.
    • You can get data from any native resource such as web service connections or user input and display in an Oracle JET component.
  • Instantly start mobile development with Smartface and Oracle JET in the cloud.
    • No need for complicated setup processes that are mandatory for other mobile development environments.
    • Development is fully independent from the hardware and the software. No Mac is needed to develop and deploy native iOS and Android apps.
  • JavaScript is sufficient for developing native apps with Smartface and Oracle JET.
    • A single JavaScript developer can use Oracle MCS, Smartface and Oracle JET to develop mobile applications end-to-end.
    • Gain high productivity with a unified development approach.
  • Oracle JET usage in Smartface is simple and plug and play.
    • Just in a few steps, you can add Oracle JET components in any mobile app.
    • You can just drag and drop certain Oracle JET components for a quick start.
  • Oracle JET support in Smartface allows you to share codebases between web and mobile.
    • You can reuse your current Oracle JET implementations in native apps.
    • Reduce maintenance and development costs with the Oracle JET and Smartface synergy.

You can visit the following link to get more information on how to use Oracle JET in Smartface:

https://developer.smartface.io/v1.1/docs/oracle-javascript-extension-toolkit-jet

 

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.

 

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).