Moving a PromptSmart Teleprompter Application from Old and Fragmented Native to a Holistic Multiplatform Solution

MODERNIZATION, MULTIPLATFORM, media

Moving a PromptSmart Teleprompter Application from Old and Fragmented Native to a Holistic Multiplatform Solution

End-to-end modernization of PromptSmart: We rebuilt the patented teleprompter app from native iOS/Android to a multiplatform solution, enabling quick and simultaneous cross-platform releases.

Reduced code duplication and raised development efficiency by

75%

vs a 70% target

Lower average time gap in cross-platform feature delivery by

80%

platform specifics included

Reduced iOS development hours by

40%

and QA by 30%

Project overview

Client

Belleau Technologies LLC

Location

USA

Company size

Small

Industry

Presentation / content-creating software

Services
IconResearch. We collected the requirements and carried out feasibility studies. Then, defined the roadmap and conducted prototyping and wireframing.IconDesign. Our team created an engaging, practical, and visually appealing UI/UX design that aligns with the brand identity.IconDevelopment. We crafted a multi-platform mobile app and web app with AI, voice recognition, APIs, streaming, and cloud integration.IconQuality Assurance. To guarantee reliability, we conducted functional, performance, security, and cross-device testing.IconDeployment. To give the app a mighty start, we established CI/CD automation, cloud infrastructure, and publishing to App Store & Play Market.IconSupport. With resilience and expansion in mind, we ensured continuous monitoring, bug fixes, updates, and feature enhancements. Arranged customer support and help desk.IconBusiness Expansion. Implemented subscription models, monetization systems, documentation, training, and marketing support to spur growth.
Solution

From native iOS and Android to multiplatform: Empowering simultaneous updates across all platforms

Business Challenge

Have you ever faced?

stalling, disrupting feature updates of your app, which disappointed users?

The client had issues with the timely and equal releases of iOS and Android applications. It was critically important to attain parity, reliability, and predictability in release cycles.

Icon

Inconsistent Features across Platforms

The existing setup included two separate codebases for Android and iOS. This impeded maintenance, leading to unequal access to features among different platform users.

Icon

Stalling Development – Hampered User Experience

iOS and Android had their specific development nuances, differences in API usage, and varied release pipelines. This caused release delays, disparity in fixes and updates, and unequal UX.

Icon

Critical Importance of Unified VoiceTrack functionality

Patented technology, VoiceTrack, enables the automatic scrolling of the teleprompter in sync with the reader. Crucial for speakers, this value had to be preserved across platforms.

Discovery & Planning Phase

1

To fight inconsistent and delayed releases, our team analyzed both the codebases and processes, revealing inefficiencies like duplicated logic and misaligned workflows, assessing their impact on timelines.

2

To identify key pain points, we interviewed everyone involved, from product owners to designers. This helped us discover feature parity gaps, regression overhead, and duplicated bug fixes.

3

To ensure reliable results, we conducted a feasibility study. It assessed cross-platform technologies by performance, interoperability, learning curve, and integration with the existing system.

4

To carry out Proof of Concept, we built a shared authentication module. It helped us evaluate the viability of a shared codebase while maintaining native UI performance.

5

To estimate risks and costs, we assessed long-term maintenance expenses, overhaul of existing CI/CD pipelines, and developer ramp-up needs

What Made Kotlin Multiplatform Our Strategic Choice

Square icon

Expert In-House KMP Team.

With a dedicated team of professional Kotlin Multiplatform developers, we utilize our extensive experience and all available knowledge to expedite the ramp-up period.

Square icon

Safe Migration, Speedy Adoption.

Kotlin Multiplatform empowers faster adoption, smoother integration with iOS and Android, and minimized risks during migration through shared logic and native compatibility.

Square icon

Centralized Logic, Native Experience.

With Kotlin Multiplatform, we attained the centralization of networking, caching, domain logic, and APIs in shared modules, without compromising native UI.

