November 11, 2015 9:02 am

Combining Two Apps into One at Box with the Universal Windows Platform

We recently interviewed Box about how they migrated their Windows 8 apps to create the new Windows 10 Box app, how the Universal Windows Platform (UWP) made the process simpler, and what features had the biggest impact on the project.

Box’s introduction to UWP

Box wanted to create a more flexible app that would make users happy no matter what device they were using. When the Box team learned about the UWP at the Microsoft Build Conference, they thought it was the best way to update their existing Windows apps. At the time, they were maintaining two codebases and two UIs; and when it came to testing, every function had to be tested for each target device.

“By combining the two apps in Windows 10 as a universal Windows app, it decreased our engineering overhead, and increased our velocity for future iterations. We’re really excited about this.” – Lois Wang, Senior Product Manager at Box. She provided us with screenshots of the app in action.

1_box

The developers at Box combined their Windows 8 desktop app with their matching Silverlight Windows Phone app. To port to Windows 10 UWP, they only needed to design an amazing user experience for each device and then combine the core logic into one app.

An amazing developer experience

Box was delighted when the UWP also turned out to be a great developer experience. “Compared to our previous experience building Windows apps, Windows 10 apps are a lot easier and faster to build. Also, the Dev Center takes care of the deployment,” said Lois.

The Windows Store offers a beta process where developers can publish their app and invite selected customers to download the beta, while keeping it hidden from the live Store. With Windows 10, those users are automatically upgraded to the production version when available. Box’s Enterprise users appreciate the convenience of the Windows Store, a user-friendly way to deploy the app to corporate end users. “And to us, this makes deployment a much simplified story. Publishing to the Windows Store reduces the burden for us to create installers. Most of the devs who are familiar with the business logic are not experts with the installers. That’s a huge overhead that we can avoid,” said Lois.

Migrating to Windows 10

Developing on the Universal Windows Platform also saved Box a significant amount of time. The first step in the migration process was to deprecate any code no longer supported, for example, the Silverlight code. One of their goals was to offer a true Windows 10 user experience, so they converted custom controls to Windows 10 controls. Since the Box team didn’t have to create the controls from scratch that accelerated development. Box used the split view control on their small screen UI, and they used the list view control on the main landing page for Box content. By taking advantage of the many assets and controls available readymade through Windows 10, they shortened the coding process and finished the project faster. Here’s a screenshot of the Box app displaying the user’s most recent files.

2_box

The last step was to create the new code necessary to use a fully adaptive view of the app for any size window. Windows users are accustomed to multitasking, and need the ability to resize windows to show other apps sharing the screen with the Box app. In this view of the Box app, it is sharing the screen with Microsoft Word.

3_box

Windows 10 interoperability

The interoperability provided by Windows 10 inspired the Box team during their conversion. Previously, they created and maintained custom code to interact smoothly with content creation apps, for example Microsoft Office or Adobe Creative Cloud. By using Windows 10 Contracts and API sets, Box simplified their app and achieved better app-to-app communication.

Here are their three favorite interoperability features.

  1. The Cached File Updater contract

    Using the Cached File Updater feature eliminated a significant amount of custom code. With a few lines of code, the Box app can share content with another app, and when users finished updating, they can save changes directly back to Box through the Cached File Updater. This means that a user can work on a remote file that the app maintains in its repository as though that file were local. In the Windows 8 desktop and phone apps, Box needed workarounds for the same functionality.

  2. The File Picker contract

    By using the File Open Picker contract and the File Save Picker contract, the Box developers created a consistent way for users to open and save their files. The File Picker works with the Cached File Updater for live synchronization with a repository in the cloud.

  3. The Share contract

    Box used the Share contract so their users could share content with other UWP apps that employ it. App-to-app communication supports sharing and receiving data, copy & paste, and drag & drop.

Wrapping up

Using the universal Windows Platform, Box increased interoperability with other apps, and optimized users’ workflow. The Box app helps you securely access and work on content, collaborate, and automate your workflows. Visit the Box developer site to start building your app on Box, visit the Box developer site. The Box app for Windows 10 is now available for download from the Windows Store.

Useful resources include:

Updated November 12, 2015 1:19 pm

Join the conversation