Skip navigation

  Help us to make more
useful things.
Donate to mySociety

Would you like to work with the team that built all these sites? We’re recruiting.

FixMyStreet iPhone app

Monday, July 6th, 2009 by Matthew Somerville

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 Responses to “FixMyStreet iPhone app”

  1. Dan Says:

    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. Matthew Says:

    There already is a Google Android version, available in the Android store: https://secure.mysociety.org/admin/lists/pipermail/developers-public/2009-May/004803.html (that thread also contains a link to a page of some iPhone screenshots). The Android code is available in our CVS.

  3. Dan Says:

    Oh, neat!

  4. Dan Says:

    PS, the android/iPhone apps could do with a mention on the fixmystreet site!

  5. Adrian Says:

    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: http://url.akosma.com/ye3dqa

    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

  6. Adrian Says:

    By the way, you might want to read this article:
    http://url.akosma.com/agx82l
    It explains (brilliantly!) how to compile an app for OS 3.0 and make it usable under 2.1…

  7. Jake MacMullin Says:

    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


News & information:
Projects:
Keep in touch:
Technical:

mySociety is a project of UK Citizens Online Democracy (UKCOD). UKCOD is a registered charity in England and Wales, no. 1076346. Its company number is 03277032, and mySociety Ltd's is 05798215.