Send SMS from app

I´m creating a app that needs to send SMS to different recievers when a button is tapped. The reciever will be selected from a dropdown that the user selects from.

I have no experience with sending SMS from an app. I would like to be able to use WIFI and not be depending on SIM-cards to send messages. Does anyone have some tips regarding how I should go about to solve this?

I would like to be able to use WIFI and not be depending on SIM-cards to send messages.

You need to clarify your goals here. Sending SMS is a very different problem than sending messages over Wi-Fi.

To get started, perhaps you can give us more details about the recipient of these messages? Are you targeting arbitrary people, in which case SMS probably makes sense? Or users of a specific app? Perhaps even your app? In that case you might be able to do something based on TCP/IP networking.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

The app is a type visitorApp. Visitors can select the person or company they are visiting from a list, and the app should then send a message to that person or company contact.

The app is supposed to run on a iPad stationed in a reseption or something similar. The end user should not need to have the same app to gett messages

You don't say what device those the persons/contacts are on. Is everyone on an Apple product?


Does being on Wi-Fi mean they will still be on the internet?


Do you have the skills/budget to DIY your own SMS server-in-the-middle?


Why is non-sim/cellular connectivity not allowed?

Thanks for clarifying your goals.

OK, let’s nail down some terminology first. Wi-Fi is not a messaging protocol. Wi-Fi is a link-level network protocol. Most Wi-Fi networks carry TCP/IP, with TCP being a transport protocol. Then, on top of TCP, there are a variety of messaging protocols, email, iMessage, and so on.

So the choice isn’t between SMS and Wi-Fi, it’s between SMS and some other messaging protocol.

With regards SMS, iOS has no APIs for sending SMS without user interaction (see QA1944 Sending SMS Programmatically). So if you choose SMS, you’ll have to implement your own SMS gateway. That is, you set up a server with the ability to send SMS messages and then have your clients connect to that server and ask it to send an SMS message on their behalf. This isn’t trivial, but it’s doable.

With regards other messaging protocols, the challenges relate to the devices to be notified. Does your organisation require that all users subscribe to some organisation-wide messaging service. If so, you should talk to the folks running that service to see if you can send messages that way.

If not, things get complex. For example, if your iPhone users only use iMessage, there’s no way for you to message them because there’s no way to send iMessages programmatically (and the protocol is not documented for third-party developers, so you can’t implement your own client).

The obvious fallback is email. I presume that your users will have email set up on their devices, so that solves that side of things. And, while iOS has no high-level API for sending email, the various email protocols are publicly documented, so you can implement your own sending code (or adopt some third-party library for this).

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"
Why wouldn't you use one of the third party communication API companies to solve this problem, e.g. Nexmo, Twilio, etc?
Send SMS from app
 
 
Q