Advertise here

Advertise here

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

QuickDialog: is it worth using?

surlacsurlac Posts: 362New Users @ @
edited October 2012 in iOS SDK Development
It is looks like QuickDialog significantly increases speed of making data-input forms.
Has anybody had experience of using it? No problems with compatibility with earlier and latest versions of iOS?


  • Duncan CDuncan C Posts: 9,116Tutorial Authors, Registered Users @ @ @ @ @ @ @
    I've never seen it before today. It's free open source, so why not download it and try it out? Then, once you've evaluated it, report back and let us know what you think.
    Duncan C

    Animated GIF created with Face Dancer, available for free in the app store.

    I'm available for one-on-one help at CodeMentor
  • baja_yubaja_yu San FranciscoPosts: 6,215Moderators, Registered Users Admin
    edited October 2012
    There doesn't seem to be anything really impressive there, or anything you couldn't make in a few minutes by yourself. But there is a lot of it, and I don't know if anyone would ever need all of what's available there, so you'd end up adding a lot to your project when you possibly need just a few things that can be easily implemented with the SDK. I don't know, maybe that's just me. I'm all for 'not reinventing the wheel', but if I only need a toothpick, I'm not going to buy the whole Swiss Army knife.
    And to just be clear that I didn't mean to bash anything, it looks like a lot of work has gone into it, and being open source it will be useful as an example for any specific part of it. All of the elements on their own look very useful.
  • surlacsurlac Posts: 362New Users @ @
    I'm pretty new to all of this. But the way it can be done without this library seems to be not flexible: when I create a Login form or User details form I have to override cellForRowAtIndexPath and make a lot of "if-else" branching there. Which looks ugly. Is it common practice?
    baja_yu, Is that what you mean by making forms without libraries?
    Thanks Duncan C, baja_ya!
  • mashercakesmashercakes Posts: 789Registered Users @ @ @
    edited October 2012
    Yes, overloading cellForRowAtIndexPath and then checking the section/row is the normal way of doing it. I agree with others - a whole library just to simplify making table views seems like overkill to me. It's not that time consuming to set up once you get used to the process.
    <a href=""; target="_blank">TalkBoard</a> - a communication aid and visual support app for children and adults with autism, communication difficulties or learning difficulties. Available now for iPad, iPhone and iPod Touch.
  • escozescoz Posts: 1New Users
    edited October 2012
    Hey guys, I saw the thread and I thought it would be useful to just explain things. I was not planning on writing a huge message, but it happened.. oh well..

    In my experience, making simple tableviews by overriding cellforrowatindexpath is easy, but for more complex things, like a form with 10-20 fields and different kind of cells appearing based on different conditions things break down very quickly, and you end up having either an extremely long if/else returning lots of custom types of cells. Apple's approach to this is to make you use static tableviews in storyboard, which are not dynamic at all and just make things a thousand times more complicate. Maybe someday storyboards will support all the kind of stuff we need, but it's still far from that.

    So the traditional solution is to either have that long if/else list that will likely have lots of bugs, or you end up abstracting things, so that you have a "model" of what you want to display, and your datasource just goes thru those items and display them automatically. Nothing amazing, just traditional OO patterns.

    Well, QuickDialog, at its core, is just that: a lightweight abstraction of a table; it's just a collection of simple objects that explain what should go into a list. Then I have a tableView/delegate that can go thru that tree of objects and display things as well as handle touches. If you just use the QElement (which translates to a row) and QSection (which translates to a section), that's all you get. You don't need to use anything else in the project, and if you follow the installation instructions, all the stuff you didn't use will be automatically stripped by the linker.

    But here's the cool thing: now that you have a model of what should appear in a list, you can start to make really interesting things, like:
    - you can have a RootElement, which has more sections in it, so that when the tableview sees it, it knows it has to push a new controller automatically with that new table. This can go many levels deep, like the settings app.
    - or you could have elements to enter text/booleans/integers/etc, so you don't have to write the same stupid logic to show and hide the prev/next buttons on top of the keyboard over and over and over
    - or you could store the entire tree of elements in JSON, and remove all that code from your ObjC code
    - or you could actually serve that JSON file from the web so that the form that appears on your app is completely driven from the web (like apps like Yelp and the AppleStore do)
    - or you could automatically bind values from your real domain model (from coredata or some JSON obj you loaded) to the form (with a tiny bit of configuration)
    - or you can automatically translate every string that appears in your JSON file without having to do anything.

    Those are some of the things QuickDialog does. It won't help with every project out there, but it works really well for a lot of them. I'm used it in many of my apps (Quicklytics, QuickAdsense, and a lot of business apps), and every day I get contacted by people using it for their projects, which is awesome.

    Really hope this explains things a bit. I'll probably post the above on my blog as well ( as every once in a while I get this question.

    Update: for the record, here's the link on my site: I expanded a bit on performance:
    Post edited by escoz on
  • ciumexAnneciumexAnne Posts: 1New Users
    I want to ask if i can use this with custom uitextfields in already made uitable...
Sign In or Register to comment.