Client background
Our client is a global software company focused on developing creative, productivity, and utility applications. One of its flagship products, is a visual productivity tool that helps individuals and teams organize information, plan projects, and make better decisions through structured diagrams and mind maps.
Business challenge
The business challenge of our work on MindManager, an enterprise-grade desktop application, was to support and continuously evolve a large, multiplatform core shared between Mac and Windows versions, while maintaining native user interfaces for each platform.
How did we make it work?
The source code of the project was structured in a modular, loosely coupled architecture. The shared multiplatform core was written in C++, while platform-specific components were implemented using C++, C#, Objective-C, or Swift, depending on the target platform. Each module adhered to well-defined interfaces, allowing individual components to be easily replaced or extended without impacting the rest of the system. The codebase followed proven design patterns inspired by the Gang of Four book principles, which contributed to a stable, robust, and maintainable foundation suitable for building enterprise-grade applications.
Main technical challenges
Implementing a large multiplatform desktop application with a shared C++ core and native UIs (Windows/macOS) comes with several significant technical challenges.
01 Platform-Specific Components Integration
- Different UI technologies ( MFC/WPF/GDI+ vs. Cocoa/Swift UI ) require distinct implementations.
- Passing data between native UIs and shared C++ core must be done via language bindings or bridges.
- Synchronizing user experience and feature parity across platforms can be difficult.
- File dialogs, system notifications, drag & drop, networking stacks, accessibility — all behave differently per OS.
- Abstraction layers are required to unify access to OS APIs while maintaining platform-native behavior.
02 Build System Complexity & IDE Fragmentation
- Keeping build tooling, debugging practices, and developer workflows aligned is a coordination challenge.
- Ensuring consistent compiler flags, linking behavior, and 3rd-party dependencies across platforms is non-trivial.
- Developers on different platforms use different tools (Visual Studio vs Xcode).
- Managing cross-platform builds with CMake, Xcode, and MS Build can be error-prone.
03 Code Sharing Without Over coupling
- Shared modules should not "leak" platform logic into core.
- Enforcing boundaries between the core and platform-specific logic requires a solid understanding of SOLID principles and strict use of interfaces, adapters, and dependency injection.
- Design interfaces between modules that are flexible enough to support both platforms, yet stable enough to prevent ripple effects during feature evolution.
Value delivered by devPulse
By implementing a shared C++ core, we unified business logic across Mac and Windows platforms while maintaining native user interfaces:
- Reduced Development Costs
Less duplicated code across platforms means fewer engineering hours required.
- Faster Time-to-Market
Features developed once in the core can be shipped simultaneously on Mac and Windows.
- Lower Maintenance Overhead
Bug fixes and enhancements in the shared core benefit both platforms instantly.
- Consistent User Experience
Users on both platforms receive similar features and workflows, reducing support friction.
- Higher Perceived Product Quality
Enterprise customers value synchronized, stable, and native apps — boosting brand perception.
- Foundation for Future Growth
The architecture supports long-term scalability and potential expansion to other platforms.

Development Timeline
2017 - now
Team Composition
- 4 C++ Core developers
- 3 Windows Developers
- 3 Mac developers
- 5 Manual QA
- 1 Automated QA
Technology
- C/C++
- C#
- MFC
- .NET Framework
- COM
- Windows API
- QT
- Cocoa
- Objective C
- Swift
- App Kit
- Quartz
Key Making a Difference:
- Time-to-Market shortened by 20–30%
- Enterprise-grade stability
- 15–20% fewer platform-specific tickets
- Native feel and look
- Native look
- Development efficiency gained of 20–30%
Request A Free No-Obligation Quote
By clicking "Send A Message", You agree to devPulse's Terms of Use and Cookie Policy.
