## Tutorial: Birthdays - Summary

This example shows how to use the Carbide.c++ UI Designer for S60 to define the UI of an application and to implement the "real work" in the generated code.

The goals of the application are to:

- Maintain data and UI separation

- Use the S60 UI Designer to create the UI

- Editing generated source to provide application logic

- Save and restore birthdays from persistent storage

- Summary

### Summary

With this tutorial, we showed how a UI Designer enabled project provided the basis for a relatively useful application.

We maintained code and data separation using the TBirthday class and stored the list of birthdays through the CBirthdaysDocument class.

We saw how the UI Designer provided almost everything visible (except for the actual data), including the application's structure. We saw how the list box was populated entirely by code, using generated support routines to easy bridge the gap between real-life data and the pecularities of the S60 list box model and icon handling.

Finally, we saw how to set up the document class to enable saving and loading the birthdays list.

We hope you can see that the Carbide.c++ UI Designer handled most of the heavy lifting. Almost all the manually-edited code supports application logic, not UI. And the generated code does most of the work and leaves room for you to add application logic however you see fit.

Finally, if you wish, you can continue to update the UI designs, adding or removing views or form lines, changing the list style, handling other events, etc. The generated code will change only enough to support the changes in the design. (Just keep out of the "do not modify" blocks!)