Git Product home page Git Product logo

sugar's Introduction

Sugar

Sugar is a cross-platform compatibility base library for Oxygene and Hydrogene, to be used with all three platform flavors of the compiler โ€” Echoes, Cooper and Nougat โ€” to provide a common API to frequently used base classes (such as list, dictionaries, strings, etc) on all three environments.

This will be achieved thru mapped classes that "translate" the framework-provided classes (such as java.util.Dictionary, System.Collections.Generic.Dictionary<T, U> or NSMutableDictionary, for example) to a shared API, and extension methods that will add common methods and operations on simple objects such as strings and integers.

To round things off, extension methods will be provided to add select common functionality to non-mapped objects as well, in a few cases.

Goal

The goal is that with Sugar, a lot of low-level code that uses the Oxygene or Hydrogene languages and these common base classes can be shared across platforms. This includes mostly "business logic" kind of code, data structures, algorithms, and the plumbing of an application.

Not the Goal

The goal is not to provide cross-platform shared libraries for higher-level platform features such as UI or system access.

Sugar does not intent to facilitate the creation of single "lowest common denominator" applications that run on the different platforms without careful design for each platform. Such a goal would conflict with our design philosophy for platform-native proper cross platform development.

Requirements

Sugar pushes the limited of the compiler and the mapped types system, and as such you will need the very latest Elements 7.0 or later compiler. The current (January 2014) state of the library will require at least a 7.0.62 beta build of Elements. As development of the library continues towards a 1.0 release, this requirement will extend to the respective latest versions of the compiler, as well.

If you check out a copy of Sugar and find it does not compile with your version of Oxygene, please do make sure you have the latest beta channel build installed and confer with the change logs to see if any specific build requirements are mentioned.

sugar's People

Contributors

akrakovskii avatar dwarfland avatar jeroenvandezande avatar arturred avatar carlokok avatar jimmckeeth avatar

Watchers

James Cloos avatar  avatar

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.