:: From one geek to another ::

Posts Tagged iPhone

Since the beginning of the year Olive Tree has been planning some major changes to the iPhone (and now iPad) BibleReader. It began last January with a few large brainstorming sessions and lots of whiteboard space. Then in February we got a bit sidetracked by the arrival of the iPad. The addition of the iPad to our app has been a huge success and from our work on that app we have learned a few things that have caused us to rethink a few of our ideas for the future of BibleReader.

Just as we thought we were getting our feet under us again, we went to WWDC 2010 – and everything changed again. 😉 As soon as we got back from WWDC we resumed our brainstorming sessions trying to incorporate many of the ideas we had been exposed to at WWDC into our BibleReader update. The past two months have been very focused. We have spent a considerable amount of time planning, having meetings, ad-hoc discussions, and friendly debates, all of which have helped us hone in on our new vision for BibleReader. We have also hired a few more people to help us carry out this new vision and now we feel we are ready to dig in and focus more on the work and less on planning.

Its all very exciting to me. Bible readers on mobile devices have been around since the inception of Olive Tree as a company. Since that time mobile devices have evolved and as such so have the readers on those devices. I believe we are still at the defining moments of this technology and Olive Tree plans to lead the way on what that technology will look like, I think you will be quite impressed.

Stay tuned for my next blog post discussing the trials associated with making large changes to an application that people use daily and love.

Progress on the Evernote backup is moving along quite nicely and I expect to be releasing our first beta with Evernote integration to our beta testers later this afternoon or early tomorrow morning. I am excited to hear their initial reactions and feedback on how to make it better.

Because Evernote is not intended to backup bible notes I had to get creative with the note tags that Evernote does offer, and I think I came up with a simple yet effective system that does not intrude on a user’s experience when using Evernote for notes outside of BibleReader.

Every note has associated with it a category, a verse reference, and an icon. I used tags to store this information, so a note referencing John 3:16 will have a tag [Verse:Jn 3:16]. If that note is in a folder such as “Bible Studies” I create a tag [Category:Bible Studies] and associate the tag with the note. Also it should be noted that in order to keep a user’s notes separate from their bible notes I create a notebook in Evernote called “Bible Notes” and place all the notes we sync from BibleReader in that notebook.

We are trying to make this as open and as generic as possible so that end users do not feel like their notes are forever tied to Olive Tree and so that hopefully other bible programs such as Accordance can make use of the Evernote system and we can have desktop to mobile note synchronization.

After having such a successful day yesterday with Evernote I was anxious to get started fleshing out the details of our notes backup implementation. I spent most of the morning beefing up the login code for the Evernote servers. Making sure that we handle all errors without the app just crashing if it encounters one. Then I started looking into the right way to plug in notes backup into BibleReader. It took everything I had in me not to just start hacking away and writing code, but being that I am still a relatively new employee at Olive Tree I am still finding my way through our code base and understanding the structure of how notes are handled by our software. Being that we develop for more than one platform whatever I do needs to be easily plugged into those other ports at some point. We also want to implement a ‘pluggable’ system so that other backup methods can be used as well in the future. So, while I was hoping for a beta by the end of next week, it may be a little longer than that, but it will definitely be worth the wait, I promise. 😉

5. Open XCode and add a ‘3rdParty’ group with the group “Evernote” beneath it

6. From the 3rdParty group click “Add existing files” and select the thrift-cocoa folder.

7. Expand the thrift-cocoa folder and delete the references to the folder server and everything contained within it.

8) Expand the transport folder and delete TSocketClient.m & TSocketClient.h (Evernote does not appear to need these and they won’t build with the iPhone SDK.)

9. From the “Evernote” group click “Add existing files” and select the cocoa folder under evernote-1.xx/src/cocoa

10. Try to build the system. I am using 1.13 and for whatever reason the cocoa is borked and needs some massaging. If you get errors like ‘EDAM_MIME_TYPES’ undeclared (first use in this function) then you have two choices. Install boost and thrift idl and run the thrift files in evernote-api-1.xx/src/thrift through thrift and it should generate good files otherwise you need to look at the errors and determine if you can fix them using some simple replacements as I have done below…