Third-party developers can extend the template expanders and formatters available in an EachScape app. There are four important rules for both expanders and formatters:
1. Its inputs can always be assumed to be valid (non-null) strings.
2. It is typically called in the main (UI) thread so it must execute quickly.
3. It should always return a valid string. Returning null will cause an error to be logged.
4. It must not throw an exception.
Custom Expanders and Formatters are entered in the iOS and Android Hooks fields on the iOS and Android tabs, respectively, under Edit App. For specific information on writing Custom Expanders and Custom Formatters, see their respective articles.