/
KSK

A 3D/AR Real Estate Viewing App for a Real Estate Developer

KSK is a mobile app for 3D and AR tours of a residential complex currently under construction by KSK Holding. The app runs on iOS and Android.

4 employees

3 months of development

1,258,603 vertices in a 3D file

Задача

Task

Our partner invited us to join an app development project for KSK Holding, a real estate developer based in Ivanovo. The goal was to create an app where potential buyers of residential property could view both the building and its surrounding area using AR and 3D technology. We strengthened the team to take charge of Android development and modify the iOS version of the app.

Решение

Solution

KSK is a Kotlin/Swift-based mobile app that offers virtual tours of a residential complex under construction by KSK Holding. Users can explore the property and nearby infrastructure in both 3D and AR formats. If the user is interested in a specific building, they can zoom in for a closer look or submit a purchase request immediately.

Development Process

Over three months, our team of four – an Android developer, an iOS developer, a tester, and a project manager – worked on the app.

We operated without ToRs, which expedited the development process of this small project. Based on the mobile app design received from the customer in Figma, we conceptualized user scenarios and interface states.

We aimed for technologies suitable for our task – creating a modern and stable app with augmented reality support, high-quality graphics, and efficient notification and error management. With that objective in mind, we picked the following tools:

  • Jetpack Compose for building user interfaces on Android
  • ArCore for AR functionality
  • OpenGL for high-quality 2D and 3D graphics
  • Firebase Cloud Messaging for push notifications to users
  • Firebase Crashlytics for tracking and analyzing app crashes

Breaking the project into tasks. The customer’s detailed briefing allowed us to break the project into approximately 40 clear tasks. They had to do with different features of the app: 3D and AR, loading screen, notifications, feedback form, etc.

Interface modification. The design in Figma did not cover all of the possible user scenarios for the app, so we had to complete some of these ourselves. For instance, we defined how a button's appearance would change after being clicked and determined where it would redirect users afterward.

Synchronizing with the 3D/AR team. We received completed models from the core team in file format and integrated them into the app. However, during this process, we encountered frequent crashes and lag, prompting us to send the models back for further modification.

The customer also wanted to integrate independent animation elements, such as lights, cars, and people, into the 3D model. To solve this problem, we decided to render the 3D model using the OpenGL library instead of Google’s standard library.

Fixing the bugs. The iOS developer played a key role in refactoring, modifying the code of the core team and helping to fix bugs.

The Hardest Part

The app was too demanding for smartphones. The integration of 3D and AR technology resulted in suboptimal device performance, overwhelming the RAM and CPU resources. During development, the size of the 3D model increased tenfold, prompting us to seek new technologies to manage it effectively. 

Not all smartphones were suitable for testing. The AR feature was only functional on newer gadgets.

The 3D model did not work correctly. The image would glitch when moving or zooming, with the objects falling apart or failing to synchronize with each other.

How we solved these tasks

Optimizing the app’s performance. We tried various models and ultimately found a solution that enabled smooth image movements, while being less resource-intensive for smartphones. We switched from using the original .obj file format to .jlb. We improved the Open Source library we utilized for reading models, as it was not initially designed for large files. 

Testing on emulators and multiple gadgets. Our tester used the latest high-performance smartphones from team members, along with programs that could simulate tablet or smartphone interfaces for Android and iOS.

Integrating buttons into the interface. At first, we drew the buttons “on top” of the app, but based on the customer’s feedback, we redesigned them to hide behind buildings. This involved incorporating the buttons into the 3D render, making them part of the 3D model. This helped us achieve smooth graphics and visibility of the buttons in any position.

Project Manager Svetlana Chernyavskaya

“Throughout the process, we often faced uncertainty about how the 3D/AR model would appear in the app. Repeated testing of the app on different devices allowed us to identify bugs promptly and modify the model accordingly.”

Technology Stack

Android

Jetpack Compose
ArCore
OpenGL
Firebase Cloud Messaging
Firebase Crashlytycs
MVVM

iOS

Swift
SwiftUI
ARKit
Reality Kit
SceneKit
SOLID
KISS
DRY
YAGNI

Results

Together with our partner team, we dedicated three months to developing an app that enables users to:

  • Experience exclusive 3D and AR tours of the residential complex and its individual buildings
  • Visualize the residential complex in detail and explore any building of interest
  • Switch seamlessly between 3D and AR modes
  • Highlight specific properties to contact the real estate developer for more information
  • Stay informed about news and updates related to the residential complex through push notifications
  • Receive support and answers from managers regarding any inquiries.

iOS
iOS
Android
3D tours

0

Let’s discuss your project!

It is free. We will tell you how the application will solve your problems.