Crimp Specification File Loader

  • Dustin Kendall

  • August 10th, 2019

Description

Late Summer 2019, I was given a project to design a new feature. The feature required the application to load user-created data from the local storage of the Android Tablet (USB Drive), and the internet using our Industry 4.0 cloud platform.

I broke down the project into 3 phases.

Phase 1 - Scope Hammer and Brainstorming

Communicate with my supervisors and team leaders to make sure I understand the entire scope of the problem as well as the business goals for the project. I made sure I fully understood the purpose of the project to ensure a quality user experience, and to guarantee a positive return on investment.

After fully understanding the business scope of the project, I set up meetings with our Cloud Engineer and other colleagues. These meetings were to assess possible technical implementations and UI/UX aesthetics of our new feature. We decided on a general way to go about doing it.

Phase 2 - Metaprogramming

I developed a series of flow charts and sequence diagrams to communicate how I thought the application was to work to communicate with my colleagues. We tweaked a few things from there and honed in on the correct sequence.

After this, I started to work on diagrams for classes and SQLite database tables for the project. I determined the required classes and tables for the new feature.

Phase 3 - Implementation

I began coding the implementation of our new feature. Here are the technical tasks I accomplished:

  • Created new entity classes
  • Used GreenDao to generate database access objects and perform a SQLite database migration.
  • Used RxJava to create asyncronous event-driven sequences for API request and server communication.
  • Used asynchronous tasks and async task loaders to perform network tasks such as downloading the user-created files.
  • Wrote a CSV parser for the user-created data downloaded from the cloud.
  • Mapped parsed CSV rows to entity classes and inserted data into the database.
  • Developed the UI/UX in accordance with our designer's specification and previous UI/UX sketch prototypes.

Result

The new feature is now being thoroughly tested and is going to be in our next production release this month. This feature was highly sought after by our customers. The ability to load custom crimp specifications enhances our end user's experience significantly!