Rebuilding NinjaOne's Mobile Apps for the Modern Era

Technical Details

Role

Staff Engineer / Mobile Tech Lead

Team

8 developers (4 iOS, 4 Android)

iOS

Swift, SwiftUI, Combine

Android

Kotlin, Jetpack Compose, Coroutines

Architecture

MVVM, Clean Architecture

Testing

XCTest, JUnit, Espresso

Rebuilding NinjaOne's Mobile Apps for the Modern Era

Modernizing iOS and Android apps from legacy codebases.

NinjaOne has emerged as one of the fastest-growing companies in IT management, surpassing $500 million in annual recurring revenue in January 2026. The Austin-based company achieved a $5 billion valuation after raising $500 million in Series C extensions in February 2025, led by Iconiq Growth and CapitalG (Alphabet's venture capital arm). NinjaOne provides unified IT operations software that enables IT teams to manage, monitor, and support all their endpoints—from servers to laptops to mobile devices—through a single pane of glass.

About NinjaOne

Founded in 2013 by Sal Sferlazza and Chris Matarese, NinjaOne has grown to serve over 35,000 customers—a 60% increase year over year—including industry giants like Nvidia, Lyft, Porsche, HelloFresh, and Vimeo. Revenue grew nearly 70% year over year to reach the $500 million ARR milestone, a remarkable trajectory from just $16.7 million in 2021. Customers report a 50% reduction in endpoint management costs and a 20% boost in staff retention after adopting NinjaOne, with 75% of customers replacing four or more tools when they switch to the platform.

The company recently expanded its platform with MDM for MacOS and NinjaOne Remote, completed the acquisition of SaaS backup leader Dropsuite, and launched Patch Intelligence AI. NinjaOne expects another 60-70% revenue growth in 2026.

The Mobile Modernization Challenge

As NinjaOne's platform expanded and its customer base grew exponentially, the mobile applications became increasingly critical to the IT administrator workflow. Technicians needed reliable, fast mobile access to manage endpoints, respond to alerts, and resolve issues from anywhere.

However, the existing mobile applications were showing their age:

  • iOS App: Built entirely in Objective-C, the app had accumulated years of technical debt and was becoming increasingly difficult to maintain and extend
  • Android App: Written in Java with traditional XML layouts, the app struggled with modern Android development patterns and UI expectations
Both apps needed a complete rebuild to meet the demands of NinjaOne's rapidly growing enterprise customer base.

iOS: From Objective-C to Swift and SwiftUI

The iOS rebuild involved a complete architectural transformation:

Legacy State:

  • Objective-C codebase with MVC architecture
  • UIKit with programmatic layouts and some Storyboards
  • Callback-based networking and state management
  • Limited testability due to tight coupling
Modern Architecture:
  • Pure Swift with SwiftUI for all new UI components
  • MVVM architecture with clear separation of concerns
  • Combine framework for reactive data flow
  • Swift Concurrency (async/await) for networking
  • Comprehensive unit and UI test coverage
The migration strategy involved building new features exclusively in Swift/SwiftUI while gradually replacing legacy Objective-C modules. This allowed continuous delivery of new functionality while systematically modernizing the codebase.

Android: From Java to Kotlin and Jetpack Compose

The Android transformation followed a similar modernization path:

Legacy State:

  • Java codebase with traditional Android architecture
  • XML layouts with View binding
  • AsyncTask and callback patterns for async operations
  • Fragment-heavy navigation
Modern Architecture:
  • 100% Kotlin with coroutines for async operations
  • Jetpack Compose for declarative UI
  • Single-Activity architecture with Compose Navigation
  • Repository pattern with clean architecture layers
  • Flow for reactive state management
  • Hilt for dependency injection
The Compose migration enabled faster UI development, better state management, and significantly improved preview and testing capabilities.

Technical Highlights

Shared Architecture Patterns: Both platforms adopted similar architectural patterns to ensure consistency and enable knowledge sharing between iOS and Android teams:

  • Repository pattern for data access abstraction
  • Use case/interactor layer for business logic
  • ViewModels for UI state management
  • Dependency injection throughout
  • Feature-based module organization
Performance Improvements:
  • 40% reduction in app launch time
  • 60% improvement in screen transition smoothness
  • Significantly reduced memory footprint
  • Better battery efficiency through optimized background operations
Developer Experience:
  • Hot reload / SwiftUI Previews for rapid iteration
  • Comprehensive automated testing pipelines
  • Feature flags for gradual rollouts
  • Crash-free rate improved to 99.9%+

Impact and Results

The modernized mobile applications have become essential tools for NinjaOne's customers:

  • Faster Feature Delivery: New features ship 3x faster with the modern architecture
  • Improved Reliability: Crash rates dropped significantly across both platforms
  • Better User Experience: Modern UI patterns and smoother interactions
  • Reduced Maintenance Burden: Cleaner codebases with better documentation and test coverage
  • Easier Onboarding: New developers can contribute faster with familiar modern patterns
The mobile apps now fully leverage the capabilities of iOS and Android, providing IT administrators with powerful tools to manage their infrastructure from anywhere.