← All work

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.

2SIM incoming call experience with call forwarding, messaging, and voicemail actions2SIM country selection for choosing a local virtual phone number2SIM message inbox showing OTP verification messages for online services2SIM number settings for recording, voicemail, forwarding, and automatic replies2SIM conversation screen with scheduled SMS date and time selection

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

  1. Make the active virtual number the central context for calls, messages, settings, and available features.
  2. Let users browse numbers by country and understand the calling and messaging options before committing to one.
  3. Keep calls, SMS, OTP messages, contacts, and recent activity accessible through familiar communication patterns.
  4. Group forwarding, voicemail, recording, reminders, and automatic replies as clear number-level controls.
  5. 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.