The new reality of life is online dating and along with that comes terrible Tinder dates. With Liberate you can now make your excuse for leaving seem totally legit by receiving an actual text or phone call at the time of your choosing.

How?

Liberate is a cool little app that uses a number of technologies for is functionality. Outlined below are those different technologies in a little detail.

Swift

The iOS application was written entirely in Swift 2.1. It was done it Swift because that is the language we were working in and also the one that I prefer. It is clearly the future language of choice for Apple so I think that it is better to start using it now.

CocoaPods

CocoaPods is a package distribution tool for MacOS/iOS development. One thing you learn on you developer journey is that you shouldn't re-invent the wheel if you don't need to. Some of the Pods that I used in Liberate are as follows: + Alamofire - The Swift version of AFNetworking. This Pod pretties up networking in iOS and was used for all API calls to the server. + SwiftyJSON - Swifts handling of JSON is alright but SwiftyJSONs is much better. It integrates nicely with Alamofire and made parsing the data from my server a breeze. + Chameleon - Just under 2 weeks is not enough time to properly polish an app on your own so Chameleon makes that process much easier. If you need to work with palettes and colours Chameleon might just be for you. + MONActivityIndicatorView - The nice little loading indicator. A perfect little animation that was essentially plug and play. + RGCardViewLayout - Another example of being able to use something that looks great without having to devout too much time on it.

Node.js/Express

While not taught during the iOS bootcamp my previous education helped me with this part. In order for Liberate to actually work it needed brains and the server does the job. I made a REST API that hooked up to Twilio for the SMS/Call services.

MongoDB

On the server we need to store some data about when to send the alerts to the user so I did this in MongoDB. No real reason for choosing it.

Twilio

This is what makes the magic happen. Twilio is a great service that allows Liberate to make actual phone calls and send text messages to the users. We load up the server with pre-recorded audio files that can be served to the user. The advantage to sending real SMS and phone calls is that it shows up on the device as not just another notification from an app. If someone were to see it on your device they would assume it was legit because it 90% is.

Authy

Authy is a service that is a part of Twilio that allows for phone number verification. This was important so that people could not spam friends/enemies with phone calls and messages.

Why?

The idea came about as I was looking into Twilio's API for a different application and I figured that it was something that people would actually use. I hope that people not only get a laugh at it but that it could actually come in handy and save some super awkward times.