title | date | last_updated | published |
---|---|---|---|
An Overview of Ionic's Github Repositories |
2017-05-12T17:15:00.000+00:00 |
2017-06-17T17:24:41.317Z |
true |
{:.no_toc}
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. {:.message}
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:
- toc {:toc}
Let's start with the most important ones:
-
ionic-cli - The Ionic Command Line Interface
ionic
(CLI) is what everybody that works with Ionic installs as one of the first steps withnpm install -g ionic
. It is what enables you toionic start
projects,ionic serve
them in the local browser to test them andionic 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.
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. {:.message}
-
ionic - This is the main Ionic Framework repository that is published as
ionic-angular
to npm and by this name included in thepackage.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 inpackage.json
. It adds the defaultconfig.xml
for Cordova projects, thesrc/index.html
that loads all the JS, and thesrc/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.
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.).
- ionic2-starter-blank - Blank page with some text
- ionic2-starter-tabs - 3 tabs with some text
- ionic2-starter-sidemenu - Sidemenu and some text
- ionic2-starter-tutorial - Template that is used in the Ionic Tutorial
- ionic-starter-super - Different kind of pages
- ionic2-starter-aws - Connects Ionic with AWS Mobile Hub
- ionic-preview-app - This app is embedded in the documentation at ionicframework.com and shows the usage of components and APIs
- ionic-conference-app - "A conference app built with Ionic to demonstrate Ionic" that includes lotfs of real live examples of how to use components and solve specific problems.
- ionic-unit-testing-example - You should test your apps. This repository "gives guidance on setting up your Ionic application for unit testing and end-to-end (E2E) testing".
- ionic-pwa-demos - "A collection of cool Ionic Progressive Web App demos"
- ionic-image-gallery-app - "A simple image gallery app built with Ionic and filled with Unsplash photos."
- ionic-tinder-app - "An app showing a UX similar to Tinder implemented in Ionic"
- ionic-mailbox-app - "A sample app that mimics the user experience of the beloved email client MailBox."
- ionic-paging-animation-app - "An Ionic app that shows off a cool pagination effect"
- ionic2-deeplinks-demo - "A test repo for deep linking in Ionic"
- ionic-camera-component-demo - Example projectfr a custom component
<ion-camera>
- wkwebview-test-app - App that includes and tests a Cordova plugin for WKWebView.
- 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-migration-demo-v1 - Ionic v1 project
- ionic-migration-demo-v2 - Migrated Ionic project
Note: Ionic v1 is the "old" version of Ionic Framework that is built on AngularJS. {:.message}
- 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-hello-world - "Placeholder for Ionic Starter projects"
- ionic-starter-blank - "A blank starter project for Ionic"
- ionic-starter-tabs - "A starting project for Ionic using a simple tabbed interface"
- ionic-starter-sidemenu - "A starting project for Ionic using a side menu with navigation in the content area"
- ionic-starter-salesforce - "A starter project for Ionic and Salesforce"
- ionic-starter-maps - "An Ionic starter project using Google Maps and a side menu"
- ionic-starter-io - "An ionic starter project containing the ionic.io services."
- ionic-starter-deploy - "A starter project with Ionic Deploy"
- ionic-weather - "A simple Ionic Weather app"
- ionic1-deeplinks-demo - Deeplinks demo
- ionic-third-party-lib-example - "how to use third party libs in Ionic"
- ionic-example-cordova-camera - "An example of how to use the Cordova Camera API"
- front-page - "An example Hacker News app showcasing what's possible with Ionic"
- ionic-firebase-buses - "A bus tracking app for various cities using Ionic and Firebase"
- chatroom-cordova-ionic-angularjs-firebase - "Chat room app built with Cordova, Ionic and Angularjs"
- ionic-intro - "A demo app for showing an intro tutorial for your apps"
- ionic-present - Source of http://ionicframework.com/present-ionic/, a presentation about Ionic v1
Contrib / Ion
- ionic-ion-drawer - "A side menu drawer "
- ionic-ion-tinder-cards - "Add Tinder-style card swiping"
- ionic-ion-swipe-cards - "Swipeable card based layout for Ionic v1"
- ionic-ion-frost - "A reusable frosted-glass effect"
- ionic-ion-header-shrink - "A demo of making a header that shrinks based on the user scrolling (like Facebook's iOS app)."
- ionic-contrib-frosted-glass - "An optional frosted-glass effect for iOS 7 styled Ionic v1 apps."
- ionic-ion-ios-buttons - "Simple iOS 7 style rounded buttons with CSS"
- ionic-contrib-firebase-login - "Using Firebase's angularFire and simple login with Ionic"
- ionic-cloud-angular - Use Ionic Services in Ionic/Angular
- ionic-cloud - Use Ionic Services in Ionic v1/AngularJS
- ionic-plugin-deploy - Cordova Plugin for Ionic Deploy / Live Updates
- ionic-package-hooks - "Cordova hooks that you can run in Ionic Package"
- ionic-view-issues - Ionic View is the app to show and test apps you
ionic upload
ed to apps.ionic.io. That source code is not open source, but here you can create issues for bugs or feature requests. - custom-auth-examples - 'Custom Auth' Examples for Ionic Auth
- platform-client-node - Node.js library implementing the Push Endpoints of the Ionic Service HTTP API
- ionic-error-tracking - Future error tracking tool?
Ionic also offers and creates some Cordova plugins for use in all Cordova projects, not only Ionic.
- ionic-plugin-keyboard - Interacting with the keyboards and get events fired on keyboard changes
- ionic-plugin-deeplinks - "Handle deeplinks into your Ionic/Cordova apps from Universal Links, App Links, and Custom URL schemes."
- cordova-plugin-ios-keychain - Access the iOS keychain
- cordova-camera-roll - "The Cordova Camera Roll plugin makes it easy to read from the iOS camera roll."
- cordova-plugin-localstorage-backup - Backup your local storage to the device
- cordova-plugin-wkwebview-engine - "This plugin makes Cordova use the
WKWebView
component instead of the defaultUIWebView
component" - cordova-plugin-template - "simple starting point for building a Cordova plugin on iOS and Android"
Ionic Creator is a WYSIWYG editor for Ionic v1 that you can use to click your interface and then back it with code.
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.
- ionic2 - Former home of Ionic 2
- ionic-cloud-issues
- ionic-box - "A Vagrant install for Android, Cordova, and Ionic v1"
- ionic-gulp-tasks - "Collection of gulp tasks for building Ionic apps"
- ionic-learn - once was learn.ionicframework.com
- ionitron-issues - "A custom issue tracker for GitHub with issue ranking/scoring, and bot templated responses"
- ionic-push-issues - "A repo for filing and getting push notification help."
- ionic2-starter - "An Ionic2 starter project"
- ionic-starter-cardboard - "A google cardboard template for Ionic"
- ionic-angular-cordova-seed - "The perfect starting point for an Ionic v1 project"
- ionic-lab-issues - "Issues to track for the Ionic Lab project."
Old Ionic Services
- ionic-platform-web-client - Precursor to
@ionic/cloud
- ionic-service-analytics - Precursor of
ionic-platform-web-client
- ionic-push-tutorial-app - " Companion app to the Ionic Push startup guide."
- ionic-service-push-client - "Client-side code for the ionic push service"
- ionic-starter-push - Start for Ionic Push
- ionic-service-core - "Common required service tools and addons"
- ionic-service-deploy - "Update service for Ionic"
- deploy-tutorial - "Companion app to the Ionic Deploy tutorial"
- ionic-starter-analytics - "Your basic Ionic starter app, plus analytics"
- ionic-default-resources - "Default resources for icons and splash screens"
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:
- ionicate - Internal Survey for apps.ionic.io
- ionic-precommit-hooks - "Runs the test for Ionic 2."
- ionic-cz-conventional-changelog - "A commitizen adapter"
- ionic-issue-submit - Submit issue form, see: http://blog.ionic.io/how-ionic-uses-github-better/
- ionitron-lingo - "teaching Ionitron to speak"
- gulp-angular-seed - "A simple starting project for JS utilities that use Angular and want to build with Gulp"
- ionic-workshop-london - "Workshop for AngularConnect"
- api-tester - "Simple node.js server that mirrors responses back"
- ionic-closure - Closure Experiment
- ionic-web-analytics - "Express middleware for sending web analytics to BigQuery"
- ionic-heroku-button - "A one-click Ionic v1 app template for Heroku"
- ionic-scripts - "ionic-scripts is a set of scripts/utilities to help ionic 2 app development"
- ionic-bootstrap-theme-generator - "Generate an Ionic theme from a bootstrap theme"
- eslint-config-ionic - "Common eslint rules/preferences for Ionic."
- jetstrap-docs
- ionicons-wp - "Official Ionicons WordPress Plugin"
- ionic-workshop - "Ionic Workshop"
- appcamp-issues - "Issues for the Appcamp project"
- collide - "A powerful javascript animation engine for web and hybrid mobile apps, inspired by Facebook Pop"
- lazy-loading-poc - "Lazy loading POC"
- ionic-io-docs - "Ionic.io Docs Site"
- ionic-io-testers
- ionic-proxy-example - "A quick Ionic project showing how to use the proxy server"
- ionic-starter-tests - "A test of different kinds of page navigation"
- ionic-starter-complex-list - "A complex list starter template"
- ionic-theme-server - "A theme server for building and serving Ionic SASS themes with set variables"
- go-utils - "Common Go Utils for go programs"
- cordova-plugin-discovery - "Network discovery plugin for iOS and Android Cordova apps"
- ionic-cordova-wrapper - "A empty wrapping project for an Ionic app that uses Cordova"
- ngMad - "Homepage for the Madison Angular Meetup Group"
- ionic-todo
- django-template - "Generates cordova/phonegap splash screen images for multiple platforms given a logo and background color/image."
- cordova-splash-generator
- ionic-tutorial-status-fade - "A simple fading statusbar as seen on the Facebook app on iOS 7"
- jqm-neue - "A slightly tweaked default jQuery Mobile theme."
- graphite - "Clean jQuery Mobile theme-pack and theme generator"
- jquerymobile-tabbar - "An easier to use NavBar control for jQuery Mobile apps"
- jqm-plain - "A fork of jQuery Mobile with one swatch and a simple, default theme."
- repool - "RethinkDB connection pool"
- cordova-plugin-inapppurchase - "A lightweight cordova plugin for in app purchases on iOS/Android"
- localForage-cordovaSQLiteDriver - "SQLite driver for Cordova apps using localForage"
- reactionic - "React Ionic"
- cordova-plugin-statusbar - "The StatusBar object provides some functions to customize the iOS and Android StatusBar."
- cordova-lib -
cordova-lib
- storm - "Apache Storm"
- heroku-buildpack-sphinx
- heroku-buildpack-python
- nginx-buildpack - "Run NGINX (with SSL) in front of your app server on Heroku"
- heroku-buildpack-multi - "Composable buildpacks"
- electron-builder - "Build installers for Electron apps the easy way"
- usemin-lib - "Replaces references to non-optimized scripts or stylesheets into a set of HTML files (or any templates/views)"
- node-xcode - "tools and utilities for working with xcode/ios projects"
- heroku-buildpack-nodejs-gulp - "A slightly modified version of Heroku's official Node.js buildpack with added gulp.js support"
- gulp-electron - "Getting Started with Node on Heroku"
- gulp-electron - "A gulp plugin for atom-shell distribute applications"
- bonjour - "A Bonjour/Zeroconf protocol implementation in JavaScript"
- cordova-plugin-keyboard - "Keyboard Plugin for Cordova"
- cordova-android -
cordova-android
- cordova-crosswalk-engine - "Proof of Concept Third Party Web Engine using Crosswalk"
- standard - "JavaScript Standard Style — One Style to Rule Them All"
- tiny-lr - "tiny livereload"
- InstagramPlugin - "Instagram plugin for PhoneGap/Cordova"
- opbeat-node - "A Node.js client for Opbeat"
- docker-consul - "Dockerized Consul Agent"
- gosass - "Go language wrapper for LibSass"
- discourse - "A platform for community discussion."