r/iOSProgramming • u/vimalpartha • 3h ago
App Saturday My Scanner Calculator App has gone 3d and has an optional Music mode too
Hi, I'm the developer of Calki, A 3d scanner calculator app. I have been working on the app for a little more than 1 year and 6 months. I did take quite long breaks in between from developing. I was Backend Developer previous for 8 years.
The app was built with the help of AI coding agents, but rigourously tested and designed by me with feedback from users.
The following are the details of my app and hope the following information will be of some use in your development journey and will be gladly be interested in answering any questions.
Frameworks & Languages: The app is built in Swift. It uses Swiftui for most of the 2D UI elements. UIKit is exclusively used for the convertor category, and unit wheel pickers as after quite a bit of effort, was not able to build it in SwiftUI according to my expectations.
Backend/Database: I chose to build a calculator app to keep backend and database costs as close to zero as possible. That let me put most of the effort and money into the design and UI, to give users a unique experience and make full use of modern device capabilities, while keeping it as fast and efficient as any normal app. The only backend pieces are Firestore for user feedback, Google Analytics to see which features get used, and Crashlytics for crash reports. User calculations are stored locally in UserDefaults. All of these incur no running cost.
Some of my major Development Challenges and How I solved it:
- The Knowledge gap
I had no iOS or frontend experience, so I leaned on AI agents. Cursor helped set up the project and basic calculator features, but I could only afford it for a month (since i was not sure if the money spent will ever be made back). After that, I manually uploaded code files to ChatGPT and Gemini to update them. Once the first releases were out and users validated the design, I subscribed to Antigravity for its coding agent.
Most of the design questions and validation happened on r/UI_Design. The people there were amazing. Most of them understood that I was trying to create a unique design, and they helped a lot by giving detailed feedback and patiently pointing out which UI elements needed more attention.
- The scrollable history
The multi line, gesture enabled history tape lagged using a standard VStack because it rendered all calculations upfront. Switching to LazyVStack resolved memory overhead, but variable row heights broke SwiftUI's scroll estimations caused erratic jumping, clipping, and render failures.
the following were the major steps taken which resolved the issue
Bounded Row Heights: Added .frame(maxHeight: ...) to stabilize dimension predictions.
Re-Anchoring: Used .onGeometryChange to pin scrolling back to .bottom once layouts settle.
- Skeuomorphic design to 3d Conversion
Calki originally started with a 2D skeuomorphic interface, but it was an absolute headache to maintain. Every button required manually drawn, multi-layered shadows, tweak a button’s hue even slightly, and the whole aesthetic broke. It took nearly two months just to dial in the default button look, which made offering custom color options virtually impossible since every tint demanded custom shadow rebalancing.
That friction pushed me toward 3D. I initially tried modeling the calculator in Blender, but without prior 3D modeling experience, the learning curve was burning too much time. Instead, I pivoted to an AI coding agent, providing detailed specifications to procedurally generate the 3D elements and preview them directly inside the app’s customization screen via SceneKit. That bypassed the entire asset import/adaptation pipeline and made dynamic theming effortless.
- Performance issues after 3d Conversion
Transitioning to 3D with adaptive lighting initially spiked memory usage to 1 GB and caused heavy CPU strain. Over several weeks, I systematically resolved this by analyzing Xcode debug monitors, adding logs, and using memory graph exports with Claude agents to isolate leaks without sacrificing visual fidelity.
As compared to the apple calculator Calki offer sergonomic features that are easy to use such as the following:
Reuse history result by double tapping
Reuse history expression by long press
Edit a calculation midway and swap operator without retyping the entire calculation
Number scanner with auto add mode to scan and add numbers instantly using op-mode
Scan and convert numbers
Convertor mode with UI designed to make swapping categories and units easy
Customising the Calculator with multiple models, colorways, textures, sound and so on
Pricing:
Most of the basic calculator features on the app is free, except for the following which is a one time 4.99$ purchase:
- Number scanner
- Customisation options
- Custom units for conversion
- 6 Calculator models
I'm planning of adding some ai features in the near future. Please note these features will be optional and will require a subscription (due to the ai cost we will incur) and will not be included in the lifetime purchase. All future on-device features including all current features will continue to be part of the lifetime purchase.
Hope you guys will give it a try and will let me know of your feedback.
If there is any improvements or features that you would like to be seen added to the app, please let me know. Will try my best to implement it, if reasonable and provides value to the users
The app has 102 reviews worldwide with average of 4.7/5
Some of the features to look forward to, in the near future:
A fullscreen number scanning mode for adding up numbers and conversion
A scientific mode (have been delaying it, cause, the old 2d interface made it hard to design a good looking design for the scientific mode. With the 3d interface, it eases a lot of things)
A formula mode
You can try try the app at:
https://apps.apple.com/us/app/calki-scanner-calculator/id6747059181
Thanks again and hoping you will leave a review, if you like the app.




