![]() ![]() The key is, of course, making sure your operations are in fact self-contained. When an operation can be made self-contained - when it can just do a thing and then call back to the main thread, without threading issues - we use a serial queue if there’s any chance it could noticeably block the main thread. The parser isn’t the only code we run on a serial queue. If the hash matches the hash from the last time, then we know the content hasn’t been modified, and we skip parsing. We also create a hash of the raw feed content whenever we download a feed. ![]() We use conditional GET, which gives the server the chance to respond with a 304 Not Modified, and no content, when a feed hasn’t changed since the last time we asked for it. The parsers are fast - but we also do our best to skip parsing entirely when we can. ![]() Since parsing is a self-contained operation - we input some data and get back objects - there are no threading issues. That’s fast, but we do another thing as well: run the parser in the background on a serial queue. On my 2012 iMac, parsing a local copy of some past instance of the Daring Fireball Atom feed - relatively large at 112K in size - happens in 0.009 seconds. The most painful way to parse XML is with a SAX parser - but it’s also how you’ll get the best performance and use the least memory. The below items are in no particular order. Because NetNewsWire is - like many apps these days - basically a fancy database browser where data comes from the web, some of these will apply to other apps. Make sure, in other words, that performance isn’t just a topping - it’s the pizza.īelow are some of the specific reasons NetNewsWire is fast. Make sure it‘s part of every decision every day. The best general advice I can give is just this: make sure performance is part of the foundation of your app. If you take a month or two to speed things up, from time to time, your app will always be - at best - just kind of heading toward satisfactory, but never to arrive. I suspect that it’s hard to do this any other way. Being fast is part of the very definition of the app. This is why apps from Omni and Panic have esoteric features, and in Omni’s case lots of customization options.NetNewsWire is fast because performance is one of our core values. This is why BBEdit has so many esoteric features. One can argue that most people don’t use smart folders, and few people script apps with AppleScript - but that’s exactly why there’s an opportunity for a paid app that does support such things. It doesn’t support the system share menu. There’s no meaningfulĪppleScript support. It still has the “lite” feature set, nothing like my beloved Let Apple News and Flipboard be the simple news readers - I think the opportunity in today’s world for a non-free Mac RSS reader is at the high-end. Second, Black Pixel has simplified so much, they’ve removed a lot of what made NetNewsWire NetNewsWire. First, I think the prices are too low: $10 for the Mac app $4 for the iPhone app and the syncing service is free. ![]() The apps are solid, and so far the syncing is working flawlessly and quickly for me.īut, I have some concerns. Black Pixel has finally shipped NetNewsWire 4.0 for Mac - and an all-new iOS app, and a new sync service. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |