devcode_sms 1.0.0 copy "devcode_sms: ^1.0.0" to clipboard
devcode_sms: ^1.0.0 copied to clipboard

A Flutter plugin for the DevCode SMS API. Send single or bulk SMS messages and check your account balance with a simple, typed Dart interface.

devcode_sms #

A Flutter plugin for the DevCode SMS API.
Easily send SMS messages and check your balance from any Flutter application.


Features #

  • โœ‰๏ธ Send a single SMS to any phone number
  • ๐Ÿ“ฆ Bulk SMS โ€” send the same message to multiple recipients
  • ๐Ÿ’ณ Check balance โ€” query remaining SMS credits
  • ๐Ÿงช Fully testable โ€” injectable HTTP client for unit tests
  • ๐Ÿ›ก๏ธ Typed exceptions โ€” DevcodeSmsException with status codes

Getting started #

1. Add the dependency #

dependencies:
  devcode_sms: ^0.0.1

2. Get your API key #

  1. Create an account at devcodesms.com
  2. Subscribe to an SMS plan
  3. Generate your API key in the "API Key" section

Usage #

Initialize the client #

import 'package:devcode_sms/devcode_sms.dart';

final sms = DevcodeSms(apiKey: 'YOUR_API_KEY');

Send an SMS #

try {
  final result = await sms.sendSms(
    sender: 'MyApp',          // Sender ID (max ~11 chars)
    phone: '+237659373726',   // International format
    message: 'Hello from Flutter!',
  );

  if (result.isSuccess) {
    print('Sent! ${result.message}');
  } else {
    print('Failed: ${result.message}');
  }
} on DevcodeSmsException catch (e) {
  print('Error ${e.statusCode}: ${e.message}');
}

Send bulk SMS #

final results = await sms.sendBulkSms(
  sender: 'MyApp',
  phones: ['+237659000001', '+237659000002', '+237659000003'],
  message: 'Promotional offer just for you!',
);

for (final r in results) {
  print('${r.isSuccess ? "โœ…" : "โŒ"} ${r.message}');
}

Check balance #

final balance = await sms.getBalance();

if (balance.isSuccess) {
  print('Remaining credits: ${balance.balance} SMS');
}

Error handling #

All API methods throw DevcodeSmsException on failure:

Property Description
message Human-readable description
statusCode HTTP status code (null for network errors)
rawResponse Raw body from the server (for debugging)
try {
  await sms.sendSms(...);
} on DevcodeSmsException catch (e) {
  print('Code: ${e.statusCode}, Message: ${e.message}');
}

Testing #

The client accepts an optional httpClient parameter for easy mocking:

import 'package:http/http.dart' as http;
import 'package:mocktail/mocktail.dart';

class MockHttpClient extends Mock implements http.Client {}

final mockClient = MockHttpClient();
final sms = DevcodeSms(apiKey: 'test', httpClient: mockClient);

Run the tests:

flutter test

API Reference #

DevcodeSms #

Constructor parameter Type Required Description
apiKey String โœ… Your DevCode SMS API key
httpClient http.Client? No Custom HTTP client (testing)
baseUrl String? No Override base URL (testing)

Methods #

Method Returns Description
sendSms(sender, phone, message) Future<SmsResponse> Send a single SMS
sendBulkSms(sender, phones, message) Future<List<SmsResponse>> Send to multiple recipients
getBalance() Future<BalanceResponse> Check remaining credits

Support #

2
likes
150
points
91
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for the DevCode SMS API. Send single or bulk SMS messages and check your account balance with a simple, typed Dart interface.

Homepage
Repository (GitHub)
View/report issues

Topics

#sms #messaging #notifications #api

License

BSD-3-Clause (license)

Dependencies

flutter, http

More

Packages that depend on devcode_sms

Packages that implement devcode_sms