As you know, last June we launched a Kickstarter campaign to fund the development of PocketBible for Mac OS X. As part of that campaign, we had to estimate a ship date for the product. If you know anything about software development you know that ship dates are impossible to accurately predict for complex projects, and companies that make it a hard-and-fast requirement to ship on a particular date end up issuing a series of “point releases” to fix the problems that management wouldn’t allow the programmers to fix before the ship date. So it could be argued that even products that hit their ship dates don’t hit their ship dates.
But Kickstarter required us to name an estimated ship date. I chose May 2014 based on the roughly 9 months it took our Windows Phone / Windows 8 developer to port PocketBible to that platform. I figured I had a head start over that project, since I had the iOS version of PocketBible to lift code from. (iOS and Mac both use the same language, the same development environment, and a very similar API.) I knew I’d have to take time out for iOS 7 (turned out to be more than I thought), so I’d probably consume most of that head start with that.
The Kickstarter campaign was successful and development started in August 2013. I ended up spending a lot of the rest of 2013 on iOS 7, so full-time development on the Mac didn’t really start until January.
Since most of you aren’t software professionals, I know that there is an assumption out there that when we said “May 2014″ that we knew what we were talking about. And furthermore, I know that many of you think “May” means “May 1″ (which is today). That’s OK; you don’t speak the language of programmers and don’t understand our idioms. With that in mind I thought I’d make May 1 be a major project evaluation date. The idea is that this is the day that I honestly evaluate our progress and choose features to cut or simplify in order to do my best to meet the goal of delivering this product by the end of the month.
I’ve been posting progress updates as I go along, so you have a good idea what I have done. What’s less clear is what is remaining to be done. That list looks roughly like this:
- Autosync – Just need to add some user interface to turn this on and set the frequency. The underlying code is already there to actually do the synchronization.
- Pane management – Provide a way to open and close panes. This is mostly user interface. The underlying code is already there.
- Button icons – I have graphics for the majority of buttons, but not all.
- Notes – Implement a note editor and the ability to show a list of your notes. The latter is easy. The former I hope to lift from Android. Also implement note searching.
- History – Implement back/forward . Hope to lift this from iOS.
- Search – The bulk of this is done. I have a small number of special cases to deal with, for example if you search the Bible for John 3:16 it should show you John 3:16, not search for the text “JOHN 3:16″ in your Bible.
- Devotionals – Finish the devotional go-to pane and the features of the Today menu. This includes setting a start date, catching up when you get behind, and providing a user interface to marking the day’s reading as complete.
- Highlights – Finish the highlight pane. I can highlight verses and show lists of highlighted verses but there are a few more little features (such as deleting all highlights in a particular color and renaming the highlight colors for Advanced Features owners) that need to be implemented.
- Preferred Books – Provide user interface to choose preferred books.
- Remove some features that actually belong to the advanced feature set. These include being able to create multiple saved screen layouts.
- Fix a few bugs I’ve been living with but you won’t want to.
If all goes extremely well, I can get all of the above done by mid-June. All will not go extremely well. I will most likely delay some of these features, such as searching notes, until after the initial release.
The list above excludes features I intend to implement for the Advanced Feature Set. The plan would be to make the free version of the program available, then implement the Advanced Feature Set. Right now, that list looks something like this:
- Autostudy – Word study, verse study, and I’m hoping to add a new study called “Today”, which will pull today’s Bible and devotional reading into one convenient document.
- Saved Layouts – The ability to create different “desktops” or “layouts” for different study configurations.
- Open All Books – Open all installed books into a predefined layout.
- Journal Notes – Notes that are not attached to a verse, just like the Journal features on PocketBible for iOS.
- Named Highlight Colors – This is already done.
If all goes extremely well, these features could be complete by mid-July. All will not go extremely well.
As part of our Kickstarter campaign, we also promised to do a Mac version of BookBuilder. We estimated that would be complete at the end of June. I don’t think it will take long and may attack it over a couple of weekends. I’ll have more to say about that project once I get a chance to look into it.
This sounds like I’m announcing that the program will be late, but I’m actually quite happy with our progress and am optimistic about meeting these dates. I also hope to make some betas available to our Kickstarter supporters before the final version ships, so it’s possible you’ll be using the program relatively soon.
Thanks for your support during this process. If you like what we’re doing here, give us a High 5!
Tags: Mac OS, PocketBible, Programming