All Projects → bih → Toolkit.swift

bih / Toolkit.swift

Licence: MIT License
A proposal for a jQuery-like toolkit I'm building in Swift.

Toolkit Logo

Toolkit is a library written for iOS and Mac in Swift that allows you to write beautiful Swift applications. Think jQuery for Swift.

Before we begin making progress, I'm kindly asking the GitHub community to help propose features and offer contributions towards the first version of Toolkit.

You're more than welcome to follow our progress by clicking "Star" and "Watch" above.

Proposals for Toolkit v1

  • Basic syntax (iOS/Mac)
    • Chainable methods
    • Toolkit syntax guide yet to be defined.
  • Interface querying (iOS/Mac)
    • Ability to find objects on an interface (i.e. all UIButton on a UIView)
  • Property types (iOS/Mac)
    • Improved type conversions (i.e. String to Integer)
    • Implementation of URI type (#1)
    • Improved syntax and manipulation for Date (#1)
  • HTTP (iOS/Mac)
    • Built-in HTTP library (#1, #2)
    • Parsing and generation libraries for JSON and XML. (#1)
    • Local media player for audio/video (#1)
  • Session & Data Storage (iOS/Mac)
    • Getters and setters for NSUserDefaults (#1)
    • Local implementation of SQLite3 with wrapper (#1)
  • Fonts and styling (iOS/Mac)
    • Wrapper for dealing with UIFont and any associated fonts
    • A new Color type with support for RGB, RGBA, hexadecimal and native colors. (#1)
  • Location (iOS)
    • Wrapper for dealing with CLLocationManager (#1)
  • UI & Interfacing (iOS)
    • Lightweight implementation for side menu (#1)
    • Support for closures for UI interactions (#1, #2)
    • Thread-safe usage for network activity indication (#1)
  • Auto Layout (iOS)
    • Wrapper for better implementation through Swift.
  • Push notifications (iOS/Mac)
    • Lightweight wrapper for configuring and sending push notifications.
  • Compatibility & feature detection (iOS/Mac)
    • Execute class blocks upon losing Wi-Fi/Bluetooth/Cellular connection (#1)
    • Detecting iOS version, social media native accounts, push notifications, location permissions and video/camera usage. (#1)
  • Websockets (iOS/Mac)
    • Basic support for sending/receiving push notifications
  • In-App Authentication (iOS)
    • Single interface for identification via Touch ID and passcode (with ability to set local passcode) (#1)

References are merely for inspiration. Unless permission is expressly granted or the licenses permit us to do so, we won't be using referenced libraries in Toolkit.

Adding a proposal

Adding a proposal is easy.

How to: Firstly, fork this repository. Secondly, commit your suggestions in the relevant category in the README.md file. Thirdly, create a pull request where we'll then discuss it as a community before considering.

Bonus points:

  • Writing sample code.
  • Find existing Swift libraries for inspiration.
  • Giving as much detail as possible (if applicable, also include Apple documentation)
  • Having the strength to meaningfully dispute someone's proposal.

What we (probably) won't consider:

  • Syntactic sugar for libraries that are unstable.
  • Any sort of usage for "hacky" code.
  • Interfering with code that is pending a fix from Apple.
  • Anything that roughly less than 50% of our users will want. Remember, it's a toolkit.
  • Anything that requires extensive implementation (as it bloats the library, we're aiming to keep the entire toolkit really small).

If you're unsure, create an issue and we'll discuss it as a community.

Contributors

  • Core Team
  • Proposal Contributors
    • You can add yours in your pull request.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].