{"id":4672,"date":"2015-05-18T16:15:34","date_gmt":"2015-05-18T13:15:34","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=4672"},"modified":"2015-05-11T11:33:53","modified_gmt":"2015-05-11T08:33:53","slug":"ionic-framework-mobile-hybrid-application-development","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/","title":{"rendered":"Ionic Framework \u2013 Mobile Hybrid Application Development"},"content":{"rendered":"<p>When I was developing our wedding application back in February, I was also trying to learn the ropes in AngularJS. It didn\u2019t make sense for me to go with JQuery Mobile since, well I am learning angularjs. So I think through my options and ask, \u201cJquery mobile is essentially built in a javascript framework, is there an angularjs alternative?\u201d.<\/p>\n<p>Luckily for me, I had an interesting discussion with a friend of mine who is happen to be researching new mobile development frameworks. He mentioned ionicframework and that it\u2019s based in angularjs, cordova and he is excited to use it.<\/p>\n<p>I was curious and quickly google it. Lo and behold, it is what it is. It\u2019s a mobile hybrid development framework based on angularjs with tons of built in directives. To make it matters more interesting, it also has it\u2019s own ui style framework so that every component you used can inherit the mobile systems native ui. Its something new to me and I\u2019m already thinking all the possibilities that I can do with it.<\/p>\n<p>For this post, I\u2019ll be giving a few basics of using\u00a0ionicframework.<\/p>\n<ol>\n<li>Setting up your local ionic framework environment<\/li>\n<li>Brackets or Sublime Text editor<\/li>\n<li>Some digging in the code<\/li>\n<li>Build and Test<\/li>\n<li>Our Wedding App!<\/li>\n<\/ol>\n<h2>Step 1: Setting up your local ionic framework environment.<\/h2>\n<p>I\u2019m a command line guy, let me emphasis that and I don\u2019t see any reason why you wouldn\u2019t consider that. Using the actual cli commands will give you more control over anything you do to your application.<\/p>\n<h3>Download the node package manager and install ionic framework cli<\/h3>\n<ul>\n<li>To download and install npm cli, click <a href=\"http:\/\/blog.npmjs.org\/post\/85484771375\/how-to-install-npm\" target=\"_blank\">here<\/a><\/li>\n<li>Now after the installation, go to your project folder (create one if you don\u2019t have it yet) and run the following command.<code>npm install -g cordova ionic<\/code>This will install the ionic framework cli.<\/li>\n<li>After the installation, you can now use the ionicframework cli to create, build and test projects. For more examples, go the ionic <a href=\"http:\/\/ionicframework.com\/getting-started\/\">site<\/a><\/li>\n<\/ul>\n<h2>Step 2: IDE. Brackets? Sublime? NotePad++?<\/h2>\n<p>I personally use Brackets most of the time as it\u2019s simple and easy to use. It\u2019s an Open source adobe projects and has a lot of plugins and extension available. It also compliments the adobe products such as adobe photoshop if you need to get the details of your slices and graphics within your code.<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-19-51-28.png\"><img decoding=\"async\" class=\"aligncenter wp-image-4678\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-19-51-28.png\" alt=\"screenshot-at-may-10-19-51-28\" width=\"860\" height=\"508\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-19-51-28.png 1000w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-19-51-28-300x177.png 300w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>I use a mint green themed IDE, autocompletion for css, javascript. And if you look at my screen, I use coffee app as well.<\/p>\n<h2>Step 3: Try out an example project<\/h2>\n<p>Go to your project directory. I\u2019m assuming you already have your ionic cli install so let\u2019s go step by step<\/p>\n<ol>\n<li>cd <i>dir<\/i><\/li>\n<li><code>ionic start myApp\u00a0tabs<\/code><\/li>\n<\/ol>\n<p>The steps above will create a scaffolding ionic project.<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-20-30-39.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-4679\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-20-30-39.png\" alt=\"screenshot-at-may-10-20-30-39\" width=\"581\" height=\"756\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-20-30-39.png 581w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-20-30-39-231x300.png 231w\" sizes=\"(max-width: 581px) 100vw, 581px\" \/><\/a><\/p>\n<h3>Open your source in your IDE<\/h3>\n<p>In my case, I am using brackets. I can launch it using Live Preview button<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-20-38-43.png\"><img decoding=\"async\" class=\"aligncenter wp-image-4680\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-20-38-43.png\" alt=\"screenshot-at-may-10-20-38-43\" width=\"860\" height=\"203\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-20-38-43.png 1000w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-20-38-43-300x71.png 300w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>The scaffolding app looks good. It has tabs, list, and basic page that you can use as your guideline.<\/p>\n<h2>Step 4: Let\u2019s dig in deeper<\/h2>\n<p>If you look at the scaffolding app, it already has the app.js along with the services and controller js source. Let\u2019s look in closer.<\/p>\n<h3>app.js<\/h3>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-07-19.png\"><img decoding=\"async\" class=\"aligncenter wp-image-4681\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-07-19.png\" alt=\"screenshot-at-may-10-21-07-19\" width=\"860\" height=\"452\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-07-19.png 1000w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-07-19-300x158.png 300w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<ul>\n<li>app.js \u2013 this is the global source code for angularjs framework. AngularJS will basically manipulate the DOM as soon as it receives the HTML object. It\u2019s usually being used to house the modules, routes and service definitions, although this can be in a separated source code but basically runs on the same DOM interpreter.<\/li>\n<li>Line 8: create the module name \u2018starter\u2019 importing the following modules:\n<ul>\n<li>ionic \u2013 this basically the ionic library module<\/li>\n<li>starter.controllers \u2013 the controllers we defined. The main module needs access to this<br \/>\nso that it can dictate the controller scope that it will be used for each route.<\/li>\n<li>starter.services \u2013 the services we defined. We need this so that we can access services<br \/>\nwithin the module.<\/li>\n<\/ul>\n<\/li>\n<li>Line 11 \u2013 22: This executed upon running the module, this basically means that the native mobile service needs to know that we are using the cordova keyboard plugin and status bar.<\/li>\n<li>Line 24: the .config is a module function that sets any configuration needed upon running the module. In this case, we use the stateProvider and urlRouterProvider module to route to different pages and views.<\/li>\n<\/ul>\n<h3>services.js<\/h3>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-19-58.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-4682\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-19-58.png\" alt=\"screenshot-at-may-10-21-19-58\" width=\"488\" height=\"438\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-19-58.png 488w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-19-58-300x269.png 300w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/a><\/p>\n<ul>\n<li>Line 1: Definition of the starter.service module.<\/li>\n<li>Line 6: Definition of factory Object <i>\u2018Friends\u2019<\/i> which we will used eventually in the controller.<\/li>\n<\/ul>\n<h3>controller.js<\/h3>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-20-34.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-4683\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-20-34.png\" alt=\"screenshot-at-may-10-21-20-34\" width=\"621\" height=\"261\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-20-34.png 621w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-20-34-300x126.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/screenshot-at-may-10-21-20-34-620x261.png 620w\" sizes=\"(max-width: 621px) 100vw, 621px\" \/><\/a><\/p>\n<ul>\n<li>Line 1: Definition of module starter.controllers \u2013 which we imported from app.js. We really don\u2019t need any new modules inside this so no imports necessary.<\/li>\n<li>Line 3 \u2013 16: Defined the controller. The controller is basically the main source that is directly bound to the ui. If you observe carefully, you can see that on the FriendsCtrl, we imported the \u2018Friends\u2019 factory from the starter.services module.<\/li>\n<\/ul>\n<p>The scaffolding is almost complete with the most basic UI controls. There are tons of examples in <a href=\"http:\/\/codepen.io\/ionic\/public-list\/\">CodePen<\/a> for this, from panel directives, sliders, to tinder cards. The key however is trying to consolidate them all to your needs. Most of the UI components available are made through directives which is the perfect way of creating components, not just in an angularjs web app, but also in ionic framework for mobile.<\/p>\n<h2>Step 5: Build and Test in your mobile<\/h2>\n<p>Ionic is based on cordova, so you can compile the source in any platform supported by this. Here are some of the code you need to build for android or ios platform.<\/p>\n<p><code>ionic platform add android<br \/>\nionic ionic build android<br \/>\nionic ionic emulate android --device<br \/>\n<\/code>This means that you will emulate on your device.<\/p>\n<h2>Extra: Our Wedding App.<\/h2>\n<p>I somehow use our wedding as an opportunity to practice, so here are some screenshots of the app.<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_11.png\"><img decoding=\"async\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_11.png\" alt=\"wedding_screenshot_1\" width=\"400\" height=\"711\" class=\"aligncenter size-full wp-image-4701\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_11.png 400w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_11-169x300.png 169w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_2.png\"><img decoding=\"async\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_2.png\" alt=\"wedding_screenshot_2\" width=\"400\" height=\"711\" class=\"aligncenter size-full wp-image-4702\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_2.png 400w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_2-169x300.png 169w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_3.png\"><img decoding=\"async\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_3.png\" alt=\"wedding_screenshot_3\" width=\"400\" height=\"711\" class=\"aligncenter size-full wp-image-4703\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_3.png 400w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_3-169x300.png 169w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_4.png\"><img decoding=\"async\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_4.png\" alt=\"wedding_screenshot_4\" width=\"400\" height=\"711\" class=\"aligncenter size-full wp-image-4704\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_4.png 400w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2015\/05\/wedding_screenshot_4-169x300.png 169w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>I did this in just a week after learning the ropes!<\/p>\n<p>Download the APK <a href=\"https:\/\/dl.dropboxusercontent.com\/u\/1737239\/eViteApp.apk\">here<\/a>.<\/p>\n<p>Enjoy!<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/alvinjayreyes.com\/2015\/05\/10\/ionic-framework-mobile-hybrid-application-development\/\">Ionic Framework \u2013 Mobile Hybrid Application Development<\/a> from our <a href=\"http:\/\/www.webcodegeeks.com\/wcg\/\">WCG partner<\/a> Alvin Reyes at the <a href=\"http:\/\/alvinjayreyes.com\/\">Alvin &#8220;Jay&#8221; Reyes Blog<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>When I was developing our wedding application back in February, I was also trying to learn the ropes in AngularJS. It didn\u2019t make sense for me to go with JQuery Mobile since, well I am learning angularjs. So I think through my options and ask, \u201cJquery mobile is essentially built in a javascript framework, is &hellip;<\/p>\n","protected":false},"author":13,"featured_media":920,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[187],"class_list":["post-4672","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-ionic"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ionic Framework \u2013 Mobile Hybrid Application Development - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"When I was developing our wedding application back in February, I was also trying to learn the ropes in AngularJS. It didn\u2019t make sense for me to go with\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ionic Framework \u2013 Mobile Hybrid Application Development - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"When I was developing our wedding application back in February, I was also trying to learn the ropes in AngularJS. It didn\u2019t make sense for me to go with\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2015-05-18T13:15:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alvin Reyes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alvin Reyes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/\"},\"author\":{\"name\":\"Alvin Reyes\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/f5f4e95cdb9a492c0f59921bdc76bb89\"},\"headline\":\"Ionic Framework \u2013 Mobile Hybrid Application Development\",\"datePublished\":\"2015-05-18T13:15:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/\"},\"wordCount\":987,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"keywords\":[\"Ionic\"],\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/\",\"name\":\"Ionic Framework \u2013 Mobile Hybrid Application Development - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"datePublished\":\"2015-05-18T13:15:34+00:00\",\"description\":\"When I was developing our wedding application back in February, I was also trying to learn the ropes in AngularJS. It didn\u2019t make sense for me to go with\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Ionic Framework \u2013 Mobile Hybrid Application Development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/f5f4e95cdb9a492c0f59921bdc76bb89\",\"name\":\"Alvin Reyes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/47d55211c650ea320b9932d0c3e848869fbdd0926c68b17382064c1d3ab0d512?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/47d55211c650ea320b9932d0c3e848869fbdd0926c68b17382064c1d3ab0d512?s=96&d=mm&r=g\",\"caption\":\"Alvin Reyes\"},\"sameAs\":[\"http:\/\/alvinjayreyes.com\/\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/alvin-reyes\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ionic Framework \u2013 Mobile Hybrid Application Development - Web Code Geeks - 2026","description":"When I was developing our wedding application back in February, I was also trying to learn the ropes in AngularJS. It didn\u2019t make sense for me to go with","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:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/","og_locale":"en_US","og_type":"article","og_title":"Ionic Framework \u2013 Mobile Hybrid Application Development - Web Code Geeks - 2026","og_description":"When I was developing our wedding application back in February, I was also trying to learn the ropes in AngularJS. It didn\u2019t make sense for me to go with","og_url":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2015-05-18T13:15:34+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","type":"image\/jpeg"}],"author":"Alvin Reyes","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Alvin Reyes","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/"},"author":{"name":"Alvin Reyes","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/f5f4e95cdb9a492c0f59921bdc76bb89"},"headline":"Ionic Framework \u2013 Mobile Hybrid Application Development","datePublished":"2015-05-18T13:15:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/"},"wordCount":987,"commentCount":1,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","keywords":["Ionic"],"articleSection":["JavaScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/","url":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/","name":"Ionic Framework \u2013 Mobile Hybrid Application Development - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","datePublished":"2015-05-18T13:15:34+00:00","description":"When I was developing our wedding application back in February, I was also trying to learn the ropes in AngularJS. It didn\u2019t make sense for me to go with","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/javascript\/ionic-framework-mobile-hybrid-application-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"JavaScript","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"Ionic Framework \u2013 Mobile Hybrid Application Development"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/f5f4e95cdb9a492c0f59921bdc76bb89","name":"Alvin Reyes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/47d55211c650ea320b9932d0c3e848869fbdd0926c68b17382064c1d3ab0d512?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/47d55211c650ea320b9932d0c3e848869fbdd0926c68b17382064c1d3ab0d512?s=96&d=mm&r=g","caption":"Alvin Reyes"},"sameAs":["http:\/\/alvinjayreyes.com\/"],"url":"https:\/\/www.webcodegeeks.com\/author\/alvin-reyes\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/4672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=4672"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/4672\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/920"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=4672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=4672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=4672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}