{"id":132,"date":"2014-08-18T13:00:00","date_gmt":"2014-08-18T13:00:00","guid":{"rendered":"http:\/\/localhost\/?p=132"},"modified":"2017-01-09T06:57:45","modified_gmt":"2017-01-09T06:57:45","slug":"ionic-vagrant-android","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/ionic-vagrant-android","title":{"rendered":"Faster Hybrid Dev with Ionic Box"},"content":{"rendered":"<p>We know that one of the biggest pain points in hybrid development with Ionic, Cordova, and Android is just getting everything installed and configured on your machine. It hurts us to watch new developers fumble with the dependencies required for doing mobile development.<\/p>\n<p>It&#8217;s especially bad for Windows users that often have very diverse installations and inconsistent access to a Unix-style command line where tools like Node.js (used by Ionic and Cordova) thrive.<\/p>\n<p>So today we are relieved to announce we&#8217;ve created a solution to the nightmare that is dependency installation: <a href=\"http:\/\/github.com\/driftyco\/ionic-box\">Ionic Box<\/a>, an all-in-one project for setting up hybrid development environments more quickly and easily.<\/p>\n<p><!--more--><\/p>\n<p>The first version of Ionic Box uses Vagrant to set up a virtual machine for you to develop through. If you aren&#8217;t familiar with <a href=\"https:\/\/www.vagrantup.com\/\">Vagrant<\/a>, it&#8217;s a tool to create reusable development environments through the use of virtual machines, most commonly through <a href=\"https:\/\/www.virtualbox.org\">VirtualBox<\/a>. That means you can configure a Virtual Machine complete with all the tools you need to start building hybrid or native-only apps with Android and Cordova.<\/p>\n<p>To use this project, download the <a href=\"https:\/\/github.com\/driftyco\/ionic-box\">most recent release<\/a> of the code, unzip it, and then open up your command prompt or terminal and <code>cd<\/code> into the extracted folder.<\/p>\n<p>Assuming you have Vagrant and VirtualBox installed, all you need to do us run <code>vagrant up<\/code> and the machine will download and configure itself. It takes a bit of time at first, but it&#8217;s all automated and only needs to be done once.<\/p>\n<p>Once the image is built and running, you can run <code>vagrant ssh<\/code> to connect to the image where you have a full development environment ready to go, including support for testing on a USB connected Android device! Configure shared directories to share code from your host computer to the vagrant guest, and it&#8217;ll feel just like home.<\/p>\n<p>So give this project a try, and let us know what you think! This is the first release and we will be evolving this over time as we learn how people use it in the wild.<\/p>\n<p><a href=\"https:\/\/github.com\/driftyco\/ionic-box\">Ionic Box<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We know that one of the biggest pain points in hybrid development with Ionic, Cordova, and Android is just getting everything installed and configured on your machine. It hurts us to watch new developers fumble with the dependencies required for doing mobile development. It&#8217;s especially bad for Windows users that often have very diverse installations [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":1640,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"","publish_post_category":"","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[3],"class_list":["post-132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","tag-ionic"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Faster Hybrid Dev with Ionic Box - Ionic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ionic.io\/blog\/ionic-vagrant-android\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Faster Hybrid Dev with Ionic Box\" \/>\n<meta property=\"og:description\" content=\"We know that one of the biggest pain points in hybrid development with Ionic, Cordova, and Android is just getting everything installed and configured on your machine. It hurts us to watch new developers fumble with the dependencies required for doing mobile development. It&#8217;s especially bad for Windows users that often have very diverse installations [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/ionic-vagrant-android\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-18T13:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-01-09T06:57:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"483\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Max Lynch\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@maxlynch\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Max Lynch\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android\"},\"author\":{\"name\":\"Max Lynch\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e\"},\"headline\":\"Faster Hybrid Dev with Ionic Box\",\"datePublished\":\"2014-08-18T13:00:00+00:00\",\"dateModified\":\"2017-01-09T06:57:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android\"},\"wordCount\":350,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png\",\"keywords\":[\"Ionic\"],\"articleSection\":[\"All\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/ionic-vagrant-android#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android\",\"url\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android\",\"name\":\"Faster Hybrid Dev with Ionic Box - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png\",\"datePublished\":\"2014-08-18T13:00:00+00:00\",\"dateModified\":\"2017-01-09T06:57:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/ionic-vagrant-android\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png\",\"width\":1400,\"height\":483},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/ionic-vagrant-android#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Faster Hybrid Dev with Ionic Box\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ionic.io\/blog\/#website\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"name\":\"ionic.io\/blog\",\"description\":\"Build amazing native and progressive web apps with the web\",\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ionic.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ionic.io\/blog\/#organization\",\"name\":\"Ionic\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"width\":1920,\"height\":854,\"caption\":\"Ionic\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ionicframework\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e\",\"name\":\"Max Lynch\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg\",\"caption\":\"Max Lynch\"},\"description\":\"CEO\",\"sameAs\":[\"http:\/\/twitter.com\/maxlynch\",\"https:\/\/x.com\/maxlynch\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/max\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Faster Hybrid Dev with Ionic Box - Ionic Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ionic.io\/blog\/ionic-vagrant-android","og_locale":"en_US","og_type":"article","og_title":"Faster Hybrid Dev with Ionic Box","og_description":"We know that one of the biggest pain points in hybrid development with Ionic, Cordova, and Android is just getting everything installed and configured on your machine. It hurts us to watch new developers fumble with the dependencies required for doing mobile development. It&#8217;s especially bad for Windows users that often have very diverse installations [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/ionic-vagrant-android","og_site_name":"Ionic Blog","article_published_time":"2014-08-18T13:00:00+00:00","article_modified_time":"2017-01-09T06:57:45+00:00","og_image":[{"width":1400,"height":483,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png","type":"image\/png"}],"author":"Max Lynch","twitter_card":"summary_large_image","twitter_creator":"@maxlynch","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Max Lynch","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android"},"author":{"name":"Max Lynch","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e"},"headline":"Faster Hybrid Dev with Ionic Box","datePublished":"2014-08-18T13:00:00+00:00","dateModified":"2017-01-09T06:57:45+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android"},"wordCount":350,"commentCount":5,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png","keywords":["Ionic"],"articleSection":["All"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/ionic-vagrant-android#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android","url":"https:\/\/ionic.io\/blog\/ionic-vagrant-android","name":"Faster Hybrid Dev with Ionic Box - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png","datePublished":"2014-08-18T13:00:00+00:00","dateModified":"2017-01-09T06:57:45+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/ionic-vagrant-android"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png","width":1400,"height":483},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/ionic-vagrant-android#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Faster Hybrid Dev with Ionic Box"}]},{"@type":"WebSite","@id":"https:\/\/ionic.io\/blog\/#website","url":"https:\/\/ionic.io\/blog\/","name":"ionic.io\/blog","description":"Build amazing native and progressive web apps with the web","publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ionic.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ionic.io\/blog\/#organization","name":"Ionic","url":"https:\/\/ionic.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","width":1920,"height":854,"caption":"Ionic"},"image":{"@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ionicframework"]},{"@type":"Person","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e","name":"Max Lynch","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg","caption":"Max Lynch"},"description":"CEO","sameAs":["http:\/\/twitter.com\/maxlynch","https:\/\/x.com\/maxlynch"],"url":"https:\/\/ionic.io\/blog\/author\/max"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2014\/08\/ionicbox-header.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=132"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/132\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/1640"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}