MobileCaddy App Container Update

MobileCaddy apps run within a container which we call the “App Container”. This is the native application that your users install onto their devices from the App Store, Play Store or through your MDM solution. Our App Containers allow you to take advantage of the native capabilities of your user’s devices when writing hybrid Mobile Applications using tools such as Ionic and Angular. They also provide all of the tools needed for authentication and secure encrypted data storage.

Over the past years, we have continued to update and improve our App Containers to increase security, add features, fix issues, and maintain compatibility with the Salesforce platform. This post discusses an upcoming update we are planning to release which will mark the next stage and evolution of our mobile App Containers.

Why is this update needed?

Our App Containers use a variety of technologies such as Cordova and the Salesforce Mobile SDK (for our iOS and Android App Containers) and must also conform to the guidelines, requirements and policies set out by the OS Manufacturer’s stores. Towards the end of 2017 and throughout 2018, we realised that our current tech stack for the App Containers needed an overhaul to keep us secure, robust, up-to-date, and compliant. This meant moving faster than we can by using the Salesforce Mobile SDK. We needed our own Mobile SDK.

We are focusing on security and stability with the new App Containers with the aim to cause minimal impact to your existing Mobile Application codebase.

These changes will allow us to more rapidly test and target the latest versions of our dependencies to make sure that we can review and consume security and performance updates at a greater pace. With this comes some breaking changes for us (that will not affect your existing apps) and the need to create new solutions and technologies to provide the same App Container experience that you are used to. Architecture and proof-of-concept work began in late 2018 and is currently in progress.

What is the timeline for this update?

The rest of this article will give you an overview of the current status. Please keep in mind that any timelines are not fixed and we can not give an exact or estimate release date until closer to release. Items in each phase in the diagram below are not equal and may take varying amounts of time depending on their focus. We will endeavour to update the diagram below when new phases are completed and update this page when new information is available.

MCSDK Plan

As we get closer to testing and release, we hope to release more information regarding this update along with guidelines for any impact this may have to existing or in-development mobile applications.

Status Updates

This section will be updated as the project progresses or to notify of any changes.

Update 14 September 2020

iOS:

  • We are nearing the end of the build phase of the project and we are gearing up for the QA and stress testing phase.

  • Early OS version compatibility testing has begun

  • We expect to release Alpha builds to our QA within the coming few weeks

There are no current delays to the timeline from this point onwards, however as the iOS Build phase continues and feedback from internal testing and QA systems is gathered, we will continue to monitor the timeline and update this post if there are any changes.

Update 10 August 2020

iOS:

  • The build phase of the project continues and is making good progress.
  • Early builds of the iOS Second Generation container have passed early QA points for key features such as storage, syncing and offline caching capabilities.

There are no current delays to the timeline from this point onwards, however as the iOS Build phase continues and feedback from internal testing and QA systems is gathered, we will continue to monitor the timeline and update this post if there are any changes.

Update 8 July 2020

iOS:

  • The initial code migration phase of the iOS project has been completed and work has now begun on the main build phase. This will bring the iOS second-generation container up to feature parity with the Android second-generation container.

There are no current delays to the timeline from this point onwards, however as the iOS Build phase continues and feedback from internal testing and QA systems is gathered, we will continue to monitor the timeline and update this post if there are any changes.

Update 8 June 2020

This update also includes information from May and we apologise for the delay in updating this article. We expect the updates to this article to return to the normal monthly schedule.

Terminology Update:

We have changed the terminology that we used to refer to the updated App Containers.

Previously we referred to them as MobileCaddy SDK App Containers, MCSDK App Containers, Updated App Container, or containers who’s Base Build version is 2.0.0 or higher.

These will now be called Second Generation Containers, or 2GC for short.

Android:

  • The issue we reported around user logout and Dynamic Version upgrades was completed and has passed our internal tests and QA. This was a significant change to the container and has resulted in a more robust Dynamic Version upgrade process.
  • We have also improved the robustness of the container when working under poor network conditions.
  • We are now pleased to classify our Second Generation Containers as GA and can report successful deployments to the Google Play Store. As of the time of writing this article, new containers will be built with a Base Build version of 2.2.5 or higher.

iOS:

  • The iOS timeline has been delayed due to the work carried out on Android. Work has now re-commenced on the Code Migration phase of the project.

Update 8 April 2020

iOS:

  • Work on iOS has been delayed due to improvements and fixes required on the Android phase of the project

Android:

  • Testing has continued across the improvements and fixes detailed in the previous updates.
  • A new critical issue has been identified with authentication to the Salesforce platform where a user may be logged out during any page-based navigation (such as a Dynamic Version upgrade). A fix is being implemented at the moment and is expected to be delivered to QA and testing next week. Due to this being a critical issue, we have decided to postpone any releases or builds until this issue has been solved.

Update 5 March 2020

iOS:

  • Code Migration phase continues under development and is progressing as expected.

Android:

