facebook/three20 — Issue #750: Bye Bye TTNavigator? Removing the three20 url based navigation in v1.1?
Author: aporat
Created: 2012-01-12 22:11:56+00:00
State: open
Labels: 1 - Feature Request

This is a idea I had and I would like to get some feedback from the three20 community, and what you think three20 should do with it's url based navigation. (http://three20.info/article/2010-10-06-URL-Based-Navigation)

My idea is that we should deprecated the entire URL mapping system in the next major three20 release (1.1), or even completely remove the TTNavigator subproject, together with all of it's components.

The main reason behind this approach is the fact that three20 url mapping design pattern doesn't work well in a multiple controller environment. iPad's TTSplitViewController is broken as of today, and fixing it is almost impossible.

Problems with url mapping:

- doesn't support objects, i.e., the url has to include only basic variable types (string, numbers)
- the iPad support is horrible
- one little change in the url mapping and the entire url mapping breaks silently without even complier errors
- messly code
- I could never understand why the view controllers go into stacks and never get released from memory :-)

There are number of big benefits for removing the url mapping:

- three20 url mapping doesn't follows apple's design patterns (push/pop view controllers)
- less dependencies between the sub projects (many developers in stackoverflow writing they rather only use the UI elements(or just a single view controller), but they are forced to include the entire three20 library and as a result they choose to avoid using three20)
- Easier to integrate with other UI components (such as MGSplitViewController)
- Less bugs and complexity. The amount of developers that know how to fix / change the TTBaseNavigator and it's components is limited.

What do you think about this, and do you still use three20 url mapping? Would you miss the url mapping?