[Challenge] So, you think you've mastered UIKit? Recreate this then.

Discussion in 'iOS Development' started by SkylarEC, Jan 31, 2009.

  1. SkylarEC

    SkylarEC Super Moderator Emeritus Staff Member

    Joined:
    Sep 19, 2007
    Messages:
    6,642
    Likes Received:
    129
    Alright, this is challenge for all of you intermediate to advanced coders. I will be linking you to a simple little application, the 2.0 version of my application Launcher. I want you to recreate it.

    Something you should know:
    • The application starts running when the StatusBar appears.
    • Once the StatusBar appears, the application enumerates through both /Applications and ~/Applications in less than four seconds (on my phone, your time may vary).
    • While looking for applications, and still before the view is loaded onto the screen (so this is within the four second start up time), the Launcher detects whether the user has Categories installed. If so, then it reads Categories' categories list and generates a list of categories, which will be displayed upon a button press.
    • The app first filters applications to show only "Standard Applications," ie Cydia™ installed apps+. Upon tapping a button, the app filters the apps to display only "AppStore™" applications.
    • In the "Standard Apps" list, the names for Apple's MobileWhatever apps must show their display name, ie "iPod," "Safari," and the rest. I don't care if you use Localization, although that would be a nice addon.
    • Both the list of "Standard Apps" and "AppStore™" apps are the same table, controlled by the same table controller. They are identical, except for the apps displayed. You can not cheat and use separate tables, of you will be disqualified.
    • To make recreating the table with the new apps prettier, and more impressive, Quartz is used to create a nice CATransition (refer to the docs for the exact type).
    • Upon tapping the "Categories™" button, a tableviewcontroller is created that references the array of categories. The navigation controller pushes the new table view controller onto the stack, but animates it in using a non standard navigation controller animation that gives the appearance of the table scrolling downward toward the categories.
    • When the categories table controller appears on the screen, the Categories™ icon slides across the navigation bar as well as appears on the section header.
    • You are only allowed three UIBarButtonItems throughout the entire application.
    • The background beind the table must be [UIColor viewFlipsideBackgroundColor].
    • The cells must be subclassed and have an assignable property to store an application's bundle identifier.
    • The cell's background normally is a worn down and faded dark blue (you may use the images included within the application) and it must have white text. The cell's highlighted state must include a gray background with black text.
    • The section header must be subclassed and use the background image included with the application. You must be able to see through it when a table cell is behind it. The section header title must reflect the current table, either "Categories™," or "Standard Apps"/"AppStore™." On the "Standard Apps"/"AppStore™" table, the section header must be correct.

    You should use all images included within the zip, but if you want to use your own, that's fine. And no, the app doesn't launch anything. It is a UIKit challenge. If you want to though, the table cell subclass this requires should have a property called .appIdentifier which the app will load when the cell is pressed in the table view controller. Easy enough, I presume.

    This is a "Spare Time" project for me, and I want to handle the individual apps within the categories in a different manner I haven't yet decided, which is why the app doesn't load it.

    Upon completion, the source code will be released (my source code at least. You may keep yours private). The example you are seeing is 705 lines long. Try to aim for that. Obviously, if you do better, then that is fantastic!

    http://www.touchrepo.com/Apps/2.0/Launcher2.0.zip




    EDIT: Screenshots The cells look a lot better on the phone. Less purple, more blue.

    Please Register or Log in to view images

    Please Register or Log in to view images


    Please Register or Log in to view images

    Please Register or Log in to view images


    Please Register or Log in to view images

  2. Steaps

    Steaps New Member

    Joined:
    Oct 24, 2007
    Messages:
    5,074
    Likes Received:
    41
    Device:
    iPod touch
    I'm glad i know i haven't mastered UIKit so i don't have to try this

    Please Register or Log in to view images

    .
  3. giannaros

    giannaros New Member

    Joined:
    Sep 1, 2008
    Messages:
    775
    Likes Received:
    0
    Device:
    iPhone 3G (Black)
    Me too...

    Please Register or Log in to view images

  4. Steaps

    Steaps New Member

    Joined:
    Oct 24, 2007
    Messages:
    5,074
    Likes Received:
    41
    Device:
    iPod touch
    I wouldn't even know where to start. Once i get better, i will probably try this. Even though the source code will be released, it would be a nice challenge.
  5. JoshuaCaputo

    JoshuaCaputo New Member

    Joined:
    Aug 2, 2008
    Messages:
    605
    Likes Received:
    0
    Device:
    iPod touch
    Maybe you should start at Novice. Im not sure about reading the directory. I never messed with non app store rules

Share This Page