{"id":19351790,"url":"https://github.com/alxwndr/ionic-framework-resources","last_synced_at":"2025-06-15T22:39:17.787Z","repository":{"id":97140836,"uuid":"91880974","full_name":"alxwndr/Ionic-Framework-Resources","owner":"alxwndr","description":"🎓 📚 💙 A free collaborative list of awesome Ionic Framework resources","archived":false,"fork":false,"pushed_at":"2022-05-14T08:04:09.000Z","size":58,"stargazers_count":17,"open_issues_count":2,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-02T09:51:15.106Z","etag":null,"topics":["angular","firebase","ionic","ionic-framework","ionic2","resources"],"latest_commit_sha":null,"homepage":"http://ionicframework.com","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alxwndr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-20T10:10:21.000Z","updated_at":"2022-08-12T14:01:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"a88acb6c-bd7d-4587-ae38-28de0276a534","html_url":"https://github.com/alxwndr/Ionic-Framework-Resources","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alxwndr%2FIonic-Framework-Resources","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alxwndr%2FIonic-Framework-Resources/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alxwndr%2FIonic-Framework-Resources/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alxwndr%2FIonic-Framework-Resources/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alxwndr","download_url":"https://codeload.github.com/alxwndr/Ionic-Framework-Resources/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250391137,"owners_count":21422846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","firebase","ionic","ionic-framework","ionic2","resources"],"created_at":"2024-11-10T04:37:17.309Z","updated_at":"2025-04-23T07:31:07.395Z","avatar_url":"https://github.com/alxwndr.png","language":null,"readme":"# Ionic Framework Resources  :computer:\n\n\u003cdiv\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src= \"https://raw.githubusercontent.com/alxwndr/Ionic-2-Framework-Resources/master/ionic-logo.png\"\u003e\n\u003c/p\u003e\n\u003c/div\u003e\n\nA free collaborative list of awesome Ionic Framework resources.\nThis list is a an attempt to create a comprehensive list of tutorials that cover as many topics as possible for Ionic version 2.\nI will update this list as I discover new posts and as new posts are suggested.\n\n\n### Developer pages\n* http://ionicframework.com\n* https://apps.ionic.io\n* http://creator.ionic.io\n\n### ngCordova\n* http://ngcordova.com\n\n### Angular Links\n* https://material.angularjs.org/latest/#\n\n### The best Ionic blogs\n* http://www.joshmorony.com/category/ionic-tutorials\n* http://blog.ionic.io/\n* https://blog.nraboy.com/?s=ionic\u0026submit=Search\n\n\n\n\u003ch2\u003eIonic Basics\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://mcgivery.com/understanding-ionic-2-class/\" target=\"_blank\"\u003eUnderstanding Ionic 2: \u003cstrong\u003eClass\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://mcgivery.com/understanding-ionic-2-imports/\" target=\"_blank\"\u003eUnderstanding Ionic 2: \u003cstrong\u003eImports\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://mcgivery.com/understanding-ionic-2-app/\" target=\"_blank\"\u003eUnderstanding Ionic 2: \u003cstrong\u003e@App\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://mcgivery.com/understanding-ionic-2-page/\" target=\"_blank\"\u003eUnderstanding Ionic 2: \u003cstrong\u003e@Page\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://mcgivery.com/understanding-ionic-2-pipe/\" target=\"_blank\"\u003eUnderstanding Ionic 2: \u003cstrong\u003e@Pipe\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://mcgivery.com/understanding-ionic-2-navigation-navcontroller/\" target=\"_blank\"\u003eUnderstanding Ionic 2: \u003cstrong\u003eNavigation with NavController\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://mcgivery.com/understanding-ionic-2-pipe/\" target=\"_blank\"\u003eUnderstanding Ionic 2: \u003cstrong\u003e@Pipe\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/ionic-2-first-look-series-new-angular-2-concepts-syntax/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/ionic-2-first-look-series-new-angular-2-concepts-syntax/', 'Ionic 2 First Look Series: New Angular 2 Concepts \u0026amp; Syntax']);\" target=\"_blank\"\u003eIonic 2 First Look Series: \u003cstrong\u003eNew Angular 2 Concepts \u0026amp; Syntax\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/ionic-2-first-look-series-your-first-ionic-2-app-explained/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/ionic-2-first-look-series-your-first-ionic-2-app-explained/', 'Ionic 2 First Look Series: Your First Ionic 2 App Explained']);\" target=\"_blank\"\u003eIonic 2 First Look Series: Your \u003cstrong\u003eFirst Ionic 2 App\u003c/strong\u003e Explained\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/how-to-use-pipes-to-manipulate-data-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/how-to-use-pipes-to-manipulate-data-in-ionic-2/', 'How to Use Pipes to Manipulate Data in Ionic 2']);\" target=\"_blank\"\u003eHow to Use \u003cstrong\u003ePipes to Manipulate Data\u003c/strong\u003e in Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/how-to-create-a-directive-in-ionic-2-parallax-header/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/how-to-create-a-directive-in-ionic-2-parallax-header/', 'How to Create a Directive in Ionic 2 – Parallax Header']);\" target=\"_blank\"\u003eHow to Create a \u003cstrong\u003eDirective\u003c/strong\u003e in Ionic 2 – Parallax Header\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2015/12/navigate-between-pages-in-an-ionic-2-android-and-ios-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2015/12/navigate-between-pages-in-an-ionic-2-android-and-ios-app/', 'Navigate Between Pages In An Ionic 2 Android And iOS App']);\" target=\"_blank\"\u003e\u003cstrong\u003eNavigate Between Pages\u003c/strong\u003e In An Ionic 2 Android And iOS App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-a-page-anatomy-part-1-the-root-component/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-a-page-anatomy-part-1-the-root-component/', 'A Page Anatomy Part 1 – The Root Component']);\" target=\"_blank\"\u003eA Page Anatomy Part 1 – The \u003cstrong\u003eRoot Component\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-a-page-anatomy-part-2-page-components/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-a-page-anatomy-part-2-page-components/', 'A Page Anatomy Part 2 – Page Component']);\" target=\"_blank\"\u003eA Page Anatomy Part 2 – \u003cstrong\u003ePage Component\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-tutorial-lets-create-our-first-application/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-tutorial-lets-create-our-first-application/', 'Tutorial | Let’s Create Our First Application']);\" target=\"_blank\"\u003eTutorial | Let’s Create Our \u003cstrong\u003eFirst Application\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/beginners-guide-to-getting-started-with-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/beginners-guide-to-getting-started-with-ionic-2/', 'Beginners Guide to Getting Started with Ionic 2']);\" target=\"_blank\"\u003eBeginners Guide to \u003cstrong\u003eGetting Started\u003c/strong\u003e with Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/a-simple-guide-to-navigation-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/a-simple-guide-to-navigation-in-ionic-2/', 'A Simple Guide to Navigation in Ionic 2']);\" target=\"_blank\"\u003eA Simple Guide to \u003cstrong\u003eNavigation\u003c/strong\u003e in Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/a-guide-to-styling-an-ionic-2-application/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/a-guide-to-styling-an-ionic-2-application/', 'A Guide to Styling an Ionic 2 Application']);\" target=\"_blank\"\u003eA Guide to \u003cstrong\u003eStyling\u003c/strong\u003e an Ionic 2 Application\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-how-o-create-and-validate-forms/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-how-o-create-and-validate-forms/', 'How To Create And Validate Forms']);\" target=\"_blank\"\u003eHow To \u003cstrong\u003eCreate And Validate Forms\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-sharing-data-between-pagescomponents/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-sharing-data-between-pagescomponents/', 'Sharing Data Between Pages/Components']);\" target=\"_blank\"\u003e\u003cstrong\u003eSharing Data\u003c/strong\u003e Between Pages/Components\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://gonehybrid.com/build-your-first-mobile-app-with-ionic-2-angular-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://gonehybrid.com/build-your-first-mobile-app-with-ionic-2-angular-2/', 'Build Your First Mobile App With Ionic 2 \u0026amp; Angular 2']);\" target=\"_blank\"\u003eBuild Your \u003cstrong\u003eFirst Mobile App\u003c/strong\u003e With Ionic 2 \u0026amp; Angular 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://blog.ionic.io/10-minutes-with-ionic-2-hello-world/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://blog.ionic.io/10-minutes-with-ionic-2-hello-world/', '10 Minutes with Ionic 2: Hello World']);\" target=\"_blank\"\u003e10 Minutes with Ionic 2: \u003cstrong\u003eHello World\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://blog.ionic.io/10-minutes-with-ionic-2-adding-pages-and-navigation/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://blog.ionic.io/10-minutes-with-ionic-2-adding-pages-and-navigation/', '10 Minutes with Ionic 2: Adding Pages and Navigation']);\" target=\"_blank\"\u003e10 Minutes with Ionic 2: Adding \u003cstrong\u003ePages and Navigation\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eInstallation and Setup\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-installation-guide/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-installation-guide/', 'Installation Guide']);\" target=\"_blank\"\u003e\u003cstrong\u003eInstallation\u003c/strong\u003e Guide\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eHTTP Requests to Backends, Webservices, APIs, etc\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-making-rest-http-requests-like-a-pro/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-making-rest-http-requests-like-a-pro/', 'Making REST HTTP Requests Like a Pro']);\" target=\"_blank\"\u003eMaking \u003cstrong\u003eREST HTTP Requests\u003c/strong\u003e Like a Pro\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.nikola-breznjak.com/blog/ionic2/posting-data-from-ionic-2-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.nikola-breznjak.com/blog/ionic2/posting-data-from-ionic-2-app/', 'Posting data from Ionic 2 app to a PHP server']);\" target=\"_blank\"\u003e\u003cstrong\u003ePosting data\u003c/strong\u003e from Ionic 2 app to a \u003cstrong\u003ePHP server\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/using-http-to-fetch-remote-data-from-a-server-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/using-http-to-fetch-remote-data-from-a-server-in-ionic-2/', 'Using Http to Fetch Remote Data from a Server in Ionic 2']);\" target=\"_blank\"\u003eUsing Http to \u003cstrong\u003eFetch Remote Data from a Server\u003c/strong\u003e in Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/01/make-http-requests-in-an-ionic-2-android-and-ios-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/01/make-http-requests-in-an-ionic-2-android-and-ios-app/', 'Make HTTP Requests In An Ionic 2 Android And iOS App']);\" target=\"_blank\"\u003eMake \u003cstrong\u003eHTTP Requests\u003c/strong\u003e In An Ionic 2 Android And iOS App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://blog.ionic.io/10-minutes-with-ionic-2-calling-an-api/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://blog.ionic.io/10-minutes-with-ionic-2-calling-an-api/', '10 Minutes with Ionic 2: Calling an API']);\" target=\"_blank\"\u003e10 Minutes with Ionic 2: \u003cstrong\u003eCalling an API\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eIonic Components\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/ionic-2-how-to-create-a-sliding-delete-button-for-lists/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/ionic-2-how-to-create-a-sliding-delete-button-for-lists/', 'Ionic 2: How to Create a Sliding Delete Button for Lists']);\" target=\"_blank\"\u003eIonic 2: How to Create a \u003cstrong\u003eSliding Delete Button for Lists\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://www.joshmorony.com/an-in-depth-look-at-the-grid-system-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/an-in-depth-look-at-the-grid-system-in-ionic-2/', 'An In Depth Look at the Grid System in Ionic 2']);\" target=\"_blank\"\u003eAn In Depth Look at the \u003cstrong\u003eGrid System\u003c/strong\u003e in Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eIonic App Patterns\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/creating-a-sliding-introduction-component-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/creating-a-sliding-introduction-component-in-ionic-2/', 'Creating a Sliding Introduction Component in Ionic 2']);\" target=\"_blank\"\u003eCreating a \u003cstrong\u003eSliding Introduction Component\u003c/strong\u003e in Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eAuthentication\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-handling-a-simple-user-authorization/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-handling-a-simple-user-authorization/', 'Handling a Simple User Authorization']);\" target=\"_blank\"\u003eHandling a \u003cstrong\u003eSimple User Authorization\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/01/using-an-oauth-2-0-service-within-an-ionic-2-mobile-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/01/using-an-oauth-2-0-service-within-an-ionic-2-mobile-app/', 'Using An Oauth 2.0 Service Within An Ionic 2 Mobile App']);\" target=\"_blank\"\u003eUsing An \u003cstrong\u003eOauth 2.0\u003c/strong\u003e Service Within An Ionic 2 Mobile App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/01/use-ng2-cordova-oauth-for-all-your-ionic-2-oauth-needs/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/01/use-ng2-cordova-oauth-for-all-your-ionic-2-oauth-needs/', 'Use ng2-cordova-oauth For All Your Ionic 2 Oauth Needs']);\" target=\"_blank\"\u003eUse \u003cstrong\u003eng2-cordova-oauth\u003c/strong\u003e For All Your Ionic 2 Oauth Needs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-succesfull-oauth-social-login-with-firebase/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-succesfull-oauth-social-login-with-firebase/', 'Successful OAuth Social Login with Firebase']);\" target=\"_blank\"\u003eSuccessful \u003cstrong\u003eOAuth Social Login with Firebase\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://www.joshmorony.com/boosting-scroll-performance-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/boosting-scroll-performance-in-ionic-2/', 'Boosting Scroll Performance in Ionic 2']);\" target=\"_blank\"\u003eBoosting \u003cstrong\u003eScroll Performance\u003c/strong\u003e in Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eBackend as a Service\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://www.joshmorony.com/syncing-data-with-pouchdb-and-cloudant-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/syncing-data-with-pouchdb-and-cloudant-in-ionic-2/', 'Syncing Data with PouchDB and Cloudant in Ionic 2']);\" target=\"_blank\"\u003eSyncing Data with \u003cstrong\u003ePouchDB and Cloudant\u003c/strong\u003e in Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/05/send-emails-ionic-2-mobile-app-via-rackspace-mailgun-api/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/05/send-emails-ionic-2-mobile-app-via-rackspace-mailgun-api/', 'Send Emails In An Ionic 2 App Via The Rackspace Mailgun API']);\" target=\"_blank\"\u003eSend Emails In An Ionic 2 App Via The \u003cstrong\u003eRackspace Mailgun API\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://gonehybrid.com/how-to-use-pouchdb-sqlite-for-local-storage-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://gonehybrid.com/how-to-use-pouchdb-sqlite-for-local-storage-in-ionic-2/', 'How To Use PouchDB + SQLite For Local Storage In Ionic 2']);\" target=\"_blank\"\u003eHow To Use \u003cstrong\u003ePouchDB + SQLite\u003c/strong\u003e For Local Storage In Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eIonic Tooling\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-how-to-update-your-application-project-and-cli/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-how-to-update-your-application-project-and-cli/', 'How To Update Your Application Project and CLI']);\" target=\"_blank\"\u003eHow To \u003cstrong\u003eUpdate Your Application Project and CLI\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003engCordova/Cordova Plugins\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/ionic-2-how-to-use-google-maps-geolocation-video-tutorial/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/ionic-2-how-to-use-google-maps-geolocation-video-tutorial/', 'Ionic 2: How to Use Google Maps \u0026amp; Geolocation']);\" target=\"_blank\"\u003eIonic 2: How to Use \u003cstrong\u003eGoogle Maps \u0026amp; Geolocation\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2015/12/use-sqlite-in-ionic-2-instead-of-local-storage/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2015/12/use-sqlite-in-ionic-2-instead-of-local-storage/', 'Use SQLite In Ionic 2 Instead Of Local Storage']);\" target=\"_blank\"\u003eUse \u003cstrong\u003eSQLite\u003c/strong\u003e In Ionic 2 Instead Of Local Storage\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/01/determine-network-availability-in-an-ionic-2-mobile-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/01/determine-network-availability-in-an-ionic-2-mobile-app/', 'Determine Network Availability In An Ionic 2 Mobile App']);\" target=\"_blank\"\u003e\u003cstrong\u003eDetermine Network Availability\u003c/strong\u003e In An Ionic 2 Mobile App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/01/show-native-toast-notifications-in-an-ionic-2-mobile-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/01/show-native-toast-notifications-in-an-ionic-2-mobile-app/', 'Show Native Toast Notifications In An Ionic 2 Mobile App']);\" target=\"_blank\"\u003eShow \u003cstrong\u003eNative Toast Notifications\u003c/strong\u003e In An Ionic 2 Mobile App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/01/launch-websites-with-ionic-2-using-the-inappbrowser/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/01/launch-websites-with-ionic-2-using-the-inappbrowser/', 'Launch Websites With Ionic 2 Using The InAppBrowser']);\" target=\"_blank\"\u003eLaunch Websites With Ionic 2 Using The \u003cstrong\u003eInAppBrowser\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/02/monetize-google-admob-ionic-2-mobile-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/02/monetize-google-admob-ionic-2-mobile-app/', 'Monetize With Google Admob In An Ionic 2 Mobile App']);\" target=\"_blank\"\u003e\u003cstrong\u003eMonetize With Google Admob\u003c/strong\u003e In An Ionic 2 Mobile App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-having-fun-with-cordova-geolocation-plugin/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-having-fun-with-cordova-geolocation-plugin/', 'Having Fun With Cordova Geolocation Plugin']);\" target=\"_blank\"\u003eHaving Fun With Cordova \u003cstrong\u003eGeolocation Plugin\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-how-to-use-cordova-plugins/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-how-to-use-cordova-plugins/', 'How to Work With Cordova Plugins']);\" target=\"_blank\"\u003eHow to Work With \u003cstrong\u003eCordova Plugins\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://blog.ionic.io/10-minutes-with-ionic-2-using-the-camera-with-ionic-native/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://blog.ionic.io/10-minutes-with-ionic-2-using-the-camera-with-ionic-native/', '10 Minutes with Ionic 2: Using the Camera with Ionic Native']);\" target=\"_blank\"\u003e10 Minutes with Ionic 2: Using the \u003cstrong\u003eCamera\u003c/strong\u003e with Ionic Native\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://www.joshmorony.com/using-cordova-plugins-in-ionic-2-with-ionic-native/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/using-cordova-plugins-in-ionic-2-with-ionic-native/', 'Using Cordova Plugins in Ionic 2 with Ionic Native']);\" target=\"_blank\"\u003eUsing \u003cstrong\u003eCordova Plugins\u003c/strong\u003e in Ionic 2 with Ionic Native\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://www.joshmorony.com/adding-background-geolocation-to-an-ionic-2-application/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/adding-background-geolocation-to-an-ionic-2-application/', 'Adding Background Geolocation to an Ionic 2 Application']);\" target=\"_blank\"\u003eAdding \u003cstrong\u003eBackground Geolocation\u003c/strong\u003e to an Ionic 2 Application\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/04/use-the-device-camera-in-an-ionic-2-android-and-ios-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/04/use-the-device-camera-in-an-ionic-2-android-and-ios-app/', 'Use The Device Camera In An Ionic 2 Android And iOS App']);\" target=\"_blank\"\u003eUse The \u003cstrong\u003eDevice Camera\u003c/strong\u003e In An Ionic 2 Android And iOS App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/03/add-touch-id-authentication-ionic-2-mobile-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/03/add-touch-id-authentication-ionic-2-mobile-app/', 'Add Touch ID Authentication To An Ionic 2 Mobile App']);\" target=\"_blank\"\u003eAdd \u003cstrong\u003eTouch ID Authentication\u003c/strong\u003e To An Ionic 2 Mobile App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/03/use-google-analytics-in-an-ionic-2-android-and-ios-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/03/use-google-analytics-in-an-ionic-2-android-and-ios-app/', 'Use Google Analytics In An Ionic 2 Android And iOS App']);\" target=\"_blank\"\u003eUse \u003cstrong\u003eGoogle Analytics\u003c/strong\u003e In An Ionic 2 Android And iOS App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/02/add-barcode-scanning-functionality-to-your-ionic-2-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/02/add-barcode-scanning-functionality-to-your-ionic-2-app/', 'Add Barcode Scanning Functionality To Your Ionic 2 App']);\" target=\"_blank\"\u003eAdd \u003cstrong\u003eBarcode Scanning\u003c/strong\u003e Functionality To Your Ionic 2 App\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/02/share-things-on-social-media-via-an-ionic-2-mobile-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/02/share-things-on-social-media-via-an-ionic-2-mobile-app/', 'Share Things On Social Media Via An Ionic 2 Mobile App']);\" target=\"_blank\"\u003e\u003cstrong\u003eShare Things On Social Media\u003c/strong\u003e Via An Ionic 2 Mobile App\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eMiscellaneous\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/build-a-todo-app-from-scratch-with-ionic-2-video-tutorial/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/build-a-todo-app-from-scratch-with-ionic-2-video-tutorial/', 'Build a Todo App from Scratch with Ionic 2']);\" target=\"_blank\"\u003eBuild a \u003cstrong\u003eTodo App\u003c/strong\u003e from Scratch with Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/how-to-convert-an-ionic-1-application-to-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/how-to-convert-an-ionic-1-application-to-ionic-2/', 'How to Convert an Ionic 1 Application to Ionic 2']);\" target=\"_blank\"\u003eHow to \u003cstrong\u003eConvert an Ionic 1 Application\u003c/strong\u003e to Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/01/creating-a-real-time-chat-application-with-ionic-2-and-socket-io/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/01/creating-a-real-time-chat-application-with-ionic-2-and-socket-io/', 'Creating a Real Time Chat Application with Ionic 2 and Socket.io']);\" target=\"_blank\"\u003eCreating a \u003cstrong\u003eReal Time Chat Application\u003c/strong\u003e with Ionic 2 and Socket.io\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.joshmorony.com/creating-an-advanced-google-maps-component-in-ionic-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/creating-an-advanced-google-maps-component-in-ionic-2/', 'Creating an Advanced Google Maps Component in Ionic 2']);\" target=\"_blank\"\u003eCreating an \u003cstrong\u003eAdvanced Google Maps Component\u003c/strong\u003e in Ionic 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-internationalize-and-localize-your-app-with-angular-2/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-internationalize-and-localize-your-app-with-angular-2/', 'Internationalize and Localize Your App With Angular 2']);\" target=\"_blank\"\u003e\u003cstrong\u003eInternationalize and Localize\u003c/strong\u003e Your App With Angular 2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.gajotres.net/ionic-2-integrating-google-maps/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.gajotres.net/ionic-2-integrating-google-maps/', 'Integrating Google Maps']);\" target=\"_blank\"\u003eIntegrating \u003cstrong\u003eGoogle Maps\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"http://www.joshmorony.com/integrating-ionic-2-with-the-dropbox-api-part-1/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'http://www.joshmorony.com/integrating-ionic-2-with-the-dropbox-api-part-1/', 'Integrating Ionic 2 with the Dropbox API']);\" target=\"_blank\"\u003eIntegrating Ionic 2 with the \u003cstrong\u003eDropbox API\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"https://www.thepolyglotdeveloper.com/2016/03/use-font-awesome-icons-in-your-ionic-2-android-and-ios-app/\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://www.thepolyglotdeveloper.com/2016/03/use-font-awesome-icons-in-your-ionic-2-android-and-ios-app/', 'Use Font Awesome Icons In Your Ionic 2 Android And iOS App']);\" target=\"_blank\"\u003eUse \u003cstrong\u003eFont Awesome Icons\u003c/strong\u003e In Your Ionic 2 Android And iOS App\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eCourses and Ebooks\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cspan class=\"listPostNew\" style=\"background: rgba(92, 214, 92, 0.72);\"\u003eNEW \u003c/span\u003e\u003ca href=\"https://gumroad.com/a/549205107\" onclick=\"_gaq.push(['_trackEvent', 'outbound-article', 'https://gumroad.com/a/549205107', 'Building Mobile Apps with Ionic 2']);\" target=\"_blank\"\u003eBuilding Mobile Apps with Ionic 2\u003c/a\u003e ($29/$59/$79)\u003c/li\u003e\n\u003c/ol\u003e\n\n# Tutorials\n\n#### Video Tutorials\n\n- [Ionic 2 Quickstart](https://www.udemy.com/ionic-2-quickstart/) ![](ionic.png)\n- [Build a Todo App from Scratch with Ionic 2](http://www.joshmorony.com/build-a-todo-app-from-scratch-with-ionic-2-video-tutorial/) ![](ionic.png)\n- [Ionic 2: How to Use Google Maps \u0026 Geolocation](http://www.joshmorony.com/ionic-2-how-to-use-google-maps-geolocation-video-tutorial/) ![](ionic.png)\n- [Ionic 2 in One Hour](http://courses.devdactic.com/courses/ionic-2-in-one-hour?product_id=104238) ![](ionic.png)\n- [Build a Custom Flash Card Component in Ionic 2](https://www.youtube.com/watch?v=BKFQKywl_GM) ![](ionic.png)\n- [Hacking CSS in Ionic 2](https://www.youtube.com/watch?v=sXFmkdhOEVc) ![](ionic.png)\n- [Learn Ionic 3 From Scratch](https://www.youtube.com/watch?v=JcEGTektejA\u0026list=PLYxzS__5yYQng-XnJhB21Jc7NW1OIaqct) ![](ionic.png)\n\n### Basics\n\n- [Build a complete mobile app with Ionic 3](https://ionicthemes.com/tutorials/about/building-a-complete-mobile-app-with-ionic-3) ![](ionic.png)\n- [Ionic Application Structure](https://ionicthemes.com/tutorials/about/ionic-application-structure) ![](ionic.png)\n- [Setup your development environment to build Ionic apps](https://ionicthemes.com/tutorials/about/setup-your-dev-environment-to-build-ionic-apps) ![](ionic.png)\n- [Beginners Guide to Getting Started with Ionic 2](http://www.joshmorony.com/beginners-guide-to-getting-started-with-ionic-2/) ![](ionic.png)\n- [Ionic 2 First Look Series: Your First Ionic 2 App Explained](http://www.joshmorony.com/ionic-2-first-look-series-your-first-ionic-2-app-explained/) ![](ionic.png)\n- [How to Convert an Ionic 1 Application to Ionic 2](http://www.joshmorony.com/how-to-convert-an-ionic-1-application-to-ionic-2/) ![](ionic.png)\n- [A Simple Guide to Navigation in Ionic 2](http://www.joshmorony.com/a-simple-guide-to-navigation-in-ionic-2/) ![](ionic.png)\n- [10 Minutes with Ionic 2: Adding Pages and Navigation](http://blog.ionic.io/10-minutes-with-ionic-2-adding-pages-and-navigation/) ![](ionic.png)\n- [10 Minutes with Ionic 2: Calling an API](http://blog.ionic.io/10-minutes-with-ionic-2-calling-an-api/) ![](ionic.png)\n- [How To Update Your Application Project and CLI](http://www.gajotres.net/ionic-2-how-to-update-your-application-project-and-cli/) ![](ionic.png)\n- [How to Create a Data Model in Ionic 2](http://www.joshmorony.com/how-to-create-a-data-model-in-ionic-2/) ![](ionic.png)\n- [Ionic 2 and External Libraries](http://mhartington.io/post/ionic2-external-libraries/) ![](ionic.png)\n- [Understanding Zones and Change Detection](http://www.joshmorony.com/understanding-zones-and-change-detection-in-ionic-2-angular-2/) ![](ionic.png)\n- [Understanding Ionic 2: Pipe](http://mcgivery.com/understanding-ionic-2-pipe/) ![](ionic.png)\n- [How to Manipulate Data in Ionic 2: Part 1](http://www.joshmorony.com/how-to-manipulate-data-in-ionic-2-part-1/) ![](ionic.png)\n- [How to Manipulate Data in Ionic 2: Part 2](http://www.joshmorony.com/how-to-manipulate-data-in-ionic-2-part-2/) ![](ionic.png)\n- [Filtering, Mapping, and Reducing Arrays in Ionic 2](https://www.youtube.com/watch?v=A-4CLa05tp0) ![](ionic.png)\n\n#### Theming\n\n- [A Guide to Styling an Ionic 2 Application](http://www.joshmorony.com/a-guide-to-styling-an-ionic-2-application/) ![](ionic.png)\n- [Best practice when adding FontAwesome to an ionic2 app](http://luiscabrera.site/tech/2017/01/09/fontawesome-in-ionic2.html) ![](ionic.png)\n- [A List of Common CSS Utility Attributes in Ionic 2](http://www.joshmorony.com/a-list-of-common-css-utility-attributes-in-ionic-2/) ![](ionic.png)\n\n#### Components\n\n- [Ionic and Wordpress Integration using Wordpress REST API](https://ionicthemes.com/tutorials/about/ionic-wordpress-integration) ![](ionic.png)\n- [Add Google Maps, Places, and Geolocation to an Ionic 3 App](https://ionicthemes.com/tutorials/about/ionic-2-google-maps-google-places-geolocation) ![](ionic.png)\n- [How to Create a Sliding Delete Button for Lists](http://www.joshmorony.com/ionic-2-how-to-create-a-sliding-delete-button-for-lists/) ![](ionic.png)\n- [Creating a Sliding Introduction Component in Ionic 2](http://www.joshmorony.com/creating-a-sliding-introduction-component-in-ionic-2/) ![](ionic.png)\n- [How to Create a Custom Loading Component in Ionic 2](http://www.joshmorony.com/how-to-create-a-custom-loading-component-in-ionic-2/) ![](ionic.png)\n- [Build a Simple Progress Bar Component in Ionic 2](http://www.joshmorony.com/build-a-simple-progress-bar-component-in-ionic-2/) ![](ionic.png)\n- [Create a News Feed with 360-Degree Photo Viewing in Ionic 2](http://www.joshmorony.com/create-a-news-feed-with-360-degree-photo-viewing-in-ionic-2/) ![](ionic.png)\n- [Build a Tap to Reveal Component in Ionic 2](https://www.joshmorony.com/build-a-tap-to-reveal-component-in-ionic-2/) ![](ionic.png)\n\n#### Authentication\n\n- [Add Twitter Login to an Ionic 4 App](https://ionicthemes.com/tutorials/about/ionic-twitter-login) ![](ionic.png)\n- [Add Google Login to an Ionic 4 App](https://ionicthemes.com/tutorials/about/ionic-google-login) ![](ionic.png)\n- [Add Facebook Login to an Ionic 4 App](https://ionicthemes.com/tutorials/about/ionic-facebook-login) ![](ionic.png)\n- [Add Touch ID Authentication To An Ionic 2 Mobile App](https://www.thepolyglotdeveloper.com/2016/03/add-touch-id-authentication-ionic-2-mobile-app/) ![](ionic.png)\n- [Successful OAuth Social Login with Firebase](http://www.gajotres.net/ionic-2-succesfull-oauth-social-login-with-firebase/) ![](ionic.png)\n- [Using An Oauth 2.0 Service Within An Ionic 2 Mobile App](https://www.thepolyglotdeveloper.com/2016/01/using-an-oauth-2-0-service-within-an-ionic-2-mobile-app/) ![](ionic.png)\n- [Ionic 2 and Auth0](http://blog.ionic.io/ionic-2-and-auth0/) ![](ionic.png)\n- [Handling a Simple User Authorization](http://www.gajotres.net/ionic-2-handling-a-simple-user-authorization/) ![](ionic.png)\n- [Authenticate Ionic 2 with WordPress](https://auth0.com/authenticate/ionic2/wordpress) ![](ionic.png)\n\n#### Unit Testing\n\n- [Ionic 2 Unit Testing](http://lathonez.github.io/2017/ionic-2-unit-testing/) ![](ionic.png)\n- [How to Unit Test an Ionic 2 Application](http://www.joshmorony.com/how-to-unit-test-an-ionic-2-application/) ![](ionic.png)\n- [Test Driven Development in Ionic 2: An Introduction to TDD](https://www.joshmorony.com/test-driven-development-in-ionic-2-an-introduction-to-tdd/) ![](ionic.png)\n\n# Tools\n\n- [Ionic2-vscode](https://marketplace.visualstudio.com/items?itemName=jgw9617.ionic2-vscode) ![](ionic.png)\n- [Vim-ionic2](https://github.com/akz92/vim-ionic2) ![](ionic.png)\n- [Ionic 4 Snippets](https://marketplace.visualstudio.com/items?itemName=fivethree.vscode-ionic-snippets) ![](ionic.png)\n\n# Components\n\nMerged from [here](https://github.com/fishme/awesome-ionic2-components).\n\n### Animations\n\n- [Lottie Animation](https://github.com/chenqingspring/ng-lottie) ![](angular.png)\n- [Lottie Animation](https://github.com/fivethree-team/lottie) ![](angular.png)\n\n### UI Library\n\n- [Ionic 4 UI Component Library](https://github.com/fivethree-team/ionic-4-components) ![](ionic.png)\n\n### Menu, Tabs\n\n- [Scrollabel Tabs](https://github.com/SinoThomas/Ionic2-ScrollableTabs) ![](ionic.png)\n- [Circular Tabs](https://github.com/SinoThomas/Ionic2-CircularTabs) ![](ionic.png)\n- [Fab Toolbar](https://github.com/ekhmoi/fab-toolbar) ![](ionic.png)\n- [Multi Level Sidemenu](https://github.com/sebaferreras/Ionic2-MultiLevelSideMenu) ![](ionic.png)\n- [Popover Sidemenu](https://github.com/philipbrack/ionic2-menu-alternative-popover) ![](ionic.png)\n- [Drop down Title](https://github.com/Mohd-PH/ionic-drop-down-title) ![](ionic.png)\n\n### Form / Input\n\n- [Autocomplete](https://github.com/kadoshms/ionic2-autocomplete) ![](ionic.png)\n- [Form Generator based on JSON](https://github.com/makinacorpus/angular2-schema-form) ![](angular.png)\n- [Dynamic Forms](https://github.com/udos86/ng2-dynamic-forms/) ![](angular.png)\n- [Form Builder](https://github.com/rohitg7/ionic2-form-builder) ![](ionic.png)\n- [Sidemenu tabs](https://github.com/seanmavley/ionic2-sidemenu-tabs) ![](ionic.png)\n\n### Unsorted links\n* https://blog.nraboy.com/2015/01/upload-files-remote-server-using-ionic-framework/\n* http://coenraets.org/blog/2014/10/ionic-tutorial-and-sample-application/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falxwndr%2Fionic-framework-resources","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falxwndr%2Fionic-framework-resources","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falxwndr%2Fionic-framework-resources/lists"}