I was looking into various ways interesting ways of using SMS/Call API's for practical purposes, I wondered if it was possible to leverage those API's -- along with a cloud platform -- to access internet websites/services without a data or wifi connection.

What it does

Under the hood, the app utilizes twilio's SMS API as a router of internet traffic between a client (without an internet connection) and a server. Essentially users can visit sites like Wikipedia, Google Maps, etc without actually connecting to the internet (via SMS p2p communication). The app has a simple and fluid interface that recreates the browser experience by utilizing react-native to render the sms communications. One of the biggest implication of such a system is that it makes the internet more accessible to people in certain situations (such as people living in parts of the world with no/expensive internet, people in certain situations like natural disasters, etc). This is basically taking advantage of the low cost of SMS compared to that of mobile data.

How I built it

I used nodejs + twilio + google cloud platform for the back-end, and react-native for the front-end client (Android App).

Challenges I ran into && Accomplishments that I'm proud of

While the implementation of API's with node seemed pretty straightforward from the beginning, I've had to interact and hack with low-level android API to perform certain functions (such as send an SMS from within the app without redirecting the user to the messages app, building an event listener to listen to system messages).

What I learned

I've built my first android app using react-native. I've also learned a lot of low-level details of how android apps and transpilers work.

Share this project: