Virtual phone number application
2SIM
A cross-platform Flutter communication application for managing virtual phone numbers, calls, SMS, OTP messages, and number-specific features from one place.
- Role
- Flutter Developer
- Focus
- Flutter feature development, Communication-focused mobile UI, iOS and Android delivery
- Platform
- Flutter, Dart, iOS, Android, Calling and messaging experiences
Public product views
One number across the full communication flow
Selected public screens showing number selection, incoming calls, OTP messages, feature configuration, and scheduled SMS.





Challenge
What needed to be made clear
Present a broad set of calling and messaging capabilities without making the experience feel like a collection of disconnected telecom settings.
Solution
A structure built around change
Organize the experience around the active virtual number, keep country selection and pricing understandable, and connect everyday calling, messaging, and configuration through predictable mobile flows.
Product decisions
Product decisions reflected in the Flutter experience
- Make the active virtual number the central context for calls, messages, settings, and available features.
- Let users browse numbers by country and understand the calling and messaging options before committing to one.
- Keep calls, SMS, OTP messages, contacts, and recent activity accessible through familiar communication patterns.
- Group forwarding, voicemail, recording, reminders, and automatic replies as clear number-level controls.
- Support scheduled messaging as part of the conversation flow instead of separating it into a disconnected utility.
Product context
2SIM is a virtual phone number application for people who need a separate line without carrying another device or using an additional physical SIM card. It supports private and business communication, online registrations, travel, and everyday number management.
Users can choose virtual numbers from more than 30 countries, make and receive calls, send and receive SMS, access OTP messages, and manage multiple numbers from the same product.
My contribution
I worked on the Flutter application and the delivery of its communication-focused experience for iOS and Android. My contribution centered on product flows that connect number discovery, activation, calling, messaging, communication history, and feature configuration within one consistent application.
Because this was client work, the case study focuses on the public product and my Flutter responsibilities rather than private source code, internal architecture, telecom providers, message delivery, billing, or analytics.
Number selection with clear context
The experience begins with choosing a country and a suitable virtual number. Country codes, availability, and international communication costs need to remain understandable before the user starts calling or messaging.
Once activated, the number becomes the main context for the rest of the Flutter interface. Calls, messages, contacts, recent activity, settings, and balance-related information stay connected to the line the user is managing.
Calling and messaging flows
2SIM brings familiar phone interactions into a cross-platform application. Incoming and outgoing calls, SMS conversations, OTP messages, voicemail, and recent activity need clear states and immediate feedback while network-dependent operations are in progress.
Scheduled SMS extends the conversation experience with date and time selection. The scheduling controls remain part of the message flow, allowing users to understand what will be sent and when without moving to a separate tool.
Number-level feature management
Each virtual number can include controls for call recording, call forwarding, voicemail, missed-call responses, SMS forwarding, and automatic replies. The interface groups these capabilities around the number they affect instead of exposing them as unrelated global settings.
This keeps advanced communication options discoverable while preserving a straightforward default experience for users who only need calls, messages, or OTP verification.
Cross-platform delivery
2SIM is publicly available for iOS, iPadOS, and Android. Flutter supports a consistent product language across number discovery, calling, messaging, contacts, settings, and account flows while keeping platform-specific communication behavior understandable to the user.