...
storing data, either using the native storage engine mechanisms, or specific means
validating input data
making the data searchable (if applicable)
displaying an instance of itselfthe type
Custom FieldTypes are a very powerful type of extension, since they allow you to hook deep into the content model.
You can find the in-depth documentation about FieldTypes and their best practices.
Tutorial Steps
The bundle
FieldTypes, like any other eZ Publish 5 extensions, must be provided as Symfony 2 bundles. This chapter will cover the creation and organization of this bundle
...
Storing data from any FieldType into the Legacy Storage Engine requires that your custom data is mapped to the data model. This part will cover the implemention of the storage converter for the Tweet FieldType.
Templating
Displaying a FieldType's data is done through a twig template.
Read more about implementing the FieldType template.
Custom storage
Whenever a FieldType must store more than the basic primitives the API supports, custom, external storage must be implemented. This part covers how a FieldType can store custom data anywhere, in particular into custom tables in the legacy database.