We have identified some issues with the MobileCaddy SDK for Android and areas of improvement that we feel should be addressed before we release any full GA MobileCaddy SDK App Containers. These changes are to increase robustness for the ever-changing and often unpredictable environment that the containers work in. The following list is currently either in-development or with our QA team for testing.

  • A regression issue was found affecting devices running Android 8 and 8.1. Regression testing that was scheduled in earlier phases of the project targeted Android 7, and currently-supported OS testing targeted Android 9 and 10 on which this issue was not present. The issue caused the App Container to fail the installation processes post-authentication with Salesforce. A fix has been identified and testing is to be scheduled.
  • An issue was detected when an App Container running the older Salesforce SDK updates to the new MobileCaddy SDK. The issue would cause authentication issues once the updated app was launched causing either a logout which the user would then not be able to log in again or result in a redirect loop through the Salesforce Connected App. A fix has been identified and is with our QA team for testing.
  • An improvement was identified with our systems that protect against environmental changes that could have an impact on running App Containers. This improvement will give administrators greater control and protection in the event that a Salesforce update, OS update, or other external change breaks an App Container.
  • An improvement was identified with the MobileCaddy SDK for Android that will allow for greater control to deal with any updates required to the App Container binary when deployed to a device. We have made the decision to delay the full release of the new App Containers until this functionality has been added.

These fixes and improvements to the Android App Containers will inevitably push back the timeline for the iOS phase of the App Container Update project and the full release of Android containers. We have not taken this decision lightly and it is in line with our policy to provide products that are of high quality, robust, and paranoid in a fast-moving mobile environment.

Update 7 February 2020

We have completed development of the new MobileCaddy SDK for Android and have delivered early beta builds of the new App Containers to clients for testing and feedback.

Feedback has been incorporated into the development cycle and we expect the Android side of this project to follow the usual development lifecycle from this point onwards.

App Containers built for Android from now on will be built from a Base Build of version 2.0.0 or higher (Pre-MCSDK App Containers are built from Base Build versions 1.6.2 or lower), and will use the MobileCaddy SDK (MCSDK) version 1.0.0 or higher.

Work has started on the MobileCaddy SDK for iOS and is now in the “Code Migration” phase of the project.

Documentation will be updated over the coming weeks to reflect any changes, behaviour or instructions for using the new MCSDK based App Containers.

Update 8 January 2020

We are continuing to test the new container under various scenarios and Salesforce org configurations.

We are expecting to release early client builds for internal testing within the next few weeks (Android only).

Preparations for Phase 3: iOS has begun and development is expected to begin this month.

Update 10 December 2019

The project continues to progress closer to release however we have experienced some delays to the timeline. This means that we have entered the next milestone later than we would have wanted. This delay was to introduce increased control and safety that customers will have for critical applications in worst-case scenarios which we believe is important when building apps to be resilient and paranoid of their environment.

The “Android Build” milestone has been completed and the project now moves onto the Functional and Stress Testing step (diagram updated above).

This means that all features targeted for the initial release of the new containers have completed development and work will begin to ensure that these features, integrations, and services are all up to our strict standards.

As the last update saw increased volumes of testing, we expect to see this increase again. Any issues picked up during this stage will be addressed and fixed immediately.

From here, once this stage has been completed, we will evaluate the new container, integrations, and systems, perform final QA and proceed onto the release process.

With the Salesforce Spring 20 release around the corner, we will also be scheduling the new container update to undergo early testing with Spring 20.

Update 8 November 2019

The project is on track and is progressing as expected.

This past month has seen an increase in testing App Containers that have been built with the new MobileCaddy SDK (including Beta 3) with good results showing across the board.

We are now nearing the end of the build phase of the project at which point further stress testing, checking and QA will begin. This month we expect to see the final features added and preparation for rollout.

Core MobileCaddy SDK:

  • Beta 3 status reached and initial testing results have been gathered
  • OS version compatibility testing has completed
  • Integration testing with MobileCaddy Utils and the MobileCaddy package continues to run with good results so far
  • Rollout plan and preparation has started
  • Initial release tasks scheduled and under development

Update 8th October 2019

The project is on track and is progressing as expected. Beta 2 status has been reached in the past month and testing of Beta 2 has begun with our existing testing and QA systems. Integrations testing continues, and work continues to bring in features to reach feature parity with our current App Containers that use the Salesforce Mobile SDK.

Core MobileCaddy SDK:

  • Beta 2 status reached – evaluation to begin.
  • Beta 2 testing with existing test and QA systems has started.
  • Support for Salesforce Communities under development.
  • Internal supporting systems architecture and implementation has started.
  • Beta 3 tasks scheduled and under development.

Update 9th September 2019

The project is on track and is progressing as expected. As planned in the previous update, the project has reached an internal “Beta 1″ status. This will now be evaluated, and work will begin on items scheduled for the second Beta and also feedback from Beta 1. Testing of the integration work from last month is expected to be carried out in the coming month along with Beta 2 work.

Core MobileCaddy SDK:

  • Internal Beta 1 status reached – evaluation to begin
  • Beta 2 tasks have been scheduled and are under development

MobileCaddy SDK Integrations:

  • Integrations work completed and now under testing

Update 10th August 2019

The project is on track and is progressing as expected. Some exciting and important technical milestones have been passed this month:

Core MobileCaddy SDK:

  • First complete flow from install to completed initial sync successful. This milestone brings together work from across all areas of the SDK from authentication to the encrypted storage.
  • Internal Beta 1 has been targeted for next month.

MobileCaddy SDK Integrations:

  • Work is currently in progress for the integration of the MobileCaddy SDK with the MobileCaddy Salesforce package – the specification has been agreed and is currently under development.

Read more