Ionic Developer Glossary
The Android SDK is a software development kit that for developers building for Google's Android Platform. It includes tools for building, testing, and debugging Android apps.
Annotations are used to add metadata to a class. TypeScript extends ES6 by adding annotations. While you can define your own annotations, the Ionic community often refers to two annotations provided by Angular 2:
Autoprefixer is a tool that adds vendor-specific-prefixes to hand-written Sass/CSS code. This ensures that standardized CSS rules you write will be applied across all supporting browsers. For example, instead of having to know every flexbox syntax used by various browsers, autoprefixer allows you to just write
display: flex; and it'll automatically plug in the correct CSS.
Bundling is the process of taking an app dependencies (code you've written plus any npm modules installed) and compiling/transpiling them down to one single file.
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.
Decorators are expressions that return a function. They basically allow you to take an existing function, and extend its behavior. With TypeScript, you can also decorate classes and parameters. When you decorate a class, you are wrapping and extending the behavior of its constructor. In other words, the decorator will add some functionality when the constructor is called, and will then return the original constructor. When you decorate a parameter, you are wrapping the argument that gets passed in for that parameter. In other words, the decorator will add functionality when an argument is passed to the method, and then return the original argument.
Genymotion is a third-party Android emulator. It is extremely fast, and is useful for quickly testing your app on Android. Check out our resource section on Genymotion for more info.
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.
Karma is a test runner that will run your app's test inside a real browser. It's takes your test, written in any testing framework, and just runs them in browser. Orginially written for Angular 1.
Live Reload is a tool that automatically reloads your browser when it detects changes. It watches a specific path and anytime a file or directory is updated, it will trigger a full browser reload. In cases where css is changed, livereload will inject the changed css instead of reloading the entire page
An observable is an object that emits events (or notifications). An observer is an object that listens for these events, and does something when an event is received. Together, they create a pattern that can be used for programming asynchronously.
A polyfill is a bit of code that add functionality to the browser and normalizes browser differences. This is similar to a shim, but where as a shim has it's own API, a polyfill let's you use the expect API of the brower.
Protractor is testing framework written for and by the Angular team. Protractor can be used with test runners, like Karma, for end-to-end testing. Basically figuring out if your app behaves the way you expect it too.
A shim is a piece of code that normailizes difference APIs across browsers. A shim would often has it's own API that would handle the cross browser differences.
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.
Unit Tests and unit testing are a way to test small pieces of code to see if they behave as expected. Unit testing frameworks include Jasmine, Mocah, QUnit, and many more.
Xcode is an IDE that allows you to develop iOS apps. Xcode includes tools that help with building, testing, and debugging your app. Although many Ionic developers do not use it as their primary editor, it is often used to build and sign the production version of an app.