Bluepath Consulting, a business consulting firm has a customer in the flower industry: a leading grower, importer and distributor of fresh cut flowers that currently serve over 800 clients comprised of large and mid-sized floral wholesaler distributors and mass market retailers.
All flowers are imported into the Miami facilities where they are prepared for distribution to customers.
Controlling all incoming and outgoing orders is of extreme importance to them. Therefore, in order to have a better control of each order, they created an App with Xamarin Android that helps with the logistics. The App can read the barcodes on each order, find them on an existent database, and show the list of all boxes corresponding to each order. Once the order is found, the user can capture the barcode on the boxes with the App, which at the same time, checks each box on the order’s list. This procedure not only shows that the order exists but also confirms its completion.
About the App
- It’s developed in Xamarin Android using Visual Studio 2015.
- Currently it’s running on the Motorola TC70 with Android version 4.4.2.
- It consumes information from a SQL database which is connected by a data access layer.
- Also, it has a Git Repo for the source control.
The client’s need
Bluepath Consulting’s customer selected the Motorola TC70 smartphone, which is an Android device, to run the App. The App was successfully controlling each order, however, there was a problem. It was capturing the barcodes through the phone’s camera, which was causing two issues. One of them was that the camera would take time to focus, and it was making the process run slow. The other issue was that the users were not taking advantage of one of the main features on the Motorola TC70. The barcode scanner, which would allow them to work at a more efficient pace.
Bluepath Consulting contacted UruIT with the aim of solving the customer’s problem. The solution consisted of substituting the camera for the barcode scanner on the App. Mother’s day was around the corner, and they needed to speed up their procedures. Therefore, we only had about 10 days to develop this new feature on the App.
Using Xamarin Components
We took the challenge to develop and implement a different way to read the barcodes with the already existing scanner embedded in the Motorola TC70.
Xamarin has a Components section which allowed us to add encapsulated and robust functionalities in just a few steps. Some examples are Cloud Services, Libraries, User Interface, and Themes, to name a few.
Among those components, we could find the EMDK (Enterprise Mobility Developer Kit) version 1.0 for Xamarin, which offers a wide range of tools needed to interact with the hardware added to the Motorola TC70 by Zebra Technologies. That is the component we used in order to add the scanner to the App, which was a fairly simple task, compared to the challenge of changing the logic while maintaining the same behavior (given the App was configured to utilize the camera on the device in order to read the codes).
Working remotely with the scanner
Since the mobile device the customer was using was not physically in my hands, and we were running out of time, I had to work on their device remotely, by making use of the following:
- Leverage a remote laptop in the client facility installed with Visual Studio and Xamarin Extensions. The Motorola TC70 was attached to the computer’s USB port, allowing me to debug or deploy the App as needed.
- Video Skype, in order to be able to watch the device constantly.
- The ADB (Android Debugging Bridge) console is a command line available on Visual Studio 2015. This tool allowed me to interact with the device remotely. In other words, I was able to control the Motorola TC70 by uninstalling apps, pressing the Back and Home buttons, or touching anywhere on the screen, without having it physically in my hands.
- I also needed to have a barcode strategically positioned in front of the Motorola smartphone while working on the app remotely. The device was set to be constantly scanning a barcode, which allowed me to access the data in development phase. However, during the trial or production versions the device was set back to “Trigger on” mode in order to control the scanner manually.
Record time to market & increased performance
Despite of the time constraint and remote development challenges, we were able to develop and release the app before the deadline. The customer was able to use the new version of the App a day before the estimated time.
They are extremely pleased with the results. The new version of the App had a highly positive impact on performance. They aim to use the app not only as a control method but also as a traceability tool. That’s because they are currently relying on handheld scanners. Therefore, we are now working on developing a new feature that will help the company trace their boxes more easily, without the need of the handheld barcode scanners they use.
We tried other vendors, but one of the things that UruIT showed us was that they are quite resourceful. They found the way to work with the device remotely. Also, they were able to complete the job according to the full requirements. With them we were able to make our customer feel special to increase performance at one of their busiest time.
Sandra Flechas, Bluepath Consulting.
Keep learning about our Xamarin experience in this other Blog Post: Why using Xamarin for cross-platform development.
If you want to know more about our coding practices and experience, take a look at our GitHub page!