Google+ Badge

Tuesday, February 15, 2011

Bug fixing on the iPhone using Xcode 4.0

QA completed a round of testing on the iPhone application so I dug back into Xcode and fixed them. Always a little nervous when I get back into iOS development as I don't spend much time there but it went pretty smoothly.

First off I now have Xcode 4.0 running and it is an improvement over the 3.x series. You can now have tabs of open files. You must manually create the tab then select content in it. The file view tree stays in sync with the tab you are looking at as far was what is expanded / collapsed which threw me off at first. I had the XIB open in a tab and wanted the M file open in another but when I switched to another tab the tree adjusted too and I did not see the M file. I had to expand my way down to it before I could open it. Annoying as I was just looking at the file in the tree I wanted and it disappeared.

I don't know if I closed the Utility Pane or if it defaults to off but I was lost trying to figure out where the alignment, color and other settings for a widget in Interface Builder went until I figured out how to turn that on. I looked all over in the menu system and finally did a help search. I did not think of the name "Utilities" for this pane thus I kept overlooking it in the View menu.

I really like having Interface Builder integrated in the IDE. You no longer will forget to save changes you are tweaking in IB at the same time you are adjusting some code. It also has been updated in a number of areas making it easier to use. I still am not at home in it but was able to pull off everything I needed quickly once all the required panes were visible.

The source control integration is much nicer. The files are flagged with (A) and (M) icons so you know what has changed. You get a quick difference window at commit time. I wish it kept the last commit comment around or a drop down to let you get to older ones.

I had initial troubles getting the code to run on the Simulator until I added i386 as a Valid Architecture. That was not obvious at all and it took some web searching to figure it out and then more time in IDE to find out where to update the value.

A Table View was painting oddly. The original code author had set up some hard to read colors and I had changed them back to defaults I thought. It looked just like a normal Table View when compiled with 3.x but was screwy looking in 4.0 until I set the Background to default then it was fine. I did not notice any other differences in the code between 3.x and 4.0 builds. This is not a very big app, login screen, pick from a list, show appointments, appointment details plus an editor screen for notes and one for dates. We are not using tons of widgets or any bizarre build configurations but I am happy the changes were minimal.

Very happy that Apple updated the one and only IDE you can use to do iPhone work in. They have made a lot of needed changes and I hope they continue to improve it in a timely manner.

I just did some updates to Eclipse, the IDE I choose to use on the PC for Android Development, and it is also working better. The code assist would pause for long periods of time under 3.6 but now that I have downloaded the Android source code that is no longer an issue. Plus I can debug into the Android code if needed.

Right now I am working on phase two on the Android side and have created some new custom widgets along with getting my feet wet with SQLite. I have a few tables running with some fake data now. I need to create a large dataset for test data for a new control that allows you to scroll to / search for a record similar to what you have for Contacts on both Android and iOS.

I will need to port all the existing code over to iOS when I have the Android stuff in place. At least with my initial experience with Xcode 4.0 that appears it will be less of a chore than originally thought. I was basically tweaking and bug fixing the original iOS code and this time I will creating a lot of things from scratch. I am sure that will give me a much better understanding of iOS / Xcode / IB / Objective C.