Square icon

True-to-Platform UI, Faster Development

Kotlin Multiplatform ensures native UI that follows platform standards, granting smooth experiences. We could also minimize repetitive coding and enable the client to expedite development times.

Square icon

Gradual Migration, Seamless Compatibility.

KMP works in synergy with your existing codebases. This helped us perform step-by-step modernization without a full rewrite, maximizing stability and minimizing risk.

Square icon

Future-ready Performance, Low Maintenance.

Shared Kotlin code compiles directly to native iOS with Kotlin/Native. Using this capability, we achieved top performance and effortless support without cross-platform delays.

Let us overhaul your fragmented app into a holistic, multiplatform solution

We unify disparate codebases, solve development inefficiencies, and build a consistent UX

Book a Meeting to Start a Multiplatform Revamp //

Project In Detail

Transitioning PromptSmart from fully native iOS and Android to Kotlin Multiplatform required a meticulous, incremental strategy. A full rewrite would have been risky and time-consuming. Thus, we favored iterative migration. Each iteration gradually moved critical elements to a shared codebase, reducing duplication and ensuring uninterrupted delivery.

We started by setting up the shared Kotlin Multiplatform module within the repository and configuring CI/CD pipelines for multiplatform builds. Introduced a Gradle Catalog for dependency management and conducted a proof of concept to justify the shared codebase approach.

We introduced Ktor in the shared module and migrated API models, serialization logic, and error handling to Kotlin Multiplatform. Networking calls were gradually transferred to the shared layer, whereas UI logic remained platform-unique only where necessary, for maximum continuity

We adopted Clean Architecture with 4 layers, where 3 were shared across platforms and 1 remained individual for each. Business use cases, data mappers, and caching logic were migrated to the shared module. Coroutines and StateFlow were introduced for asynchronous operations, and individual repositories were kept exclusively for platform-restricted features.

We implemented SQL Delight to enable a multiplatform database and migrated persistence logic into the shared module. Platform-unique databases, Room for Android and Core Data for iOS, were gradually deprecated. This centralized and strengthened data administration and simplified future cross-platform support.

Kotlin DI was settled in the shared module, migrating 90–95% of dependency definitions to the shared layer. We centralized external libraries where possible, keeping individual dependencies separate for each platform. This enhanced code management and reduced duplication on iOS and Android.

We introduced SwiftUI and Jetpack Compose, partially migrating to Compose Multiplatform, where possible. UI logic, including event handling and state updates, remained in shared ViewModels. Logging and Crashlytics were unified for centralized monitoring and performance tracking.

The VoiceTrack module was moved into the shared Kotlin Multiplatform codebase, unifying its implementation through iOS and Android. We standardized speech analysis, synchronization, and playback algorithms, and guaranteed low-latency operation through shared coroutines and multithreading. Platform-specific bindings, such as audio APIs, were minimized.

Legacy

List icon

Project structure

Different codebases for each platform and derivative application

List icon

Architecture

MVP

List icon

Languages

Java, Objective C

List icon

UI

UI KIt, Android Views

List icon

DI

Dagger

List icon

Networking

OkHttp, URLSession

List icon

Threading

Java Threads, DispatchQueue

List icon

Dependency management

Gradle, Cocoa Pods

List icon

Database

Room, Core Data

List icon

ASR

Pocket Sphinx

Modern

List icon

Project structure

Single code base with strong branch strategy and buid variants. Shared business logic modules accross platforms powered by Kotlin Multiplatform

List icon

Architecture

MVI, MVVM

List icon

Languages

Kotlin, Swift

List icon

UI

Swift UI, Jetpack Compose, Compose Multiplatform

List icon

DI

Kodein

List icon

Networking

Ktor

List icon

Threading

Coroutines, StateFlow

List icon

Dependency management

Gradle Catalog

List icon

Database

SQL Delight

