Some ideas for projects in Swift

If you're looking for a cool library to build

If you are looking for some programming projects to port to Swift, my list is way bigger than I can tackle. Most ideas here are ports of libraries from other languages, some are different. I would love to build all of these, but can’t possibly do even ten percent of this list. The list is in random order.

  • An SVG Parser that can parse SVG, turn it into an abstract syntax tree, and has support to render it.

  • A full version of QuickCheck. I created a very rough example

  • A full wrapper of Core Image, see our book or my presentation for the basic idea.

  • A routing library that takes enums and builds URLs, like described here and here, but independent of any networking framework.

  • Some functional wrappers around UIControls. Not sure how this would work, maybe something like tangible values?

  • A drawing library like diagrams

  • A variant of Hoogle for Swift. This would allow you to find Swift functions by their type, not by name. Should work together with the standard libraries, and eventually also with CocoaPods.

  • A web framework (like Rails or like Sinatra). Some people have already been experimenting in this direction.

  • A simple implementation of Mustache. The Javascript version is short (under 600 lines).

  • A wrapper around GCD. For example, it’s possible to write a parallel function that executes a bunch of functions in parallel: gcd.swift.

  • A port of Software Transactional Memory

  • A parser/pretty-printer combinator library, maybe like Boomerang. It would generate both a parser and a pretty-printer from a single grammar.

  • A library for binary serialisation (like cereal)

  • A library for generating or processing XML (maybe built on top of NSXMLParser?)

  • A library for dealing with HTML (like tagsoup or nokogiri)

  • A library for generating PDFs in a combinatoric way (like Prawn, but built on top of Cocoa goodness)

  • A native Markdown parsing library (or really good wrapper around sundown or another C library)


If you are starting one of these and would like feedback, ping me!