When working on my first iPhone app, I needed to import the libXML framework into my project. I took a look at a sample app that used the libXML framework, and made sure that the framework list in my project matched the one in the sample project – but for some reason my project wouldn’t compile. It kept complaining that it couldn’t find a libXML header file or some such, and so finally i turned to The Google, and found the answer. I’m sure this stuff is a no-brainer for more experienced Cocoa / iPhone developers, but since I’m neither yet, I thought this was a bit trickier than I expected.

For extra clarity, I’m going to do a simple step by step to show how to get everything working in your project, if you’re having a similar problem:

1. Add the libXML framework to your project in XCode

The proper framework is located in: /Developer/Platforms/Aspen.platform/Developer/SDKs/Aspen1.2.sdk/usr/lib

2. Verify the libXML framework is properly added. This is where I got stumped, because my framework was added by my project wasn’t compiling! It still couldn’t find the proper header files for libXML, even though it was listed as a framework right here!

3. The not-so-obvious step is to add the libXML header files to the header search path in the build properties. To do this, expand the Targets node of your project, and right click your project target file and Get Info. Then add “/usr/include/libxml2” to the header search path in target build settings.

Now compile, and everything should be compiling just fine! You can download the final LibXMLSample project here.

I’m excited, because today is the day that I actually started writing code for my first iPhone application! I’m going to write a Bible app for the iPhone, and it’s going to be great.

For this app, I’m planning on letting users download 1 or more versions of the Bible. I’ll have King James and Basic English to start – since those are free. If lots of people actually use my Bible app, I’ll look into licensing the NASB and NIV.

I decided on a Bible app for a few reasons. First, for the past few months I’ve taken my iPhone to church instead of my Bible – it’s smaller and I always have it – and just looked up everything on BibleGateway.com. This works fine, I guess, but during the lesson and sermon the teacher/pastor usually has a handful of verses queued up, and following along via the EDGE network just wasn’t cutting it – I needed something faster.

Second, I also figured – what are the chances that I can actually get this app done by the iPhone App Store launch date in June? Pretty good, I think. If I can actually get a Bible app written by the time the store launches, I think there’s a good chance that it’ll become the default Bible app for a lot of people – which is pretty cool.

Third, this app is a great learning opportunity. It has very low graphics requirements, so no fancy coding required. It pushes the limits of what I can do: namely – create an app in the first place! I’ll also get to do some basic loading of data over the wireless connection, which is kinda cool. After finishing this app, I should be well on my way to making much “cooler” apps and games.

Fourth, I’ve been thinking a lot lately about how I can get involved in ministry. This is something that can make a positive (albeit small?) impact for God, and at the very least, be a useful tool for a number of Christians who also happen to have iPhones who happen to have found my app… As Christi and I finish our move to Portland and get involved in a church there, this’ll be a great way to stay involved and stay focused on Christ.

So wish me luck! I’ll likely be posting my various discoveries as I dive into the iPhone SDK.

Today was a momentous day: I publicly announced the Jotlet JavaScript API!

I’m very excited to finally get all this past months of work out into the public eye. There is simply nothing even close to similar being offered by any other online calendar out there. I’ve emailed some tech sites and I’m hopeful that it’ll get reviewed, or at least mentioned, in an upcoming article.

It’s certainly worth writing about. This is basically a calendar version of the Google Maps API. Developers can now integrate a fully functional AJAX calendar directly into their site with only a few lines of code. Pretty hot stuff if you ask me!