Xamarin - Articulate Blog
23
Nov
2018

Our customer is a logistics company that wanted to transform the way truck transportation is handled. The main idea was to automate the whole process of cargo shipping. Previously, many processes such as request handling or data processing were done manually and caused slow performance. So the customer decided to build a mobile app that could reduce manual work and enhance productivity.

Solution

We were chosen for this project due to our extensive experience in Xamarin development. The customer chose this framework since it empowers developers to use the same API to build iOS, Android, and Windows applications. With Xamarin, about 70% of the code is the same for all the three platforms, which results in cost savings and faster time to market.Using Xamarin, our team built two types of apps for Android and iOS platforms that could be used by shippers, carriers, and drivers.

Order Processing Portal

The first app was designed for shippers and carriers to streamline their operations from the initial pick-up request to real-time shipment tracking. It helps the shippers to find the right carrier. When a shipper has a request, he fills in a form with trip details. Using this data, the app generates the price and provides a quick quote. When shipper’s request is submitted to the system, a broker collects this data and compiles offerings.

Driver Tracking App

Driver tracking app was designed for drivers to ensure their better performance. Using the app, the drivers can view all the trip details. Besides, the driver may send a picture of the freight to the shipper, thus allowing for a better freight management. Due to real-time tracking feature, both shippers and carriers can check truck movement anytime and anywhere.

Xamarin Challenges and Solutions

During the development process, we faced several common issues with Xamarin. Yet, they were resolved easily.


UI Customization

Though Xamarin allows you to share the code across platforms, UI code is mostly platform-specific which means that you need to create a separate UI layer for each platform. To solve this issue, we decided to use Xamarin Platform Renderers. Xamarin user interfaces are rendered using the native controls of the specific platform to ensure the applications retain the appropriate look on each platform. Custom Renderers allowed us to override this process, being able to customize UI and interactive elements on each platform.

Carousel Page Performance

We’ve had several issues with the Carousel Page. This problem was resolved by installing the original Carousel View developed by Xamarin team. It allowed us to resolve the problems with navigation and get a smooth transition from one page to another.

List View Performance

Besides, a common issue in Xamarin development is scrolling performance. Yet it could be resolved quickly, through re-using rows. It is important to ensure that only those cells that are visible on screen are loaded in the memory whilst the content is loaded into the existing cells. When dealing with this issue, we’ve found that in our case the problem was in the images that were the part of the list view. Optimizing the images, we reached good performance and made our list view scroll very smoothly.

High-Resolution Images

When using the app, our users can upload photos or images. The sum of these images may cause slow performance. To prevent such issues, we decided to display on the app thumbnail versions of images still preserving their original size.

Right-to-Left Support

When we started working on the project, Xamarin didn’t support RTL layouts. That’s why we implemented a different solution to ensure that the app supports different languages, including right-to-left languages, such as Arabic, Hebrew, etc. Besides, 4 months later Microsoft released RTL support, allowing the developers to easily flip layouts to match language direction.

Results

During the development stage, we haven’t faced any problems with Xamarin that couldn’t be resolved. With Xamarin, you get a single codebase that targets all mobile platforms, making it an ideal choice for cross-platform development. Besides, Xamarin is an open-source solution that is actively supported not only by the developers’ team but also by a large community. All the issues that we faced during the development were resolved with the help of NuGet packages that we added to our project. We used NuGet packages to resolve the issues with Carousel View Control, Custom Tabs, Modal Popups, and Data Caching. As a result, it allowed us to provide our customer with the solution that includes:

- absolutely unique and stylish UI;
- local data storage;
- push notifications;
- GPS tracking;

The solution developed by our team empowered the customer to automate all the processes of shipment transportation, allowing for a better and faster order processing and shipment tracking. Both the apps automate manual tasks and eliminate paperwork, contributing to better performance and cost reduction.

Key Figures

     

70% Less Paperwork

The shipment management app, created by our team, empowered our customer to reduce the paperwork by 70%. Using order processing portal, the shippers and carriers no longer have to fill in the freight details manually, that saves their time and increases productivity.

30% Increase in Freight Delivery

The usage of driver tracking app enabled our customer to increase transparency, boost on-time delivery, and minimize delays by 30%.

40% Increase in Productivity

The developed solution automates manual processes, improves driver efficiency, and streamlines all shipment processes, thus helping our customer to increase speed and productivity by 40%.

30% Cost Reduction

The usage of order processing portal and driver tracking app minimizes errors and ensures accurate shipment management, that allowed our customer to achieve 30% cost reduction.

70% Process Automation

The delivered solution enabled our customer to reduce manual work by 70% which led to process optimization and logistics automation.

Increase in Driver Performance

The delivered solution helped the customer to increase driver performance due to real-time tracking, route planning, and push notifications.

Better Customer Service

Such features as freight tracking and driver performance tracking enabled our customer to achieve 100% increase in customer service.

Better Scalability & Speed

With powerful automation features, the customer can easily manage logistics operations, which results in better scalability and speed.

Transparency into Freight Movement / or Complete Transparency into Freight Movement

Real-time fleet tracking, the possibility to check route deviations, and instant communication with the drivers make shipping more transparent.

Better Communication Between Shippers & Carriers

The created solution automates the data exchange between shippers and carriers, that results in an enhanced service.