Skip to content

Instantly share code, notes, and snippets.

@aharpole
Created August 27, 2012 03:36
Show Gist options
  • Save aharpole/3485302 to your computer and use it in GitHub Desktop.
Save aharpole/3485302 to your computer and use it in GitHub Desktop.
Report this bug to Evernote!
Want to get Evernote's attention about the fact that its app has awful performance and point out an easy fix? Paste the following test into a support ticket of the type "bug report".
Your iOS app hangs at the drop of a hat. Though I'm sure there are tons of things that are causing the performance of the app to not be that good, the most egregious offender here is the fact that you appear to do all of your loading and synchronization in the main thread of execution of the app.
When you perform long running blocking operations (like syncing notes) in the main thread, the application is unusable to the user (i.e. it hangs). Furthermore, you make poor use of modern dual-core iPhones and iPads by not multithreading.
Please, for the love of all that is sacred, do your data synchronization on a secondary thread so that when I open the app, I can immediately get to doing what I want to do.
There may be some parts of this process that might have to be blocking (like updating the UITableView of notes, for instance) and that's okay, but that particular part of the process should be encapsulated into a small module of code so that only what absolutely must block the main thread blocks it.
If you're already doing sync on a secondary thread, you're not doing nearly enough of it on a secondary thread or you need to revisit your implementation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment