# Logical Concepts

When creating Actions and adding logic to your User Interfaces (Visibility/Read-Only/Styling conditions, Event Handlers), a few important concepts exist in addition to the well-known [Condition Editor](https://docs.appfarm.io/reference/platform-concepts/conditions), [Function Editor](https://docs.appfarm.io/reference/platform-concepts/functions) and [Actions](https://docs.appfarm.io/reference/apps/actions).

### Value Processors

The Value Processor is a tool for simple data manipulation and formatting operations that are run client-side. For example, add 1 to an integer App Variable, or invert a boolean property.

**Article**:

* [Value Processor](https://docs.appfarm.io/reference/platform-concepts/value-processor)

### Advanced Functions

The Function Editor allows you to write Javascript. Although Javascript is not a required skillset, you should be familiar with a few important functions - such as creating concatenated strings and aggregation of data from an array.

**Article**:

* [Advanced Functions](https://docs.appfarm.io/reference/platform-concepts/functions#advanced-functions)

### Markdown

Markdown is a syntax for formatting plain text with basic formatting. It requires some simple syntax, and Markdown interpretation may be enabled a few places (see the article below).

**Article**:

* [Markdown](https://docs.appfarm.io/reference/platform-concepts/markdown)

### Timers

Timers allow an action to be executed client-side on a schedule, e.g. every second. It can be used for creating automatic carousels or other dynamic behaviour.

Timers are defined in the App Settings.

**Article**:

* [Timers ](https://docs.appfarm.io/reference/apps/app-settings#timers)(part of App Settings)

### Keyboard Shortcuts

Keyboard Shortcuts may be defined per view. In other words, Actions may be executed when the user navigates with arrows or enters the Delete key on the keyboard.

**Article**:

* [Add keyboard shortcuts](https://docs.appfarm.io/how-to/enhance-your-app/keyboard-shortcuts)

### Offline support

Appfarm comes with support for creating offline apps. In other words, Apps that work and operate in offline environments.

*In the Appfarm Professional learning path, we do not require full knowledge of this topic, but you should be familiar with the Rules and Settings section of the below article.*

**Article**:

* [Offline data handling](https://docs.appfarm.io/how-to/data-modeling/offline-data-handling)
