1. A method of rendering a user interface (UI), the method comprising: receiving, from a UI client engine associated with an application, a UI component tree for the application, the UI component tree comprising: UI component nodes each having associated predefined contextual rendering information, and a custom rendering element node having associated incomplete contextual rendering information; generating UI rendering instructions in accordance with the UI component tree by: for each UI component node, using the predefined contextual rendering information to generate UI component rendering instructions, for the custom rendering element node, retrieving custom rendering instructions generated by the application and generating incomplete rendering instructions based on the incomplete contextual rendering information; and combining the UI component rendering instructions, the incomplete rendering instructions and the retrieved custom rendering instructions; and rendering the UI in accordance with the generated UI rendering instructions.