Terminology
Generic and Platform-Specific Terms and Classes
The following link shows some generic terms and base class names together with their iOS and Android equivalents.
Glossary
Term | Definition |
---|---|
Activity | Android class derived from View. On iOS it is known as ViewController. |
AIS | Oracle's RESTful interface to JDE. Refer to Cantara Configuration Guide for further information. |
API | A set of rules defining how to interact with a particular Resource. The API methods are called by the Interactor. The API protocol is inherited by the Worker, which implements the API methods. |
Flavor | A build configuration used to build a CC6 app. |
CC6 | Cantara Client version 6.x |
CIP | Cantara Integration Platform |
Component | A Component is a combination of a Scene and Resources. |
CoreData | A database available on iOS. |
CRUD | Create, Read, Update, Delete. |
DAO | Data Access Object. A protocol that defines how one should perform CRUD operations on an Entity. |
Database | Platform-agnostic term. Platform-specific database implementations include CoreData and ObjectBox. |
Decodable | A type that can decode itself from an external representation using a set of defined rules. |
Entity | Entities are abstract representations of objects at their most simplest form. They are defined as protocols instead of concrete classes, so individual projects can have different implementations of an entity. |
Fragment | Android concept. Simulated on iOS to maintain similar codebases. A fragment is a View that represents a section or multiple sections of a Scene. A fragment is a UI representation at a certain point in time. It holds UI objects (text, labels, etc) which the user can interact with. It delegates actions in response to button presses and other user input. A fragment can only be changed via Interactor and Worker actions producing a response model for the Presenter. |
Fragmenter | Required on iOS only (as Android uses its own fragment manager). A Fragmenter is responsible for attaching, detaching and laying out fragments. |
FunctionService | A class used to interact with a JDE function. |
Interactor | An Interactor conforms to the BusinessLogicProtocol and holds the business logic specific to a Scene. It sends the work to a Worker object, and once a response is received, it sends the response to the Presenter which the Interactor has a reference to. Note that the Presenter reference is constrained to a PresentationLogicProtocol. The Interactor does not hold a reference to any specific Presenter object, but it can hold a reference to any object that conforms to the PresentationLogicProtocol. The BusinessLogicProtocol defines the inputs to the Interactor. The PresentationLogicProtocol defines the output of the Interactor. |
Interface | Known as Protocol in iOS. |
JDE | Oracle JD Edwards EnterpriseOne ERP software. |
Library | A collection of related classes built to support the requirements of an application or component. Refer to Internal Libraries for information about the CC6 libraries. |
Module | A module is an aggregation of Use Cases. One or more modules may be combined to make an app. |
NS Network | A network stack implementation available on iOS. |
ObjectBox | A database implementation available on Android. |
Presenter | The Presenter is responsible for translating business models into ViewModel objects. In some cases this translation is minor and does not warrant a separate Presenter class, in which case the Presenter can be the ViewController. |
Protocol | Known as Interface in Android. |
Request | Object passed from the View to the Interactor. |
Resource | The combination of a Worker, Dao and Service objects. Resources will generally be related to an Entity (eg PurchaseOrderHeader in the Approvals module). They tie together the logic of fetching, storing, retrieving and updating an entity. A resource can contain multiple Use Cases. |
Responder | A delegate assigned by a Fragment to respond to user input events. |
Router | A Router is responsible for separation of navigation logic from the ViewController. The Router creates new Scenes, and injects the relevant data into the new Scenes through the Interactor's data store. |
Scene | On iOS, a Scene contains Views in an application. On Android, a Scene is an activity. |
Service | Service is an abstraction of the network layer, for any background transaction. It can be a work request to the network, such as a REST API call or a get request to an FTP server. After the background operation is completed, the Service sends the response back to the Worker. Service can refer to JDE functions, queries, reports, extensions and notifications. An example of a CC6 Service is the function service. It consists of a request and response model and an execute method. |
Target | iOS term referring to the build configuration used to build a CC6 app. |
UIKit | A UI framework implementation available on iOS. Refer to the UIKit website. |
VIP | View, Interactor, Presenter - the three main components of the CC6 architectural model. |
View | A view is responsible for displaying UI elements and responding to user input. No business logic is defined in a view. Views are layered: e.g. a button view is created by overlaying content, image, and label views. |
ViewModel | A ViewModel contains all information needed to draw the UI for a component. |
Worker | A Worker is responsible for a single, small piece of work. |