And yes, you're right, there are rate-limits for endpoints in Twitter API, I've optimized the app to be in rate-limits and still be able to make the most of it.
For ex. I recently added Messages in Kizie. Twitter API's Messages endpoint has a rate-limit of 15 requests per 15 min window. Really really low for something like messages. On top of that each request returns at most 50 messages(not conversations).
How Kizie handles it is it makes 3 requests on initial load and then checks for new messages every 2.5 minutes. It was kinda tricky to do all of it reliably and I'm still trying optimise it more for better experience :)