Nibou online therapy
In 2018, a businesswoman approached me with an idea for a mental wellness iOS app connecting users to qualified therapists. I took the concept from a slide deck to an MVP, launching Nibou in the UAE and Turkey within a year.

Project highlights
Built and led a team of four: a junior iOS engineer, UX designer, QA engineer, and a backend engineer
I developed two iOS apps — one for customers and one for therapists — while mentoring a junior iOS engineer who assisted me
Used Swift and programmatic UIKit to build a highly customized user experience
Leveraged DispatchQueues and DispatchGroups for concurrency, which resulted in a smooth and responsive user experience
The backend was built with Ruby on Rails
Primarily integrated REST APIs for core functionality, while using Socket.io for real-time chat functionality
Integrated Stripe for secure payment processing
Now, I’ll highlight some of the most interesting iOS engineering aspects of Nibou.
Bespoke user experience

Created a bespoke user experience with custom UI components using UIKit
Optimized for all iPhone models and iPads with AutoLayout
Utilized UIView animations and CoreAnimation for smooth transitions
Integrated Lottie for complex animations like the one above
Leveraged DispatchQueues and DispatchGroups for a smooth, responsive user experience
Payments

Integrated Stripe iOS SDK to securely tokenize user cards and send tokens via an SSL-secured REST API
Nibou offered its users the convenience to store and switch between multiple cards within the app
Used a server-synced timer to track therapist session duration and calculate costs
After a session ended, the app sent a request to the backend to trigger a payment via the Stripe API using the stored token
The user could also view their transaction history in the app
Networking

Core networking tasks like authentication and therapist search were handled via URLSession integrating with a REST API
Real-time chat functionality was powered by WebSockets and the Socket.io SDK
In addition to a responsive chat experience, the feature had to be carefully architected to track and charge users based on the time the therapist spent composing messages
The chat user experience was achieved by customizing a third-party library built on UICollectionView
Therapist app

The therapist app shared much of the same foundation and architecture as the client app, with additional utility features tailored for therapists.
Both the therapist and user apps utilized iOS Localization to support English, Arabic, and Turkish
Therapists could highlight and save important messages to ensure continuity of care if a user switched therapists
Firebase was leveraged for push notifications and alerts, helping therapists maintain timely response rates
Backend chat data was mirrored into CoreData, enabling powerful offline search functionality for therapists
While Nibou shut its doors in late 2024, it remains a project I'm incredibly proud of due to the depth of work and valuable learning experiences I gained.
If you think I’d be a great fit for your project, please drop me a line at shawnfrank.work@gmail.com