Advancing Forklift Innovation Through Modern Software Architecture
Streamlined, scalable forklift software with modern architecture.
Modernizing Crown’s Forklift Software Platform
Crown is a prominent leader in the forklift industry, known for developing advanced embedded software systems that enhance the performance, safety, and usability of their equipment. Their engineering team—highly skilled in C and embedded development—continuously pushes the boundaries of what’s possible in forklift technology. As they expand their digital ecosystem, Crown sought to elevate their display technology with a more modern, flexible, Android-based solution.
The Challenge
Crown aimed to develop an Android application paired with a C backend to manage forklift settings and deliver real-time operator feedback. The system needed to match and exceed the capabilities of existing displays while supporting future enhancements.
Simultaneously, a lower-cost display was being built by another internal team using shared code and features, requiring tight coordination. Key challenges included heavy reliance on manual testing, complex business logic embedded in Android fragments, and the need to ensure seamless compatibility between hardware modules and software versions across multiple forklift types.
Our Approach
We partnered closely with Crown’s engineering team to deeply understand system requirements, workflow constraints, and long-term goals. Our approach centered on modernizing the architecture, boosting testability, and reducing the operational burden on their development process.
Key elements of our approach included:
-
Introducing automated UI testing using Headspin to improve quality assurance and detect issues earlier.
-
Implementing Dependency Injection to decouple components and increase modularity.
-
Refactoring logic out of Android fragments into structured, testable C# classes.
-
Enhancing hardware–software compatibility through clear dependency rules and version consistency.
-
Increasing unit test coverage to strengthen system reliability and reduce manual effort.
Implementation
Development Strategy
The project was executed in phases to maintain structure and clarity:
UI & Backend Development
We built the Android UI and the C backend, enabling operators to configure settings, receive system alerts, and enforce dependency consistency rules (depcons) between hardware modules and software versions.
Testing & Automation
With manual UI testing posing scalability issues, we implemented automated UI testing via Headspin, allowing continuous testing and early detection of Android system interaction issues.
Feature Enhancements
New functionality was added as isolated, testable C# classes. Each feature underwent thorough unit testing before integration to ensure stability and reduce regression issues.
Dependency Injection Integration
To reduce complexity and improve maintainability, we incorporated dependency injection—removing deeply embedded logic from Android fragments and placing it in clean, testable layers.
Challenges Faced
-
Manual Testing Limitations: Transitioning from manual to automated UI testing required new tooling, training, and workflow adjustments.
-
Fragment Logic Complexity: Much of the business logic lived inside Android fragments, making it difficult to test or modify. Refactoring this into C# classes was essential.
-
Hardware–Software Compatibility: Ensuring different forklift modules matched the correct software versions required careful versioning, CRC validation, and extensive testing across configurations.
Results
The collaboration delivered a fully functional Android application with a stable C backend, providing operators with intuitive controls and real-time feedback.
Key outcomes included:
-
Significantly Improved Test Coverage: Automated UI testing reduced reliance on manual testing and identified issues earlier in development.
-
Better Modularity & Scalability: Dependency injection and code refactoring produced a cleaner, more maintainable architecture.
-
Enhanced Stability & Future-Readiness: The foundation now supports more advanced features and smoother expansion across multiple forklift display platforms.
-
Progress Toward Modern Update Delivery: Early work on transitioning updates from USB to wireless access lays the groundwork for faster, remote software deployment.
Technology Used
-
Android Development: Java/Kotlin
-
C Backend: Low-level system logic and forklift operations
-
C# for Unit Testing: Encapsulated business logic for robust coverage
-
Headspin: Automated UI testing platform
-
Dependency Injection: For modular architecture and improved testability
-
XML Parsing: For forklift settings management without developer intervention
Conclusion
Crown’s experienced embedded engineering team partnered with A20 to modernize their software architecture and testing practices. By strengthening automated testing, improving modularity, and rethinking where business logic lives, the project reduced manual testing burdens and increased overall system stability.
This collaboration not only improved the immediate display system but also elevated both teams’ capabilities—laying a strong foundation for future enhancements and next-generation forklift technologies.
Comments (0)
Leave a Comment
No comments yet. Be the first to share your thoughts!