DMC Corona UI – Awesome widgets for Corona SDK

I’m happy to announce the release of my new library DMC Corona UIWidgets for Corona SDK. It’s been a couple of months in the works and now I feel it’s stable enough for others to use. I put together the following screencast to give some insight into what it can do.

The library is comprised of Widgets, Styles and Controls.

Many of the Widgets, like Text or TextField, wrap other OpenGL or platform-native objects to make them behave more consistently and without a doubt give them a lot more Awesome. Some of their important core functionality is based around concepts learned from Adobe Flex.
The other items like the ScrollView and TableView are evolutions based on both code I’ve written in the past and ideas from the UIKit API from Apple iOS.
All of the components are style/theme-aware.

The Styles represent a powerful way to manage style properties and can be linked together to form an inherited cascade of style goodness. There are a couple of ways in which they can be organized, and putting everything into a single location or into full themes is really easy.

The Controls, like Navigation, are totally new and again borrow a lot of lessons from iOS. This one alone saves me from writing a lot of navigation code for complex projects. There are more cool Controls still to build.

Even though some of the ideas are from iOS, I spent a lot of time thinking about WWCD (What Would Corona Do) as I think the Corona API is one of its many strong points. At times this required more coding to ensure this complex system was easy to use. I think the result is a good blend of the two worlds.

As “side projects” to this endeavor, I re-vamped my documentation site from an aging wiki server to a sleek, modern static-website (old is new again!) which has many benefits one of which is being blazingly fast. I also put a build system in place (snakemake) to help wrangle all of the updates to the modules in the DMC Libraries (now over 40+).

There’s more work to be done for sure, but I think we’re off to a really good start. 🙂

Enjoy !

~ dmc

7 Responses

  1. Mario 2015-04-22 / 16:54

    Very cool looking!! I grabbed the 2.x branch and tried running some of the demos, they’re using the old setreference deprecated function, and I’m getting errors from Director…maybe I didn’t grab the right one? Short story, the examples didn’t work outta the box for me, but I’m sure I can reverse engineer it.

    Appreciate the hard work!

    -Mario

    • david 2015-04-22 / 17:40

      Hey Mario,

      let me know, but it seems like you’re trying to run examples from the repo dmc-corona-library not dmc-corona-ui. is this correct ?

  2. Mario 2015-04-22 / 18:38

    I just tried grabbing the zip file under “dmccuskey/DMC-Corona-UI”…..trying some of the packaged examples in there and they’re all giving me these errors:

    #########################################################

    other error
    Runtime error
    Error calling ‘require(“./lib/dmc_corona.dmc_utils”)’. Lua requires package name
    s to use ‘.’ as path separators, not ‘/’. Replace the ‘/’ characters with ‘.’ an
    d try again.
    stack traceback:
    [C]: in function ‘error’
    c:\users\mroberti\downloads\dmc-corona-ui-master\dmc-corona-ui-master\ex
    amples\tableview-widget\tableview-modify\dmc_corona_boot.lua:538: in function ‘r
    equire’
    c:\users\mroberti\downloads\dmc-corona-ui-master\dmc-corona-ui-master\ex
    amples\tableview-widget\tableview-modify\lib\dmc_ui.lua:121: in main chunk
    [C]: in function ‘require’
    ?: in function ‘require’
    c:\users\mroberti\downloads\dmc-corona-ui-master\dmc-corona-ui-master\ex
    amples\tableview-widget\tableview-modify\main.lua:21: in main chunk
    Loading project from: C:\Users\mroberti\Downloads\DMC-Corona-UI-master\DMC-Cor
    ona-UI-master\examples\tableview-widget\tableview-modify

    Now granted, I’m not the sharpest bulb in the shed….any tips? I think I had this same issue with your touch lib when I tried it. I’m using Win7….

    Thanks!
    Mario

    • david 2015-04-22 / 19:12

      Ensure that the Path in dmc_corona_cfg is setup for Windows – eg, LUA_PATH:JSON = [ “.\\lib\\dmc_corona” ]. (make sure double backslashes). i just tested a couple of UI projects in Win7. (btw, there are 2 or 3 examples which i haven’t update yet, you’ll get an error on those)
      let me know how it goes

      cheers ! dmc

  3. Mario 2015-04-22 / 21:41

    Yup! That seemed to do it. I swear I saw some code of yours that checked for that very thing!!!? Ah well. Please hurry with those examples!! 😉 This looks very cool!!

    -Mario

  4. Mario 2015-04-24 / 17:50

    Hey the table demo that works in my simulator doesn’t work on any of my Android devices, kindle fire too! Did you want me to:

    * Keep pestering you via this comments section?
    * Take it offline and do it via email?
    * Take a hike, stop bothering you, and never return?

    Lemme know, I’ve got a TOTAL use/case scenario I was going to solve with it.

    Best,
    Mario

  5. david 2015-04-24 / 18:11

    hey Mario !

    lol, bugs should be done in github. actually, i’m pretty certain you’re running up against this issue: https://github.com/dmccuskey/dmc-websockets/issues/4 . if that’s NOT the issue, then create another one (in the proper repo of course)

    anyway, i’m actually starting to work on that one now, so should have some updates available soon.

    cheers, dmc

Comments are closed.