levibostian / Wendy-iOS

Build offline first iOS mobile apps. Remove loading screens, perform tasks instantly.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wendy v1.0

levibostian opened this issue · comments

Wendy began over 3 years ago. I created it to add offline support for an app that I was building at the time for an app I was building. Since then, the project has matured with improvements here and there as I add it to more and more production apps of mine.

Wendy has been very experimental for years. The more that I used it, the more that I learned about how to build offline apps.

The day has finally arrived. Wendy is ready to become stable. It's ready for it's next major upgrade.

Tasks planned for Wendy v1.0

  • Improved querying system. Add more power to the querying system. Wendy is a job queue library. This is not a unique idea. Job queue solutions exist in software already. What makes Wendy unique is it's a job queue system on the client side. This adds the need to incorporate the UI with the job queue system. When a pending task is added to Wendy, the UI of your app should reflect this. It should dynamically change depending on the running state of the pending task. This is done in Wendy through attaching listeners so your UI can change in real-time with the status of a pending task. This is great, but it's limited in it's functionality.

  • Improved testing of your pending tasks. The pending task API today is not very testable. Dependency injection is not good. This can be improved.

  • No more taskId returned when you add a pending task to Wendy. To use Wendy, the developer should not need to be responsible for managing an ID returned from Wendy. Using Wendy's querying system, you should be able to find a pending task anytime in the future if you need it.

  • Add a cache to make Wendy faster. This is optional, but an idea of mine. Having an in-memory cache will improve speed but it may be so minimal it's not worth it.

I'm excited. I am not sure when this will be complete so stay tuned. I am also making big, stable changes to my other library to help build offline capable apps, Teller.

Outdated, closing. Although, the planned changes are still on my mind 😄