The three phases of the development of an SAP Fiori application are data modeling, service building, and UI development.
Watch the video explaining the key steps of SAP Fiori development.

Since SAP NetWeaver 7.0, it is possible to use SAP Gateway to build OData services that access arbitrary business data through existing ABAP frameworks (function modules, RFC, BAPI, SPI…). This can either be done through service development or through service generation using SAP Gateway Service Builder.
For the UI part, SAPUI5 apps are deployed as Business Server Pages (BSP) in the FES and run in the SAP Fiori launchpad (FLP).

Since SAP NetWeaver 7.40, it is possible to use CDS views as data source. SAP Gateway uses the Service Adaptation Definition Language (SADL) to access CDS views. There, everything is defined to read data from application tables, so no additional (ABAP) code must be written by any developer.
Requests that perform changes can be implemented using code-based implementation of the create, update, and delete method in the data provider extension (DPC_EXT) class. In addition since 7.50, CDS views referenced as data source in the SAP Gateway Service Builder can be combined with code-based implementation.

Since SAP NetWeaver 7.51 SP01, a first managed runtime is supported that leverages the Business Objects Processing Framework (BOPF). The business objects (ABAP classes) are generated based on appropriate annotations in the CDS view. They are implemented using code-based implementations to call existing APIs performing change requests to business data. This model is called ABAP Programming Model for SAP Fiori (CDS-based BOPF).
Since ABAP Platform 7.54, an enhanced managed runtime is available that leverages CDS behaviors. Therefore, the business objects of CDS-based BOPF are replaced by behavior definitions (ABAP interfaces) and behavior implementations (ABAP classes). This model is called ABAP RESTful Application Programming Model (RAP).
Code-based implementation can still be used to call existing custom code or if CDS views are not suitable to solve the business scenario.