List icon

ASR

VOSK

The Challenges We Faced During the PromptSmart Migration From Native to a Multiplatform Solution

Unifying Subscription and Monetization Models

iOS and Android had different subscription models. To unify authentication, we crafted a multiplatform access mechanism and ensured seamless user data migration.

Multiplatform Code Style Alignment

We discovered inconsistent iOS/Android code styles, which hampered large-scale migration. Through refactoring and CI-enforced consistency, we established a unified coding standard.

Data Transfer for iOS Users

The different storage of user data in iOS Pro challenged multiplatform migration. We designed a migration layer for smooth data importing, through mapping old structures, resolving conflicts, and creating backups.

Handling Varying Camera Capabilities

The key app features – real-time speech recognition and teleprompter – depend on diverse camera APIs and capabilities. For a consistent, low-latency performance, we built an adaptable camera abstraction layer.

Delivering Perfect VoiceTrack Performance

VoiceTrack, a patented, speed-driven feature, required low latency and high accuracy across a wide OS range. We optimized multiplatform code and pipelines to ensure smooth performance on older devices.

Results

Key results of building multiplatform architecture

The unified architecture delivered a single manageable codebase, shared UI and networking layers, efficient multithreading, centralized dependency management, and reliable cross-platform data handling across iOS and Android.

result

Unified, Manageable Codebase

Created a single repository that accommodates all apps, simplifying maintenance, driving collaboration, and enabling effortless code reuse.

Shared Clean Architecture

Migrated to a 4-layer clean architecture, where 3 layers were shared across platforms, delivering consistency, scalability, and easier support.

Controllable, Consistent UI

Moved from MVP to MVI with shared ViewModels, gaining full control over the UI. This enables consistent UI behavior, clear contracts, and smooth migration to SwiftUI/Compose.

Efficient Multithreading

Used coroutines and StateFlow to enable asynchronous code with synchronous clarity. This reduces boilerplate and ensures reliable, deterministic multithreaded app behavior across platforms.

Networking Layer Migration

Transferred the entire networking layer to shared Ktor code, consolidating requests, serialization, and error fixing through iOS and Android.

Smoother Third-Party Library Management

Established Gradle Catalog in shared modules to manage over 80% of project dependencies. External libraries are easier to update and maintain, with minimal duplication.

Implementing a Dependency Injection Container

We centralized up to 95% of dependencies in a shared Kodein container to simplify injection, support, and cross-platform uniformity.

Arranging a Multiplatform Database

Using SQLDelight, we guaranteed unified cross-platform data handling by settling 100% of database logic in shared code.

Comprehensive Logging and Crash Reporting

Provided extensive logging across shared code to enable quick issue revealing and debugging on iOS and Android.

Key Process Improvements

  • Consistency in cross-platform releases. 98% of iOS and Android versions arrive simultaneously.
  • Feature parity across platforms. 100% of all features reach all users at the same time.
  • Improved unit testing. 50% of the code is covered and increasing.
  • Bulletproof performance and stability. Reached up to a 99% crash-free rate.
  • Business value. Predictable deliveries 3-5 days faster.

80%

of shared code (vs a 70% target) to reduce code duplication and raise development efficiency

80%

lower average time gap in cross-platform feature delivery (platform-specifics included)

80%

reduction in duplicate bugs on iOS and Android platforms

40%

estimated cost reduction in iOS development hours and 30% in QA.

Start today!

We’d love to hear from you. Share your vision, and let’s explore how we can make it real together.

    By signing this form you agree to our Privacy Policy

    Our team will

    • 1 Process your request within 1-2 business days.
    • 2 Get back to you with an offer based on your project's scope and requirements.
    • 3 Set a call to discuss your future project in details and finalize the offer.
    • 4 Sign a contract with you to start working on your project.

    Corsac Technologies Corporation

    +1 416 505 4524 Toronto, Canada info@corsactech.com