A react native SMS client based on Twilio. This uses Twilio numbers and APIs. Currently, this project is only tested on Android.
The cellphone plans are way too expensive where I live while tablet plans are more accessible. Using this application would allow sending text messages even when on a tablet plan. Also, this project would be great for travellers since it would eliminate many roaming issues.
This application could eventually have a web version in normal react to access your SMS on a computer.
I'm doing this project to learn React Native. So feel free to open PRs to improve the codebase.
- Be able to select phone numbers
- Change the visual to more easily understand that's a dropdown
- Display conversations by number
- Display all conversations
- Change navigation bar when in a conversation
- Display a conversation
- Style conversation
- Order messages and conversations
- Android back button
- Always fetch messages
- Save already received messages
- Save already received numbers
- Display phone numbers with conversations but that wasn't received by the API
- Manage response paging (1)
- Send SMS
- Display unacknowledged sent messages
- Don't lose received message when a single page fail
- Start new conversation
- From a number
- From a contact
- Use contacts to display names
- System notifications
- Use a background job
- Reduce network usage
- Configurable fetch timeout
- Don't query twice for the same SMS (2)
- Restore lastFetch
- After 1 and 2, I'll remove fake network responses
- (Bug) The reverse list for messages force every messages to load
- Always show end of conversation first (facebook/react-native#13727)
- Display money left
- Manage message errors from Twilio's API
- Adds a banner for no network
- Display when loading
- Display message's date
- Delete messages
- Delete conversations
- Login page to replace configs
- Router animation
- Manage multipart messages
- A way to create a Twilio account from the app
- Account managing page
- Balance
- Usage history
- Buy phone numbers
- Have servers
- To manage accounts
- To do push notifications
- React Native
- React
- Redux
- Redux-loop
- Flow (a little bit)
- Jest
Not using immutable.js. I don't use it since I think it would prevent me from doing my type definitions with flow. If I'm wrong or if you think it could help me to use it, please open an issue.
I chose redux-loop over others side effect management library because I like how I can write tests for it.
With the current version of ReactNative (0.44.0), we can't use Hot Reload with redux-loop.
You need to create yourself your Twilio account.
Currently, you also need to create a .env
file containing your api's keys.
TWILIO_ACCOUNT_SID=something
TWILIO_AUTH_TOKEN=somethingelse
I was planning to do this project alone, but if you want to help I would love to work with you.