Zerista Dev – iOS App

Development of the Zerista iOS app started in the summer of 2011. Due to lack of internal resources and knowledge, we decided to outsource  development of the initial version.  That didn’t work. We ended up with an app that was a wrapper around html pages – it was slow and didn’t work offline. Back in 2011 that was a deal-breaker for conferences. Cell phone coverage at event venues was poor (often in basements with lots of other people around) and WiFi was non-existent or super expensive. Today things are better, but offline usage is still an important competitive advantage because it makes for a much better user experience and WiFi at big events still costs tens of thousands of dollars.

So in November 2011, we brought development in house and started working on an Android version. I put myself in charge of the iOS app because I had an iPhone and wanted to know how to develop an app. And I was more interested in programming in Objective C than Java.

Between November 2011 and June 2019, we released 327 versions of the app, or a new release about every 8 days. And until Apple drastically changed the rules around branded apps in 2017, we delivered over 1, 000 apps to the Zerista iTunes account (the engineering work behind automating that process deserves its own blog post). To see the app in action, you can install the Zerista Live app, which is what the sales team uses to demo to potential customers.

Zerista Live! Screenshot

I won’t go over all of the app’s features, for that you read the Zerista marketing site or download the app. But its an app I am quite proud of, it has a vast feature set and of course works great offline.

As of June 2019, here is how the app code breaks down:

───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
C Header                  2768     87155    12213     49936    25006        144
Objective C               1362    182019    31663     15499   134857      17520
XCode Config                72       756        0         0      756          0
Markdown                    30     18523     4077         0    14446          0
JSON                        20     16032       13         0    16019          0
License                     16      1380      243         0     1137          0
Shell                       16      8115      118       128     7869        300
SVG                          9      1542        7         9     1526          0
Swift                        5       970      181        65      724         88
JavaScript                   4     15014     2726      3458     8830       1537
Ruby                         4       114       14        30       70          8
Plain Text                   3        69       14         0       55          0
CSS                          2       906       96        31      779          0
D                            2         9        0         0        9          0
Mustache                     2       105       15         0       90          2
gitignore                    2        24        3         4       17          0
C                            1       290        0         0      290          0
Gherkin Specificati…         1         9        2         0        7          0
XML                          1       991        0         0      991          0
───────────────────────────────────────────────────────────────────────────────
Total                     4320    334023    51385     69160   213478      19599
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop $7,540,777
Estimated Schedule Effort 33.060460 months
Estimated People Required 27.018539
Estimated Total Time: 74 years
───────────────────────────────────────────────────────────────────────────────
* Statistics generated by scc (cost estimates are based on the COCOMO model so consider them wildly inaccurate)

Notice there is very little Swift code – but that’s also a topic for another blog post.

And fun fact – 99% of the app wasn’t even written on a Mac!

Leave a Reply

Your email address will not be published. Required fields are marked *

Top