Code Monkey home page Code Monkey logo

Comments (9)

brurend avatar brurend commented on May 18, 2024 1

What about treat those cases similar to how Plank deals with NSDate?

The JSON value could be "any" string and with format you would define what kind of class it should be.

This way the responsibility would be up to each developer and not to Plank itself.

from plank.

rahul-malik avatar rahul-malik commented on May 18, 2024

I think there is value in having other concrete types like UIColor but I'd want to avoid having id as a type since we lose pretty much any safety or usage guarantees for that property.

from plank.

Adlai-Holler avatar Adlai-Holler commented on May 18, 2024

For example, I would like to use plank to generate objects for use in Texture, and sometimes these objects have a userInfo field that stores a plain id so that the user can attach arbitrary context info to something like a an image request. That would be one great use case for this.

from plank.

rahul-malik avatar rahul-malik commented on May 18, 2024

@Adlai-Holler - currently we offer things like serialization, copying support for all properties, how do you propose handling this in the case of id?

from plank.

rahul-malik avatar rahul-malik commented on May 18, 2024

Also what would the value of type be for this in the JSON schema?

from plank.

ay8s avatar ay8s commented on May 18, 2024

@Adlai-Holler @rahul-malik I think we'd likely make use of this in our composer rewrite

from plank.

Adlai-Holler avatar Adlai-Holler commented on May 18, 2024

For serialization, I think we could start with not serializing it. I don't know what the extensibility rules for JSON schema are, but maybe we could offer a hatch like, throwing this out there, "type": "$objc(id)"

The bigger question is whether plank is/should be suitable for generating non-serialized plain-old-NS-objects for use inside the app, or if it should be specialized for talking with a server.

Texture, for example, could make great use of a solid ObjC code generator.

from plank.

rahul-malik avatar rahul-malik commented on May 18, 2024

The main question for me is does it make sense to create types with properties of unknown types. I think id ends up reducing type-safety and could introduce more issues than it solves.

The only thing that is JSON / Server specific currently is the assumption that dictionaries always use NSString as the key type.

That said, I think there is probably value in having a way to have users declare type extensions outside of the ones listed in JSONSchema and it would be up to them to declare what the corresponding type is for each supported language they wish to generate.

from plank.

rahul-malik avatar rahul-malik commented on May 18, 2024

@Adlai-Holler - working on a proposal to allow custom type extensions making plank a whole lot more flexible. I’ll forward when I have something to review

from plank.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.