Cinnamon logo
Cinnamon logo
Cinnamon logo
Close

Home

Projects

Services

About Us

Careers

Blog

Contact Us

Close

Smart Build: Maximize
your field survey

An application for construction management. Make manipulation over construction map and export report as a PDF document.

IOS DEVELOPMENT

placeholderHero_Img__1_.png

There are many approaches and technologies that can be used to implement the construction management application. We made the discovery of every technology and approach that could fit the client’s requirements and we have chosen the best for Smart Build. The users have an application that is easy to use with all the needed features. The UI is built using friendly Apple UI components.

Scope of work

Development Tools
XCODE
SWIFTLINT
FASTLANE
PROXYMAN
GIT
Apple Frameworks
SWIFTUI
STOREKIT
PDFKIT
COREDATA
COMBINE
PENCILKIT
Third-party Dependencies
GOOGLESIGNIN
GOOGLERESTDRIVE
KEYCHAINACCESS
Integration
GOOGLE SHEET
SPREADSHEET
IN-APP PURCHASE

Most challenging feature: PDF map manipulation

The most complex feature was the manipulation over the construction map (adopting PDFKit framework). Adopt the interactions on the construction map and simplify adding and removing markers on the map (PDF annotations).

We created our own SDK for handling that, it’s the wrapper over the PDFKit that’s adopted for our purposes.

All the logic is separated into InteractivePDFView and AnnotatablePDFView based on the actions for interactions on handling the annotations.

This app is available only on the App Store for iPad.

placeholderMost challenging feature.jpg

Apple Frameworks

Hero_Img__1_.png
PDFKit

Used for manipulation of the PDF document (More details can be found in the next section)

Hero_Img__1_.png
CoreData

Used for local storage. Implemented live preview on every data model.

Hero_Img__1_.png
Combine

Mostly used for async tasks fetching data from local storage.

Hero_Img__1_.png
PencilKit

Draw over the captured image to mark important sections.

SwiftUI with the latest tech stack (iOS 15.0)

We use Swiftlint to write code by team standard and Fastlane to automate the whole development and configuration process. We use Git for code version control. Also, making the pull requests and doing the code reviews.

The main features are oriented toward manipulating the PDF document (construction map), adding markers on the PDF document and storing the data in the local storage. The PDF document is loaded from the files (locally). The application provides In-App-Purchase. The user has limited functionalities until he buys the subscription.

As for this project, we start every project with our iOS project template.

placeholderSwiftUI_1 (1).jpg
placeholderSwiftUI_2 (1).jpg

Integrations

This application provides exporting the PDF document (report) but also exporting report in Google sheet.

To do that, we need Google sign in (GoogleSignIn) and other Google services to access Google Drive (GoogleRestDrive). The Spreadsheet is designed and generated from the app and populated with relevant data.

placeholderIntegrations-Desktop.png

Core Features

Core Smart Build features are Projects, Mapping, Interaction, and Export. They revolve around user interaction with the floor plan image.

What we learned

We found PDFKit framework bugs and limitations. But we found out the best approaches how to deal with them.

To escape the PDFAnnotations loading bug, we needed to add 3 seconds progress bar when showing the PDF document before adding PDF annotations. If the PDF annotation is attached to the PDF document before the document is fully loaded, the annotation could not be removed.

We listed this issue as an opened bug on Apple Developer Forum. Second, the two-finger rotation is not possible, because the PDF document works only with the right angle (0, 90, 180, 270). We also found a way how to proceed with that.

app store

Similar projects

placeholderhero_desktop__1_.png

PERFORMANCE MARKETING

Stake Something:
Performance Marketing

Stake Something challenges users to risk their own money by either fulfilling their goals and keeping their stakes or transferring that money to a charity if they fail. Cinnamon worked on performance marketing strategies to deliver mobile installs to the client’s app as well as to brand the app for the Australian market.

arrow right

See all projects

Job application illustration

Have a project in mind?

Let's work together.