How I built the best-selling BlackBerry app
> Critically, from that handler, it was then possible to get a reference to the current UI stack via the call to UiApplication.getUiApplication() - Once you had that reference, you could do whatever you want with any screens in the current display stack. You could pop screens from the stack, push new screens on the stack, and grab any screen in the stack and dig in and modify any of the UI components on any screen (deleting them, replacing them, etc.).<p>Give people extensibility and they can do things you'd never imagine: just take a look at the early jailbreaking community, who had neither APIs nor support from Apple but were able to do quite a bit just by being able to inject code into system applications to augment them. (I like to think that a faint echo lives on today in Mail plugins for macOS.) Sadly, we seem to be moving away from this for reasons that are touted to be for security…