Nimbus is an iOS framework whose feature set grows only as fast as its documentation.
By focusing on documentation first and features second, Nimbus hopes to be a framework that accelerates the development process of any application by being easy to use and simple to understand.
- Start by exploring the "Getting Started" example applications.
- Follow Nimbus' development through its version history.
- See the latest API diffs.
- Read the Three20 Migration Guide.
Nimbus has been built with much inspiration from the Three20 framework. That being said, there are a number of fundamental problems with Three20 that Nimbus works very hard to avoid. Among them:
- Poor documentation.
- Spaghetti dependencies.
- Suffering from a "kitchen sink" complex.
- A complex build structure.
- An enormous number of difficult-to-solve bugs.
- Next-to-zero test coverage.
For its weaknesses, Three20 does provide a good deal of value through its feature set. It is used in over 100 apps in the app store by companies such as Facebook, LinkedIn, Posterous, Meetup, and SCVNGR.
Nimbus hopes to one day provide as much value as Three20 does on a feature-by-feature comparison, but with the invaluable benefit of sublime documentation and test coverage.
Nimbus' Development Roadmap
Most of the discussion revolving around Nimbus' roadmap is in the Github issue tracker. In particular, check out the grab bag of tasks that are actively being worked on here:
Contributing to Nimbus is a great way to feel all warm and fuzzy inside. Either by adding your banner to the cause and writing code or donating money to the pledgie link, every bit is greatly appreciated and helps keep Nimbus running.
Source Code Contributors (alphabetical by last name)
Generous Donations Have Been Made By the Following People
- Peter Nelson
- Craig Gilchrist
- Atsushi Nagase
The Nimbus Backstory
Nimbus was started by me (Jeff Verkoeyen) in June of 2011. My background includes over 10 years of software development and experience at Google and Facebook designing software and building user interfaces. I took over the Three20 project in 2009 after its original creator, Joe Hewitt, moved on to other projects. Over the proceeding 6 months much time was invested in splitting the framework apart and attempting to clobber its spaghetti dependencies while improving the project's documentation.
In early May of 2010, my life was completely shaken up: my mother suddenly passed away at age 42 due to a pulmonary embolism. This is relevant because for the following year I checked out of life and, as a direct result, little progress was made with Three20. Over the last year I've found that shedding baggage is not only an emotionally satisfying process, but also a necessary one. So I am shedding Three20's baggage and out of the remaining bits building Nimbus. I learned a great deal from working with an open source project and community and sincerely hope to carry much of this knowledge over to Nimbus.
What's happening to Three20?
My goal with Nimbus is to eventually provide a feature set that overlaps Three20's. I sincerely hope to make it easy for anyone using Three20 to transition to Nimbus. In the meantime, Three20 will likely stay in a bug-fixing state. The library is stable as it stands so I have every bit of confidence in the community to tackle any bugs as necessary.