I’m Running Late Setback: Can’t Send Texts in the Background

Originally, I wanted to implement an texting in the background for the I’m Running Late iOS app. After all, the whole idea of the app is that you may be stuck in traffic and not really in any position to send the I’m Running Late while you’re driving or otherwise indisposed in transit. If you in the car, for instance, sending that text, even if it just means clicking the Send Button, is dangerous. It totally defeats the purpose.

The idea of I’m Running Late is it’s a background process like cron for the iPhone. It just programs events based on the clock and your calendar, then, when the grace period begins, if your Sat Nav notices you’re not within a prescribed number of meters from your event location, it automatically informs the host—or your boss—that you’re running late.

How is this not a thing?

It’s not a thing because Apple‘s philosophy is, if you can send one text without consent, you will be able to spam infinite texts without consent. But, the thing is, the App Review team should be able to detect of an app was abusing the option to text without consent, so why prevent this safety feature when you could just stop it from being abused?

For the record, texting without consent is a safety feature. When you’re driving to an Event, it’s dangerous to have to look at your phone and hit a consent button. Forcing the user to do so may even violate some state laws. Yet, you want to send the text because you are running late, yet you can’t because you’re stuck in traffic.

Sadly, you need a user interaction to send an email too.

With both options stupidly closed by Apple, making this very important use case at first impossible to solve, the only option left is to send the text via a GET Query, for example, to a web service, and rely on the web service to send the text.

One such service is Twilio. Twilio seems to be the leader in Web to SMS transactions. Unfortunately, as far as I can tell, Twilio is a paid service and I’m still trying to figure out how this service works. I created an account and want to test it, but if all users of I’m Running Late are going to be using the service, I’m sure I will have to set it up as a business account.

One possibility I’m considering is having a monthly fee to use I’m Running Late, that I can use to pay Twilio for the use of their service. However, I want the fee to be small, like 15¢ per user per month. And then, say if Twilio costs $15 per month for one hundred users, then one hundred I’m Running Late users would completely cover the cost and I won’t need to let TimeHorse, LLC go further into debt.

The question is, though, what if I have less than one hundred users. In that case, I may have to disable the service or come up with some poor-man version on this very server. Initially, all text message requests could come here, and when the numbers crack one hundred, I can tell I’m Running Late to switch to the Twilio server.

On the other hand, maybe I’m going about this all wrong. IIRC, all Teslas are running Linux. And if the Tesla is connected to the driver’s Phone, and it knows the time, and it has the Phone’s calendar, then surely it could have an app that texts the Event organizer when the driver is running late.

And I could write that code!

Hear that Tesla? You could be bidding on me, because I’m still available for hire but my rates are going up with all the offers!

I’m Running Late

My boss doesn’t understand how hard it is to text when you’re stuck in traffic. That’s why he wants to fire me. That’s why I’m looking for a new job. And I will continue to consider a better offer and say goodbye to just under 18 years of Federal Service, but I think I’ve come up with a better way!

The thing is, if I’m running late because I’m stuck in traffic—or in a car with a lackadaisical Uber driver who won’t listen when I tell him I need to get to work on time—I might just have a solution. I could build an iOS app to text my boss for me!

I’m not actually sure I can do this. My app would have to always be running or at least be run at certain times when I would be expected to text. The idea would be, it would trigger at a fixed interval before the time I’m supposed to be at an Event, and if I’m not, say, within 100 m of that location, automatically send a text saying I was stuck in traffic and running late.

Phase one will be to build the app framework. Once that’s done, I want to see if I can have my app generate a text in the first place. I wouldn’t be surprised if iOS disallows that, so that’s why I want to determine that first.

Phase two will involve me setting a timer and providing a notification when the timer dings warning that, if the notification isn’t dismissed, the text will be sent.

Phase three will involve getting the GPS location of the phone and comparing it to the location of the Event to see if the phone is within 100 m, and if so, it will disable the text. I will then add a grace period where you must send the message by. For instance, if you’re due at the Event at 10:00, and you set the grace period to 15 minutes, the text goes out at 09:45, well before the Event is scheduled to begin.

Phase four will read your calendar to automatically generate alarms and warning texts. This will be filterable so that only events you choose will send out the text warnings. Each event will have to have a text number associated with it, but that shouldn’t be too hard if I also give the App access to the owner’s Contact List where you can select one or more numbers from.

I hope to have all that code complete, tested, and submitted to the App store by 1 July. I don’t know if I’ll have the time—or even if the texting is possible—but the beauty of this App is it’s extremely multi-functional. It doesn’t just need to be about getting to work, it can be for any appointment where you’re likely to be stuck in traffic or otherwise would have difficulty generating a text in a timely fashion.

I know for my part, when the world is collapsing on me and someone commits grand larceny against me or I get a $2,000 tyre repair bill for a slow leak, and thus am frazzled and having trouble remembering my name never mind to text when I’m running late, I won’t get fired because I arrive at 10:05. And that’s a very good thing!

Feel free to track my progress and remember, though job offers keep coming in, I remain available for hire!