{"id":3376,"date":"2018-04-01T14:08:16","date_gmt":"2018-04-01T08:38:16","guid":{"rendered":"https:\/\/code4developers.com\/?p=3376"},"modified":"2018-04-17T21:10:25","modified_gmt":"2018-04-17T15:40:25","slug":"ionic-project-structure-installation","status":"publish","type":"post","link":"https:\/\/code4developers.com\/ionic-project-structure-installation\/","title":{"rendered":"Ionic Project Structure and Installation"},"content":{"rendered":"<p>Ionic is a framework for web developers to develop a mobile application. It is used to create an hybrid application which works as an native apps. Using Ionic we can build mobile, web, and desktop applications with one shared code. In this getting started with Ionic article we will talk about Ionic project structure and installation.<!--more--><\/p>\n<ol>\n<li>\n<h4 id=\"prerequisites\">Prerequisites<\/h4>\n<ul>\n<li>Download &amp; Install node from <a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener\">https:\/\/nodejs.org\/en\/<\/a><\/li>\n<li>Download &amp; Install XCode from\u00a0https:\/\/developer.apple.com\/xcode\/ and Android Studio from https:\/\/developer.android.com\/studio\/index.html<\/li>\n<li>Install Code Editor (like Visual Studio Code) from <a href=\"https:\/\/code.visualstudio.com\" target=\"_blank\" rel=\"noopener\">https:\/\/code.visualstudio.com<\/a><\/li>\n<li>You should be familiar with HTML, CSS, and JavaScript<\/li>\n<li>Familiarity with Ionic and Cordova will make it easier, but it&#8217;s not necessary<\/li>\n<\/ul>\n<\/li>\n<li>\n<h4 id=\"install-ionic\">Install Ionic<\/h4>\n<p>$ npm install -g ionic cordova<\/p>\n<p><strong>Note<\/strong>: The -g means this is a global install, so for Window\u2019s you will need to open an Admin command prompt. For Mac\/Linux, you\u2019ll need to run the command with <strong>sudo<\/strong>.<\/li>\n<li>\n<h4 id=\"create-a-new-ionic-2-app\">Create a new Ionic 2 App<\/h4>\n<p><strong>Syntax<\/strong> : $ ionic start <strong>[<\/strong>&lt;name&gt;] <strong>[<\/strong>&lt;template&gt;]\n<p><strong>Example<\/strong> : $ ionic start testDemo blank<\/p>\n<p>This will start a new app with the \u201cblank\u201d template.<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><strong>Input<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>name<\/td>\n<td>The name of your project directory<\/td>\n<\/tr>\n<tr>\n<td>template<\/td>\n<td>The starter template to use (e.g. blank, tabs; use &#8211;list to see all)<\/td>\n<\/tr>\n<tr>\n<td><strong>Option<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>&#8211;list, -l<\/td>\n<td>List starter templates available<\/td>\n<\/tr>\n<tr>\n<td>&#8211;type<\/td>\n<td>Type of project to start (e.g. ionic-angular, ionic1)<\/td>\n<\/tr>\n<tr>\n<td>&#8211;display-name, -n<\/td>\n<td>Human-readable name (use quotes around the name)<\/td>\n<\/tr>\n<tr>\n<td>&#8211;cordova<\/td>\n<td>Include Cordova integration<\/td>\n<\/tr>\n<tr>\n<td>&#8211;no-deps<\/td>\n<td>Do not install npm\/yarn dependencies<\/td>\n<\/tr>\n<tr>\n<td>&#8211;no-git<\/td>\n<td>Do not initialize a git repo<\/td>\n<\/tr>\n<tr>\n<td>&#8211;no-link<\/td>\n<td>Do not ask to connect the app with the Ionic Dashboard<\/td>\n<\/tr>\n<tr>\n<td>&#8211;pro-id<\/td>\n<td>Specify an app ID from the Ionic Dashboard to link<\/td>\n<\/tr>\n<tr>\n<td>&#8211;bundle-id<\/td>\n<td>Specify the bundle ID\/application ID for your app (reverse-DNS notation)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<h4 id=\"to-run-your-app-cd-into-the-directory-that-was-created-and-then-run-the-ionic-serve-command-to-test-your-app-right-in-the-browser\">To run your app, cd into the directory that was created and then run the ionic serve command to test your app right in the browser<\/h4>\n<p>$ cd testDemo$ ionic serve<\/li>\n<li>\n<h4 id=\"project-structure\">Project Structure<\/h4>\n<p>Let\u2019s walk through the anatomy of an Ionic app. Inside of the folder that was created, we have a typical Cordova project structure where we can install native plugins, and create platform-specific project files.<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><strong>File Path<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>.\/src\/<\/td>\n<td>Inside of the src directory we find our code. This is where most of the work for an Ionic app will take place. When we run ionic serve, our code inside of src\/ is transpiled into the correct Javascript version that the browser understands (currently, ES5). That means we can work at a higher level using TypeScript, but compile down to the older form of Javascript the browser needs.<\/p>\n<p>src\/app\/app.module.ts is the entry point for our app.<\/td>\n<\/tr>\n<tr>\n<td>.\/src\/index.html<\/td>\n<td>src\/index.html is the main entry point for the app, though its purpose is to set up script and CSS includes and bootstrap, or start running, our app. We won\u2019t spend much of our time in this file.<\/p>\n<p>For your app to function, Ionic looks for the &lt;ion-app&gt; tag in your HTML. In this example we have:<\/p>\n<p><strong>&lt;ion-app&gt;&lt;\/ion-app&gt;<\/strong><\/p>\n<p>And the following scripts near the bottom:<\/p>\n<p>&lt;!&#8211; Ionic&#8217;s root component and where the app will load &#8211;&gt;<\/p>\n<p><strong>&lt;ion-app&gt;&lt;\/ion-app&gt;<\/strong><\/p>\n<p>&lt;!&#8211; The polyfills js is generated during the build process &#8211;&gt;<\/p>\n<p><strong>&lt;script src=&#8221;build\/polyfills.js&#8221;&gt;&lt;\/script&gt;<\/strong><\/p>\n<p>&lt;!&#8211; The vendor js is generated during the build process<\/p>\n<p>It contains all of the dependencies in node_modules &#8211;&gt;<\/p>\n<p><strong>&lt;script src=&#8221;build\/vendor.js&#8221;&gt;&lt;\/script&gt;<\/strong><\/p>\n<p>&lt;!&#8211; The main bundle js is generated during the build process &#8211;&gt;<\/p>\n<p><strong>&lt;script src=&#8221;build\/main.js&#8221;&gt;&lt;\/script&gt;<\/strong><\/td>\n<\/tr>\n<tr>\n<td>src\/app\/app.html<\/td>\n<td>Here\u2019s the main template for the app. This template is an ion-nav component to act as the main content area<\/p>\n<p>&lt;ion-nav [root]=&#8221;rootPage&#8221;&gt;&lt;\/ion-nav&gt;<\/td>\n<\/tr>\n<tr>\n<td>src\/app<br \/>\n\/app.component.ts<\/td>\n<td>This is the first component that gets loaded in our app, and typically it\u2019s an empty shell for other components to be loaded into.<\/p>\n<p>Every app has a root module that essentially controls the rest of the application. This is very similar to ng-app from Ionic 1 and AngularJS. This is also where we bootstrap our app using ionicBootstrap.<\/p>\n<p>In this module, we\u2019re setting the root component to HomePage, in src\/app\/app.component.ts. This is the first component that gets loaded in our app, and typically it\u2019s an empty shell for other components to be loaded into. In app.component.ts, we\u2019re setting our template to src\/app\/app.html, so let\u2019s look in there.<\/td>\n<\/tr>\n<tr>\n<td>src\/app<\/p>\n<p>\/app.module.ts<\/td>\n<td>Every Angular app has at least one NgModule class, the root module, conventionally named AppModule.<\/p>\n<p>While the root module may be the only module in a small application, most apps have many more feature modules, each a cohesive block of code dedicated to an application domain, a workflow, or a closely related set of capabilities.<\/p>\n<p>An NgModule, whether a root or feature, is a class with an @NgModule decorator.<\/p>\n<p>NgModule is a decorator function that takes a single metadata object whose properties describe the module. The most important properties are:<\/p>\n<p><strong>declarations<\/strong> &#8211; the view classes that belong to this module. Angular has three kinds of view classes: components, directives, and pipes.<\/p>\n<p><strong>exports<\/strong> &#8211; the subset of declarations that should be visible and usable in the component templates of other modules.<\/p>\n<p><strong>imports<\/strong> &#8211; other modules whose exported classes are needed by component templates declared in this module.<\/p>\n<p><strong>providers<\/strong> &#8211; creators of services that this module contributes to the global collection of services; they become accessible in all parts of the app.<\/p>\n<p><strong>bootstrap<\/strong> &#8211; the main application view, called the root component, that hosts all other app views. Only the root module should set this bootstrap property.<\/td>\n<\/tr>\n<tr>\n<td>src\/app\/app.scss<\/td>\n<td>It is used to declare any styles that will be used globally throughout the application. Although it is the \u201cmain\u201d .scss file, you won\u2019t likely use it often \u2013 most of the styling will happen in the component specific .scss files.<\/td>\n<\/tr>\n<tr>\n<td>src\/app\/main.ts<\/td>\n<td>Launch an application by bootstrapping its root module. During development you&#8217;re likely to bootstrap the AppModule in a main.ts<\/td>\n<\/tr>\n<tr>\n<td>config.xml<\/td>\n<td>This configuration file is used by Cordova and includes settings which are relevant for building your application for the iOS and Android platform.<\/td>\n<\/tr>\n<tr>\n<td>package.json<\/td>\n<td>This file contains all dependencies (NPM packages) of our application. You can add new packages or update the version of packages already included. By executing the command npm install in the project directory the dependencies listed in package.json are downloaded and added to the project automatically.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"project-structure-2\">Project Structure<\/h3>\n<p>project\/<\/p>\n<p>\u251c\u2500 ionic.config.json <em># Ionic project config file<\/em><\/p>\n<p>\u251c\u2500 package.json<\/p>\n<p>\u251c\u2500 src\/<\/p>\n<p>\u2502\u00a0 \u251c\u2500 app\/<\/p>\n<p>\u2502\u00a0 \u2502\u00a0 \u251c\u2500 app.component.ts <em># root component for your app<\/em><\/p>\n<p>\u2502\u00a0 \u2502\u00a0 \u251c\u2500 app.html <em># app component template<\/em><\/p>\n<p>\u2502\u00a0 \u2502\u00a0 \u251c\u2500 app.module.ts <em># NgModule for app component<\/em><\/p>\n<p>\u2502\u00a0 \u2502\u00a0 \u251c\u2500 app.scss <em># global SCSS<\/em><\/p>\n<p>\u2502\u00a0 \u2502\u00a0 \u2514\u2500 main.ts <em># bootstrap file<\/em><\/p>\n<p>\u2502\u00a0 \u251c\u2500 assets\/ <em># put your images, etc. here<\/em><\/p>\n<p>\u2502\u00a0 \u251c\u2500 pages\/ <em># contains the page components for your app<\/em><\/p>\n<p>\u2502\u00a0 \u251c\u2500 theme\/<\/p>\n<p>\u2502 \u00a0\u2502\u00a0 \u2514\u2500 variables.scss <em># see https:\/\/ionicframework.com\/docs\/theming<\/em><\/p>\n<p>\u2502\u00a0 \u2514\u2500 index.html <em># main html file<\/em><\/p>\n<p>\u2514\u2500 www\/ <em># build output directory<\/em><\/li>\n<li>\n<h4 id=\"ionic-generate\">Ionic Generate<\/h4>\n<p><strong>Syntax<\/strong> : $ ionic generate <strong>[<\/strong>&lt;type&gt;] <strong>[<\/strong>&lt;name&gt;]\n<p><strong>Example<\/strong> : $ ionic generate component foo<\/p>\n<p><strong>Example<\/strong> : $ ionic generate page Login<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><strong>Input<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>type<\/td>\n<td>The type of generator (e.g. component, directive, page, pipe, provider, tabs)<\/td>\n<\/tr>\n<tr>\n<td>name<\/td>\n<td>The name of the component being generated<\/td>\n<\/tr>\n<tr>\n<td><strong>Option<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>&#8211;no-module<\/td>\n<td>Do not generate an NgModule for the component<\/td>\n<\/tr>\n<tr>\n<td>&#8211;constants<\/td>\n<td>Generate a page constant file for lazy-loaded pages<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<h4 id=\"ionic-info\">Ionic Info<\/h4>\n<p><strong>Syntax<\/strong> : $ ionic info<\/p>\n<p>Print system\/environment info<\/li>\n<li>\n<h4 id=\"ionic-serve\">Ionic Serve<\/h4>\n<p><strong>Syntax<\/strong> : $ ionic serve<\/p>\n<p>By default,\u00a0ionic serve\u00a0boots up a development server on all network interfaces and prints the external address(es) on which your app is being served. It also broadcasts your app to the Ionic DevApp on your network. To disable the DevApp and bind to\u00a0localhost, use\u00a0&#8211;local.<\/p>\n<p>Try the\u00a0&#8211;lab\u00a0option to see multiple platforms at once.<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><strong>Option<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>&#8211;consolelogs, -c<\/td>\n<td>Print app console logs to Ionic CLI<\/td>\n<\/tr>\n<tr>\n<td>&#8211;address<\/td>\n<td>Use specific address for the dev server<\/td>\n<\/tr>\n<tr>\n<td>&#8211;port, -p<\/td>\n<td>Use specific port for HTTP<\/td>\n<\/tr>\n<tr>\n<td>&#8211;livereload-port, -r<\/td>\n<td>Use specific port for live-reload<\/td>\n<\/tr>\n<tr>\n<td>&#8211;dev-logger-port<\/td>\n<td>Use specific port for dev server communication<\/td>\n<\/tr>\n<tr>\n<td>&#8211;no-devapp<\/td>\n<td>Do not publish DevApp service<\/td>\n<\/tr>\n<tr>\n<td>&#8211;no-open<\/td>\n<td>Do not open a browser window<\/td>\n<\/tr>\n<tr>\n<td>&#8211;local<\/td>\n<td>Disable external network usage<\/td>\n<\/tr>\n<tr>\n<td>&#8211;no-proxy<\/td>\n<td>Do not add proxies<\/td>\n<\/tr>\n<tr>\n<td>&#8211;browser, -w<\/td>\n<td>Specifies the browser to use (safari, firefox, google chrome)<\/td>\n<\/tr>\n<tr>\n<td>&#8211;browseroption, -o<\/td>\n<td>Specifies a path to open to (\/#\/tab\/dash)<\/td>\n<\/tr>\n<tr>\n<td>&#8211;lab, -l<\/td>\n<td>Test your apps on multiple platform types in the browser<\/td>\n<\/tr>\n<tr>\n<td>&#8211;platform, -t<\/td>\n<td>Start serve with a specific platform (android, ios)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<h4 id=\"ionic-build\">Ionic Build<\/h4>\n<p><strong>Syntax<\/strong> : $ ionic build<\/p>\n<p><strong>Syntax<\/strong> : $ ionic build &#8211;prod<\/p>\n<p>ionic build\u00a0will perform an Ionic build, which compiles web assets and prepares them for deployment. For Ionic\/Cordova apps, the CLI will run\u00a0cordova prepare, which copies the built web assets into the Cordova platforms that you\u2019ve installed. For full details, see\u00a0ionic cordova prepare &#8211;help.<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><strong>Option<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>&#8211;prod<\/td>\n<td>Build the application for production<\/td>\n<\/tr>\n<tr>\n<td>&#8211;aot<\/td>\n<td>Perform ahead-of-time compilation for this build<\/td>\n<\/tr>\n<tr>\n<td>&#8211;minifyjs<\/td>\n<td>Minify JS for this build<\/td>\n<\/tr>\n<tr>\n<td>&#8211;minifycss<\/td>\n<td>Minify CSS for this build<\/td>\n<\/tr>\n<tr>\n<td>&#8211;optimizejs<\/td>\n<td>Perform JS optimizations for this build<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<h4 id=\"config-xml\">Config.xml<\/h4>\n<p>Config.xml is a global configuration file that controls many aspects of a cordova application&#8217;s behaviour. This platform-agnostic XML file is arranged based on the W3C&#8217;s Packaged Web Apps (Widgets) specification, and extended to specify core Cordova API features, plugins, and platform-specific settings.<\/li>\n<li>\n<h4 id=\"rc-folder-structure\">RC Folder Structure<\/h4>\n<table border=\"1\">\n<tbody>\n<tr>\n<td><strong>Name<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>app<\/td>\n<td>All Ionic 2 apps will have a root component. This is not all that different to all the other components in your application, one obvious difference you will notice though is that it is in its own app folder, and is named app.component.ts.<\/p>\n<p>This folder will contain all SCSS files which contain styling on application level. If you take a look into that folder you\u2019ll find a core SCSS file as well as platform specific SCSS files. Another SCSS file is containing SCSS variables. It is used to declare any styles that will be used globally throughout the application. Although it is the \u201cmain\u201d .scss file, you won\u2019t likely use it often \u2013 most of the styling will happen in the component specific .scss files.<\/p>\n<p>It is used to declare any styles that will be used globally throughout the application. Although it is the \u201cmain\u201d .scss file, you won\u2019t likely use it often \u2013 most of the styling will happen in the component specific .scss files.<\/td>\n<\/tr>\n<tr>\n<td>assets<\/td>\n<td>The assets folder can be used to store any static files you want to include in your project like images, or JSON data files. Anything in this folder will be copied over to your build folder each time the application is built. i.e images, font, icons ,etc<\/td>\n<\/tr>\n<tr>\n<td>components<\/td>\n<td>Ionic apps are made of high-level building blocks called components. Components allow you to quickly construct an interface for your app. Ionic comes with a number of components, including modals, popups, and cards.<\/td>\n<\/tr>\n<tr>\n<td>pages<\/td>\n<td>This folder is containing all pages of your application. Within pagesyou\u2019ll again find subfolders. Each page is implemented as an Angular 2 component (you\u2019ll learn more about Angular 2 components later on). As each component implementation can consist of multiple files, the files belonging to one component are kept in folder of pages.<\/td>\n<\/tr>\n<tr>\n<td>theme<\/td>\n<td>variables.scss is used to modify the apps shared variables. Here you can edit the default values for things like the $colors map which sets up the default colours for the application, $list-background-color, $checkbox-ios-background-color-on and so on. For a list of all the variables that you can overwrite, take a look at this page<\/td>\n<\/tr>\n<tr>\n<td>pipes<\/td>\n<td>Pipes are super useful to have in your application \u2013 in general they are used to manipulate data before displaying it to the user (think date conversions, formatting and so on).<\/td>\n<\/tr>\n<tr>\n<td>providers<\/td>\n<td>Providers allow you to create a self-contained service that provides functionality to your application. The role of a provider might include things like fetching data from a server, performing operations on data, sharing data, providing a set of complicated mathematical operations, and so on.<\/p>\n<p>In general, we use providers to do the heavy lifting in our applications. By using a provider, we abstract the functionality it provides away from a specific component, which makes the codebase more maintainable and allows us to reuse that same provider in multiple different places in the application (or even in a completely different application).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>So, as you can see a page in Ionic is just an Angular component which itself a TypeScript class decorated with @Component decorator imported from @angular\/core.<\/p>\n<p>The component\/page gets the information about its view using the templateUrl which points to a path of an HTML page, in this case home.html which resides in the same folder.<\/p>\n<p>You use pages to build apps, an app is a collection of pages, in two ways: 1) By declaring and importing them when the app is starting and 2) By lazy loading them.<\/p>\n<p>Components are the basic constructs of Angular and since Ionic 2 and Ionic 3 are based respectively on Angular 2 and Angular 4, they are also the basic buildings of Ionic apps. In Ionic every page is a component.<\/p>\n<p>A component is an independent construct which encapsulates the controller code, the view and styles, and has inputs and outputs.<\/p>\n<p>An Ionic app is a bunch of components (an app component + page components) and providers organized together using Angular modules.<br \/>\nAn Ionic app is a bunch of components(an app component + page components ) and providers organized together using Angular modules.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/code4developers.com\/category\/angular\/\">Interested in Angular? Click here to read more Angular articles in Code4Developers<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ionic is a framework for web developers to develop a mobile application. It is used to create an hybrid application which works as an native apps. Using Ionic we can&hellip;<\/p>\n","protected":false},"author":33,"featured_media":3383,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[140],"tags":[29,141],"powerkit_post_featured":[],"class_list":{"0":"post-3376","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ionic","8":"tag-angular","9":"tag-ionic"},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/03\/Ionic-And-its-Tools-in-Brief-scaled.jpg?fit=2560%2C1654&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8NAi4-Ss","jetpack-related-posts":[{"id":3412,"url":"https:\/\/code4developers.com\/capacitor-new-native-bridge-web-apps\/","url_meta":{"origin":3376,"position":0},"title":"Capacitor &#8211; A New Native Bridge for Web Apps","author":"Arif Khoja","date":"April 7, 2018","format":false,"excerpt":"A short while ago, the Ionic team announced that they were working on a project called \u201cAvocado\u201d which later took on its official moniker of Capacitor. In this article, I want to introduce you to Capacitor and what it will do. I will get into the specifics soon (and we\u2026","rel":"","context":"In &quot;Ionic&quot;","block_context":{"text":"Ionic","link":"https:\/\/code4developers.com\/category\/ionic\/"},"img":{"alt_text":"Catch","src":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/04\/Screenshot-2018-02-07-12.11.05-300x26.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/04\/Screenshot-2018-02-07-12.11.05-300x26.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/04\/Screenshot-2018-02-07-12.11.05-300x26.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/04\/Screenshot-2018-02-07-12.11.05-300x26.png?resize=700%2C400 2x"},"classes":[]},{"id":3457,"url":"https:\/\/code4developers.com\/native-html5-games-with-phaser-and-capacitor\/","url_meta":{"origin":3376,"position":1},"title":"Native HTML5 Games with Phaser and Capacitor","author":"Arif Khoja","date":"April 17, 2018","format":false,"excerpt":"Building HTML5 games with Phaser has been somewhat of a hobby of mine over the past few years, and I will be writing a few tutorials about Phaser with a focus on developing HTML5 games for mobile. However, despite having created a few mostly finished games most of them never\u2026","rel":"","context":"In &quot;Phaser&quot;","block_context":{"text":"Phaser","link":"https:\/\/code4developers.com\/category\/phaser\/"},"img":{"alt_text":"phaser-starter-demo","src":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/04\/phaser-starter-demo-1-300x227.gif?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2658,"url":"https:\/\/code4developers.com\/angular-4-application-with-visual-studio\/","url_meta":{"origin":3376,"position":2},"title":"Angular 4 in Visual Studio","author":"Nisarg Dave","date":"June 22, 2017","format":false,"excerpt":"Introduction In this article, we will discuss about how to set up and start Angular 4 in visual studio. As many of developers have worked with Microsoft tools and technologies, they preferred visual studio as web development platform. Step 1: Install Node.js and npm The first step is to install\u2026","rel":"","context":"In &quot;Angular&quot;","block_context":{"text":"Angular","link":"https:\/\/code4developers.com\/category\/angular\/"},"img":{"alt_text":"VS15","src":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2017\/06\/1-2.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3886,"url":"https:\/\/code4developers.com\/getting-started-with-miscrosoft-visual-studio-code\/","url_meta":{"origin":3376,"position":3},"title":"Getting Started with Miscrosoft Visual Studio Code","author":"Pawan Ingale","date":"August 27, 2018","format":false,"excerpt":"The Visual Studio Code integrated development environment is a creative launching pad, that you can use to edit, debug, and build code, and then publish an app. VS Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, MacOS and Linux.\u2026","rel":"","context":"In &quot;Visual Studio&quot;","block_context":{"text":"Visual Studio","link":"https:\/\/code4developers.com\/category\/visual-studio\/"},"img":{"alt_text":"VS Code","src":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/08\/opengraph-blog-1.png?fit=1200%2C618&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/08\/opengraph-blog-1.png?fit=1200%2C618&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/08\/opengraph-blog-1.png?fit=1200%2C618&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/08\/opengraph-blog-1.png?fit=1200%2C618&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/08\/opengraph-blog-1.png?fit=1200%2C618&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2568,"url":"https:\/\/code4developers.com\/angularjs-application-end-to-end-testing-with-protractor-tool-part-1\/","url_meta":{"origin":3376,"position":4},"title":"AngularJS Application End to End Testing with Protractor Tool : Part 1","author":"Sneha Jaiswal","date":"June 8, 2017","format":false,"excerpt":"What is End to End Testing? End to End Testing is used to determine the performance of application as per requirement. For large and complex applications manual testing is not sufficient to verify the correctness of new features, catch bugs and notice regression. To resolve issue of integration between components\u2026","rel":"","context":"In &quot;AngularJs&quot;","block_context":{"text":"AngularJs","link":"https:\/\/code4developers.com\/category\/angularjs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3703,"url":"https:\/\/code4developers.com\/microsoft-announces-visual-studio-2019\/","url_meta":{"origin":3376,"position":5},"title":"Microsoft announces Visual Studio 2019","author":"Yatendrasinh Joddha","date":"June 7, 2018","format":false,"excerpt":"After acquisition of GitHub, Microsoft came up with one more announcement for the developer community, \"Visual Studio 2019\". Microsoft yesterday announced Visual Studio 2019, the next version of its awesome integrated development environment (IDE). With the announcement they have stated that the release plan\/dates will be share in coming months.\u2026","rel":"","context":"In &quot;News&quot;","block_context":{"text":"News","link":"https:\/\/code4developers.com\/category\/news\/"},"img":{"alt_text":"VisualStudio","src":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/06\/VisualStudio.png?fit=930%2C462&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/06\/VisualStudio.png?fit=930%2C462&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/06\/VisualStudio.png?fit=930%2C462&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/code4developers.com\/wp-content\/uploads\/2018\/06\/VisualStudio.png?fit=930%2C462&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/posts\/3376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/comments?post=3376"}],"version-history":[{"count":10,"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/posts\/3376\/revisions"}],"predecessor-version":[{"id":3395,"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/posts\/3376\/revisions\/3395"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/media\/3383"}],"wp:attachment":[{"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/media?parent=3376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/categories?post=3376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/tags?post=3376"},{"taxonomy":"powerkit_post_featured","embeddable":true,"href":"https:\/\/code4developers.com\/wp-json\/wp\/v2\/powerkit_post_featured?post=3376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}