FixMyStreet iPhone app

We’ve had reports that our FixMyStreet iPhone app is crashing on iPhone 3.0, and so have withdrawn it from the App Store until we are able to find out what’s wrong and fix it. I’m afraid I don’t know when that will be, as it’s all rather busy at present – if anyone has the skills and would like to volunteer to help, the code is available and should just import into XCode. I can supply some crash logs too.

7 Comments

  1. I don’t have an iPhone, but I’m interested in trying my hand at writing a Google Android version of this app. I’ll look at the code, but is there somewhere where I can see screenshots or a feature list or similar, just so I know what it should roughly look like?

  2. Hi there!

    I’ve downloaded and compiled your iPhone code, but I do not have the 2.1 SDK installed, so I have compiled it for the 3.0 SDK (which oddly enough does not include the 2.1 libs), and the only thing I’ve spotted are a couple of memory leaks and other problems, most reported by the Clang static analyzer (bundled with Xcode 3.2 for Snow Leopard):

    1) SettingsViewController.m (line 88): try to initialize the *text and *placeholder NSString variables, as they are used later in line 140 and they might not be initialized, which might crash the application completely (class fields are initialized to nil by default, but variables are not, AFAIK).

    2) MyCLController.m (line 156): your singleton definition does not look correct… shouldn’t you be assigning the value of the alloc/init call to sharedCLDelegate? Take a look at how Matt Gallagher defines singletons using macros here: [broken link removed]
    3) FixMyStreetAppDelegate.m (line 222): replace the line
    NSString *errorString = [[NSString alloc] init];
    with
    NSString *errorString = @””; // autoreleased!
    Otherwise you’re leaking errorString in line 225…

    4) FixMyStreetAppDelegate.m (line 208): the returnString NSString instance you create in line 208 is not released… leak! You should release it in line 231, right after the closing bracket of the else block.

    Finally, if you plan to support OS 3.0, there are a couple of API changes regarding UITableViewCell instances; many instance methods are now deprecated, like setText:, setTextColor: and setFont:. That’s an easy fix. In any case, the API methods above are *deprecated*, not removed, which means that the code should run fine.

    Try applying the fixes above and see if it still crashes. Sorry I can’t help you with more information! Feel free to contact me to my email if you need more help.

    Cheers!

    Adrian

  3. By the way, you might want to read this article:
    [broken link removed]
    It explains (brilliantly!) how to compile an app for OS 3.0 and make it usable under 2.1…

  4. Hi,

    I’ve created a first-cut at a ‘FixMyStreet’ application for an Australian ‘FixMyStreet’ style site. It is not completely finished – but does run OK on version 3.0 of the iPhone OS (and even uses the new map view API to let people specify where the problem is).

    You’re welcome to use my code for the UK version too if you like. I’ve written it so that it submits problems using the same protocol as the UK version.

    Let me know if you’re interested in using it and/or if you have any questions.

    Cheers,

    Jake

    The code can be found here:
    http://github.com/jmacmullin/fixmystreet-australia/tree/v0.1