ionic.zone - a site about all things Ionic

An Overview of Ionic’s Github Repositories

If you develop applications using Ionic Framework you will - sooner or later - come into contact with one of its Github repositories. When looking for how to do something, it is sometimes easier to look into and search the code directly on Github where it is versioned and easily searchable, than to limit yourself to what you have available locally. Fortunately, all components of Ionic are developed in the open. At the latest when something doesn’t work as expected and it really isn’t user error, you end up at the issue’s of the project or even submitting a Pull Request fixing the bug you encountered.

But Ionic (or better ionic-team, the Github organization that hosts and collects all the repositories) has a loooot of Github repositories. More than 150 in fact. What is which and needed why?

Note: This article is slightly outdated right now as Ionic created a few new projects. These will be added soon-ish.

This post gives you an overview of all these repositories. For that, I went through all of them, grouped them and added some description and explanation:

Let’s start with the most important ones:

General

  • ionic-cli - The Ionic Command Line Interface ionic (CLI) is what everybody that works with Ionic installs as one of the first steps with npm install -g ionic. It is what enables you to ionic start projects, ionic serve them in the local browser to test them and ionic cordova build them into Cordova wrapped native apps for mobile - and so much more.

  • ionic-site - You most probably visited ionicframework.com when you learned about Ionic Framework. Here is all the information you need, including the complete documentation. The site is built from this repository, which in turn gets its content from many of the child repositories.

Ionic

Note: What I call just “Ionic” in the following paragraphs and lists was formerly known as Ionic 2. But Ionic quickly followed up with Ionic 3 and is working hard on the next iterations - so it makes more sense to call is just Ionic. The older iteration of the Framework that was built on AngularJS (instead of Angular for the current Ionic) is now known as “Ionic v1” and referred as such here.

  • ionic - This is the main Ionic Framework repository that is published as ionic-angular to npm and by this name included in the package.json of newly created Ionic projects. It includes… TODO

  • ionic-app-scripts - Ionic App Scripts are “App Build Scripts for Ionic Projects”. They are used by the Ionic CLI to do everything that is required to go from a simple /src where you type your code in Typescript files to the processed /www where you only have a few optimized .js files (meaning these tasks: build, clean, cleancss, copy, lint, minify, sass, watch and more).

  • ionic2-app-base - Base project for Ionic projects. It includes the stuff that when you start a new Ionic apps is identical in all of them, no matter what starter template is used. This includes the definition which version of ionic-angular is actually used in the project, but also all the other dependencies in package.json. It adds the default config.xml for Cordova projects, the src/index.html that loads all the JS, and the src/app/main.ts that is the “entry” point of all the code that gets executed. In /resources you also get the default app icons and splash screens.

  • ionic-native - Ionic Native bridges all the Cordova plugins out there into the Ionic and Angular world. It adds a wrapper around the plugin codes that offers Promises and Observables you can use in your code. Additionally it adds Runtime Diagnostics and Browser Usage support, so you can write mocks for the plugins that work during browser testing.

  • ionic-storage - Ionic Storage is a simple key value store made for Ionic, solving many of the storage requirements in common projects. In the background it uses IndexedDB, WebSQL, and LocalStorage and also can use SQLite on native environments where the SQLite Cordova plugin is installed. It uses the excellent localForage in the background.

  • ionic-module-template - This template could be the base if you decide to build and distribute a reusable module for Ionic.

Ionic Starter Templates

These templates are downloaded and applied on top of the ionic2-app-base by the CLI when you ionic start a project. They contain mainly the code for the pages (/src/app and /src/pages), sometimes additional things (like assets, a package.json with additional dependencies, providers etc.).

Ionic Example Apps

Ionic Other

  • ionic-themer - Super simple Ionic Theme Generator
  • ionicons - Ionicons are the “premium icon font for Ionic” and define the look of Ionic you know: By default, they are used everywhere where Icons appear in the apps created by Ionic. Tabbars, Buttons with Icons, Navigation use icons built with this icon font.
  • learn-angular2 - Ionic switched from AngularJS to Angular, back then still known as Angular2. This repo contains the code for the website http://learnangular2.com that can help you get comfortable with Angular and learn all the stuff that changed.
  • tslint-ionic-rules - “Common TypeScript lint rules/preferences for Ionic.”

Migrate to Ionic from Ionic v1

Ionic provides a 33 page Migration Guide to Ionic 2 from Ionic v1 (PDF) for people with v1 projects.

Ionic v1

Note: Ionic v1 is the “old” version of Ionic Framework that is built on AngularJS.

  • ionic-v1 - Here Ionic moved the “old” code of Ionic v1 when they released Ionic “2”.
  • ionic-app-base - Similar to the ionic2-app-base this is the base project template downloaded by the CLI when you ionic start a v1 project.
  • ng-cordova - ngCordova is Ionic Native for Ionic v1
  • ionic-code - Ionic has a CDN for Ionic v1 files at http://code.ionicframework.com
  • ionic-bower - Ionic v1 is/was available on Bower
  • ionic-native-bower - Makes Ionic Native available via bower for Ionic v1
  • ionic-typescript-example - Use TypeScript with Ionic v1 (includes Screencast)

Ionic v1 Starter Templates

Ionic v1 Example Apps

Ionic v1 Other

  • ionic-present - Source of http://ionicframework.com/present-ionic/, a presentation about Ionic v1

Contrib / Ion

Ionic Services (Cloud, Platform)

Cordova Plugins

Ionic also offers and creates some Cordova plugins for use in all Cordova projects, not only Ionic.

Ionic Creator

Ionic Creator is a WYSIWYG editor for Ionic v1 that you can use to click your interface and then back it with code.

Deprecated

There are lots of repositores that were once used, but now are explicitly marked as deprecated or implicitly are deprecated because the service or tool they describe is not in use any more.

Old Ionic Services

CLI v2

With the release of Ionic CLI v3 these two repositories are not needed any more as a rewrite of them is now part of the CLI itself:

Other

Internal

Abandoned, Unkown

Forks