Ionic Developer Glossary
display: flex;and it'll automatically plug in the correct CSS.</p> </section>
A circular dependency is a problem caused when two modules depend on each other. This can cause dependency injection to break, and is to be avoided. This article outlines the problem of circular dependencies, and proposes a solution.
A CLI, or command-line interface, is text-based interface for interacting with a program. The common command-line app for a Mac user is the Terminal app, and Windows users often use Command Prompt. The Ionic community often uses this term to refer to Ionic's CLI. Ionic's CLI can be used for a number of things, such as creating production builds of an app, running the development server, and accessing Ionic services.
Dependency injection is a pattern used by Angular to resolve or "inject" dependencies into a module. The injector finds the instance of the dependency being requested, and passes or "injects" this instance to the module.
Git is a version control system for managing code. It allows development teams to contribute code to the same project without causing code conflicts.
Ionicons is an open-source icon set used and created by Ionic. It includes iOS, Material Design, and social icons, as well as a wide range of commonly used icons. Ionicons is included by default in Ionic distributions, but they can be used in any project.
iOS is a mobile operating system used by the iPhone and iPad. iOS 9 is the most recent version of the operating system.
Karma is the unit testing framework used internally for Ionic. Karma can initialize Ionic and Angular components, and run tests against them once instantiated. Karma's API provides a number of assertions and other functions that make unit testing easier. For example, Karma could instantiate a NavBar, set the title using Ionic's NavBar API, and then make sure that the title was actually updated.
Material Design is a design guideline created by Google. It includes a UI interaction standard, a colorscheme, layouts, components, and much more. Material Design is used for many default system interfaces on recent versions of Android. By default Ionic components will switch to a material design theme when on Android.
A module loader is a tool that takes modules of a certian format, loads its dependencies, and makes the module available to your application. The Ionic community will often use this term to talk about module loaders like SystemJS or RequireJS.
Modules are organized units of code that belong together. Often times modules will be grouped by functionality. Modules can use other modules, but they have to explicitly import them. In other words, you can't globally access a function you define inside a module. Aside, from code reuse and organization, this helps avoid namespace conflicts. For example, you could define an `alert()` function inside a module, and it wouldn't conflict with `alert()` function that the `window` object provides.
A native app is a mobile app that is written using low-level APIs provided by the platform it runs on. Native apps can typically only be run on a single platform (eg: iOS, Android, Windows Phone). The term "native" is often used to compare these types of applications with Ionic apps, which are considered "hybrid".
Protractor is the framework Angular and Ionic use for end-to-end testing. Protractor provides an API for selecting DOM elements, and running tests against them. For example, you could use the API to easily create a test that opens your app, fills out a form, and makes sure that it loads the next page when the form is submitted.
Transpile means to convert code from one language, to another language. Typically a transpiler will convert a high-level language to another high-level language. Often times the Ionic community will talk about transpiling ES2015/ES6 or TypeScript to ES5.