Unread by the Numbers
We’re in the midst of an enormous refactor at Bloglovin. We’ve left thousands of lines of code in our wake over the last three weeks, and it got me thinking about the amount of code that went into Unread over the ~12 months of its development.
Here’s Unread by the numbers, counting lines of code just in .m files. These line counts do not include header files, documentation, or third party libraries except for libraries like JTSImageViewController or OvershareKit which were written by me1 in the course of developing Unread:
26,993 UNRKit (API & persistence code) 20,138 Unread iPhone Project (misc. & not-yet-reusable UI) 17,514 Overshare Kit (sharing library) 8,637 UNRUIKit (reusable UI code) 2,430 JTSImageviewController 381 JTSReachability 239 JTSScrollIndicator 139 JTSSemanticReload ------ ------------------ 76,471 TOTAL
I worked on Unread for about a year before handing over the reigns to Supertop. Most of this code was written in the first-six months of development, though.
People might be most surprised by that Overshare Kit count. It represents 23 percent of the overall amount of code. I wanted Unread to have lots of great sharing options from 1.0, and with a library that could be reused in any future app. Overshare Kit is now mostly obviated by iOS 8 Extensions, but at the time it was unclear if Apple would ever bother trying to make sharing easier on iOS.
These numbers also don’t include numerous lines of code from open source libraries without which Unread would have been impossible: FMDB, FastImageCache, jQuery, Bigfoot.js, and others.
In the case of OvershareKit I am not the only author, but I contributed the bulk of the initial library and API design. ↩