 Okay, so first we wanted to talk about a few of the tool sets involved in making all this happen Of course everybody in here has probably at least one if not dozens or so of Drupal websites So we all know Drupal out of the box provides us with websites for our desktops and our laptops of course in the last five to seven years or so with the advent of Smartphones and stuff. We really have to concentrate on providing our websites for for other devices as well so of course, that's where our mobile websites come in with our responsive designs and With responsive designs can get a little tricky with all the the numerous amounts of devices out there especially from the Android perspective and all the The resolutions available in the the different break points where our our websites need to start responding to those those sizes and Reorganizing our content to make them more accessible from every device So then of course as well It's a it's a good idea to expose our our businesses and our products or our services as mobile apps as well because you know our our mobile phones have features that Not necessarily our desktop or laptops are going to have such as our camera geolocation push notifications and then of course the app stores which are growing tremendously in popularity and there are Millions and millions of people downloading apps all the time. So With some of these technologies now we can more easily expose our Drupal websites to the the mobile app world So I think in that Apple keynote yesterday, they said something the 75th billionth app was downloaded Or it might be the 750th billionth app. I know it's quite a margin forever there, but it was one or the other so If you're an e-commerce store it makes sense for you to have your application on one of these apps stores even Because there's just such a big market to tap into So before we get into how we build the mobile app using the technologies we've built We're just going to give you a quick overview of some of the technologies. We're using so Obviously Drupal's there and it's all the modules. We love so entities views rules And Drupal commerce leverages all of them in very interesting ways So we use rules for pricing and all sorts of stuff in between and for the purposes of making this demonstration And making it easier for you guys to build apps We've kind of built the commerce stuff on top of Drupal commerce kickstart Which if you quick show of hands if you've heard of kickstart install kickstart. Oh, this is so easy Best audience ever so kickstart don't need to tell you about it's a Drupal installation profile and everything's bundled in We've forked it and added some modules into it, which we rely on for Drupal gap so with Drupal gap if anybody's not familiar it's an open source mobile application development kit for Drupal websites and So essentially it utilizes a lot of the same concepts that we Drupal developers are familiar with so it's The learning curve is not very steep if you have experience developing Drupal modules and Drupal themes and such so So to actually build a mobile app We need we need a way to get the data from our Drupal website and that's where Drupal services comes into play and that is a a contrib module available for Drupal 7 which exposes You know our our nodes or our users our comments files taxonomy vocabularies in terms as JSON primarily, but there's other Formats that you can consume as well like XML if you need it So utilizing those those things we're able to to consume all of our our Drupal resources in in different environments and so the clues in the name so Drupal gap is Specifically at the moment built for phone gap and if you haven't heard of phone gap It's now owned by adobe. It's still open source So it has some big players behind it and there's some big big apps been built on it And I always when I was trying to work out how I wanted to build my app Didn't really want to start learning Objective C and then I didn't really want to start playing with Java and I thought well HTML and CSS or kind of know that so phone gap kind of lets me do mobile apps really easily and Again in the Apple Kino yesterday or yesterday. They've announced a new programming language called Swift And I don't want to learn that So yeah, I'll stick with PHP check stick with HTML check and CSS So that's why we kind of like phone gap And of course we all are very familiar with jQuery. It comes packaged right with Drupal So we've used that a lot for our front-end stuff and user interface stuff so the folks over at jQuery also came up with another awesome product and that is jQuery mobile and So that lets us take our simple HTML and apply just some some attributes to it And jQuery mobile will go ahead and take our simple HTML and convert it into You know nice big button size things for our thumbs and everything out of mobile devices so It takes a tremendous amount of the the work out of it for us and just lets us concentrate on just Focusing on building our our pages out and they take care of a lot of the the design for us So it's very familiar to iOS and Android users in the way that it styles a lot of the the buttons and elements for us Just a question. Yeah, sure. Do we do an odd shout out in the mic? Yeah, we will The presentation will answer all of those questions in about four slides worth of time Yeah, this can't you're in the right session And just one quick word on jQuery mobile is so some version 1.4 point one or two now, I think There's a lot of criticisms that it's not very performant for phone gap There's a lot of other frameworks you can build on but so 1.3 was not so good The performance at a 1.4 is kind of getting towards being as good as native So there is some drawbacks of using this kind of the frameworks, but generally 1.4 jQuery mobile is good Okay, so I'll kind of go over a lot of what Drupal gap does for us and a lot of the the work that it does for us to Simplify our lives So as I was saying earlier it utilizes a lot of concepts that us Drupal developers are already familiar with and The whole idea is instead of writing PHP to do all this. We're just going to be using JavaScript So out of the box when we're getting started as we're all familiar with our Drupal site We grab a copy of default settings PHP and rename it as settings that PHP So again in this environment, it's very very similar. We'll just grab a copy of our default settings JS rename it as Settings JS and the only thing we really need to do to get started is in that settings file Just give the URL to our Drupal website so So of course on our Drupal site, we have all kinds of different entities out of the box Drupal comes with nodes users comments taxonomy terms and vocabularies files Don't think I'm forgetting any there. So obviously we we want that stuff in our app We need to we need to display our knowns or comments or with of course the commerce module comes with all different types of entities and when it comes time to To sell stuff some stuff as in-app purchases. We need access to to all those entities So with with the services module it provides a a crud interface and that is a CR Ud and that stands for create retrieve update and delete so that provides us with a way to to create new content to retrieve existing content to update existing content and or delete existing content so once we start building out our our content types and fielding them or Utilizing commerce kickstart or Building our own custom products and product displays It comes time to to display all that stuff and of course everybody knows views and how awesome and powerful it is So we we definitely need a way to To utilize views and to consume some of our views in our app. So one of the dependencies of Drupal gap is the views data source module and what that allows us to do is When we're building our views we can then The the result sets that views normally spitting out as HTML for us It will spit out json for us so we can consume those and and work with those in a mobile app environment So that covers a lot of the core stuff that we need as as Drupal developers to to grab our entities to to work with them and then to utilize views to to display them and query them and Use our arguments to to filter them for whatever environment we're working with so then when When we first all started using Drupal, you know When we're when we're doing our site building stuff through point and click we can do a Tremendous amount of stuff just by pointing and clicking without ever having to write a line of code, but Eventually we almost always have to write a custom module to get in there and and customize some things to work with What we're trying to do with our project So again Drupal gap utilizes The same idea as Drupal where you can create custom modules for it So when you create a custom module in Drupal gap It also utilizes a lot of the the same hooks that Drupal uses So again instead of just writing PHP, we're going to be writing JavaScript to to take advantage of all this all these hooks for making our pages or Blocks menus etc. I'll touch on that in a moment But first we'll talk a little bit about the presentation layer that Drupal gap utilizes and again We're always we're always following the same concepts that Drupal uses here. So with Drupal gap We have the idea of themes. So we're separating our our display from our content so So if if need be we can totally redesign our mobile apps Just like we can our website and we don't have to worry about our content because that all it all lives separately And of course it lives in Drupal. So So once we once we have a theme assembled as we know as developers themes have regions and I mean a very basic mobile app Probably at minimum has a top region for your like your home button or your back button if you're on Android And maybe a title area and you have your a big region typically in the middle to display your content and maybe some forms to work with stuff like that and then a footer region maybe for some Info buttons or some help buttons and stuff like that So once we have our theme established, and we have our regions set up then as we know we can place blocks inside of these regions and Again, we can create Custom blocks in Drupal gap and it comes packaged with a lot of blocks that were or very familiar with Like the user login login block or some common blocks and stuff like that So and even the idea of like hook block info or hook block view all that stuff is is packaged in there It's for you to just utilize those exact same PHP techniques, but it's just in JavaScript to build blocks and To to put those in your regions in your themes and also the blocks utilize the same idea Visibility rules where you can say hey, I want this block to only show up on this page in the app Or I want this block to not be visible to anonymous users But I want it to be visible to authenticated users Drupal gap also Exposes your your Drupal user and it knows all about the the user's roles and the user ID name Email etc. So all that stuff is available to you in this JavaScript environment to to work with this Excuse me has needed and again following along with the following along with Drupal Drupal gap has menus and So, you know as you're building your app Obviously, we need a way for our users to to navigate around or to have menus displayed on certain pages or Show up for certain people or not for other people and we can define our menu links and place them in our regions and That helps in really simplifying just managing Across your app across all these multiple pages instead of You know when we first started building websites before all of us heard about Drupal We were probably sitting there typing static HTML pages and there's got to be there's got to be a better way to do this So It kind of goes back to when I first started building mobile apps I was doing that static HTML stuff and I was thinking man This reminds me a lot of when I started building websites and there there's got to be a better way So I took a took a little time to see if there was anything out there This is about two and a half years ago now and there there didn't seem to be anything and then that's where I got the idea that hey You know I should take a lot of the the concepts that we're familiar with in Drupal And let's see if we can we can expose that in this phone gap and jQuery mobile environment to to aid in simplifying the development of mobile apps And of course especially when we are Building any type of app almost always there's going to be some type of user input involved So Drupal gap comes with a forms API as well And again, it follows along pretty strictly with the the Drupal forms API in that it's easy to Create, you know your typical input elements like hidden inputs select lists Let's see what else we got text fields radio buttons checkboxes submit buttons And as you're declaring your forms you can attach a custom validation handlers to your forms if you need or Well, every form typically has a submit handler. So again You declare your submit handler and it Drupal gap automatically Assembles your form state values and passes them along so you can you can work with those form state values and do Whatever you need with those there So that's kind of a general overview of what Drupal gap does and the the concepts that it follows along with Drupal So since since we can build modules with Drupal gap That's where Scott was actually one of the early adopters of Drupal gap And we've been working working a lot together on improving Drupal gap core So we and when we found out or when I found out that he worked with the commerce guys I thought well, hey, you know, we should try to see if we can put something together for Drupal commerce So Scott and I worked on assembling the commerce module for Drupal gap to make This whole in-app purchases as painless as possible So we kind of missed a bit was gonna talk about how apps are awesome and Steve Jobs resting place He was he loved talking about apps like the way he was so infused about all these apps and these applications that you can have in the App Store and We we're gonna try and show you now how you can get to these awesome apps with little to no code So we went over the kit list earlier, so If you're gonna follow this kind of recipe It's Drupal 7 and you can kind of skip that one because it's all packaged into commerce kickstart And what we've done with kickstart is we've forked it and we've made a it's commerce Drupal gap kickstart And we have All of the links for these at the end of the says presentation and we will share the slides with you So don't worry about taking notes on that bit And then obviously Drupal gap we need And there's a way to install it which Tyler will talk about now Yep, so we're all familiar with installing Drupal it's pretty pretty straightforward, but if you've never set up a mobile app Environment before it can be a little intimidating your first time So luckily there are some some great tools out there for example The the folks over at PhoneGap have developed a plug-in for the Google Chrome web browser And it's called Ripple and that essentially is a mobile app simulator right inside of Google Chrome's browser So that that's a great tool for us web developers because immediately that means we can we can use the HTML inspector to look around at our HTML elements and our CSS style and make sure stuff is working properly And of course we all know and Chrome's development tools also has our our network monitor so we can see When we're doing service calls off to Drupal to make sure that those are working properly and we're getting the proper responses What else they would say and of course the JavaScript Console log, which is very very helpful for debugging and we can use breakpoints and iterate over stuff and and keep an eye on Things as they're being assembled and pushed around and passed around So that is by far the easiest way to get started with app development is to use Ripple and Google Chrome But eventually before deploying your app you're going to want to to install it on you know I'm sure every single person in here has a smartphone. So at some point you're going to want to install it on your your own device So if you're on iOS there you'll be most likely using Xcode to Assemble your app and compile it down and install it onto your device if you are on Android You'll be using Eclipse and likewise You'll use that to to compile it and install it on your device This is all very well documented on Drupal Gap org. So I won't go into too much detail on that but When it comes time to to install your app and get ready for deployment to the stores You're definitely going to want to install it on your device and make sure you have a good understanding of your end users perspective and the the final part of kind of the recipe piece is the payment gateway and There's some restrictions around how you can use Apple's in-app purchase to unlock different features inside an application or sell digital products and Again with Google's payment gateway. I forget what it's called With Google's payment gateway for their digital products It's you're restricted to only selling digital products. You're not allowed to you can't Charge your your iTunes account for t-shirts for hoodies or any kind of physical product And obviously commerce kickstart is geared up to get you installed quickly with a store that will sell physical products So in our demonstration, we've plugged in a payment gateway that I wrote the phone gap integration for for stripe It's really easy to get started and the reason we've used stripe as opposed to kind of PayPal is because it was really easy to tokenize card details client side and one of the problems generally with communicating card details around is around PCI compliance and With stripe it tokenizes the card details in the JS layer You can communicate that up to Drupal to your server and then process the payment and then have the callback come back to your app Which works quite nicely demo time Anyone seen self-parking self-park fans only got like one or two laughs. I'm presuming that joke went British humor doesn't really work in the state. So that thing the resolution is not high enough. I don't think Does that kind of clear? I can only kind of half see the screen from this angle. Can you see the? Pardon command F That's just fine I'll ignore my colleagues. They're trying to shift F11 That's not crime has a presentation. Oh Wow, you learned something new Okay session over see you later. Okay, so I'm Here is we're using ripple to demonstrate and I will flick over to Xcode at some point and show you it in the iPhone simulator so you can show I'm not just making this up isn't just a sign of Haven't just put styling on this to make it look like an app. It is an actual application. So I'm a hand over to Yeah, so this is kind of out of the box Drupal gap with just you know a welcome to Drupal gap screen that we just we just left There for demonstration purposes and you can see across the top there. We have if you're familiar with commerce kickstart some of the menu buttons in there are they give you a way to Browse things that you can carry things you can Drink out of things you can wear in geek out with so we wanted to to mimic some of that stuff there Well, that's got how do you exit presentation mode? shift command There we go. Thank you So if you're familiar with kickstart it comes pre-packaged with these kind of different categories or different taxonomies of Items and what we've done with Drupal gap is have it read those items and display them in the app So here we have to carry to drink gear and to wear and you can see they kind of map So as you navigate through the buttons here, it's automatically pulling in your your product listings and Displaying them for you. So as we go across the different categories We can kind of quickly see some of the products that are available for browsing in for purchasing And please pardon our small resolution here as things get a little stacked up, but you can see we got it Shows the the picture of the products and the title and the pricing Drupal gap has built in paging support for views. You can page across Big sets of data the only one that has that is the the to wear section But then if you find, you know from your customer's perspective if they find something They like they'll they'll click on it and and check it out So then if you're familiar in Drupal with Display modes on your your content types Drupal gap listens to all of that and provides its own custom display mode so in your Drupal settings here you can You can change the the ordering of your fields and Control whether or not you want your labels to show up and how and how certain things are displayed and your app will Dynamically respond to that so if you if you're changing stuff on your Drupal website, and you already have an app displayed it deployed In the store, you're not going to need to recompile it because it's it's constantly listening to to what your Drupal site has set up so Yep across the managed display, and then we have a Drupal gap display mode very similar to your full content or teaser where you can Order your fields control your labels and control the format of each field And what the application will do is obviously listen and adhere to whatever settings you've got in there So you can kind of give some power back to the merchants or the store owners or the admins or your client Or whatever and give them some functionality around how they can manage a display in their content One of the things that the app store places restrictions on this obviously you can't keep Packaging up your app and then redeploy re submitting it to the app store waiting two weeks Just to make minor tweaks and the whole point of using your Drupal site as the back end. It means you can update things Without having to release a new version of your app So it's quite powerful you can add new products and not have to rely on Waiting two weeks for the app to be approved in the app stores So when we when we built the commerce module for Drupal gap We we wanted to definitely take advantage of the Drupal gap forms API when it comes time to to display the the options that the customers are going to be choosing from so the Commerce module for Drupal gap understands the the different products that you've set up in your store and If everybody is hopefully is tried commerce at least once You you're essentially creating For example, if we have a product we got here Come on shift app So you can see down here in our product variation section if you're purchasing a hoodie We have on the back end. We have it set up So, you know, we have a gray color or a pink color and then small medium or large as our size options The commerce module inside a Drupal gap utilizes the the forms API and listens to your your Drupal Website settings and then automatically builds the forms for people and then once somebody finds out what they want And they've picked their options. They can go ahead and add it to their cart So one of the things I wanted when I first joined commerce guys was the commerce guys pink hoodie And I was a horribly disappointed when we find out that the kickstart products aren't actually for sale, but you know So So, yeah, so I'm gonna order my large pink hoodie in large and yeah, so I can add that to my cart and Here we have the cup So Scott, I'll show you now that now that we've actually added it to the cart in our app Back on the website. It's the website responds to this and immediately from the order administration perspective we can see that someone has Started a shopping cart and they've added some items to it So it's in, you know, totally dynamic in real time. So it it's It's listening to what what users of your app are doing and you can kind of keep an eye on stuff as as users progress So and one of the things that we've done which is quite nice is Because we've built on Drupal gap. It has all the user login stuff and the session Services built in so if a user is shopping in your in your native app and says, okay I like this. I want to add it to my cart And then they're in a train and they go through a tunnel and their app kicks out and then they get off The train and go home and they flip back open the app It's still gonna be in their cart so that it persists the data and if they then log on to the website they can It would still be in a car because they're not if they logged in you still have the the auditor there So as we see a sweatshirt one pink large coming to me and I can obviously change quantities I can remove stuff from my car and that will update on the Drupal site because we're doing a service call So I've removed that one item if I flick back to here refresh it's removed so It's all pretty quick. Obviously I'm working locally. So it's very very quick But still the service calls. It's just JSON data. So there's no real there's not really much of a lack there so as Somebody's going through and they finally find something that they want to purchase they can go ahead and start with the Checkout procedure that everybody's very familiar with so again. We utilize the the forms API to provide the the checkout information that Needs to be collected to actually to make this happen So typically we start with the billing information where you can collect the name of the the person who's buying it the country where they reside in our address here in Austin and We all know that Austin has the 90210 zip code there and And very familiar with most checkout procedures You know, you don't want to make your customer enter stuff more than twice So we've got the the same feature that commerce implements so if you If you're shipping information is the same as billing can go ahead and use the checkbox if not oops Then they can go ahead and enter that stuff if need be but in this case We will ship it to the same place. We are billing it and We can continue onward in our checkout procedure and then typically next up somebody would select How soon they want it and we want we want our pink hoodie as quick as possible. So we'll go with the express shipping one day And we'll go ahead and continue onward in our checkout process and At this point we go ahead and give someone a review of the order they can see that You've they've selected express shipping one day for 15 bucks. The pink hoodie is 46 We got a little order total and then Account informational review and again Drupal gap Understands your Drupal user and has access to their username in this instance where we're an admin we have Scott's address attached And somehow Scott convinced me to to purchase this for him So I'll get billed for it, but little does he know I'll actually get the pink hoodie at my place So I'll keep it for myself and then at the very end We'll continue onward after we are Certain our order looks good. We'll continue on to the next step So as I said before we've Integrated the stripe payment gateway and one of the things we built into this sort of commerce mobile development kit is The ability to write your own payment gateway plug-in. So if your payment Gary does support tokenization locally you can substitute the commerce stripe module inside Drupal gap for your own and It uses smart menu paths to work out your order ID and you can sort of just Disable and enable other modules So you're not limited to stripe if you wanted to kind of use this technology, but it's a good place to start Test card details for stripe. I think are this Yeah, let's give it a go So when I submit the payment what it's doing is tokenizing the card details in the JavaScript layer Sending them up to Drupal via a service the commerce stripe Module at Drupal then processes the payment with stripe will send a callback to me saying that's either been approved or not approved In this case, I'm in test mode. So it's always going to be approved If I wasn't in test mode, I have no money because I've spent it all to come here Then it would get disapproved. So thankfully I'm in test mode so I can submit this and my checkouts complete So that means that I should now have a complete order in side here so orders Yeah, so that's that orders now pending and I'm gonna load up my email. Yeah 1739 I've got my order Confirmation from kicks up. So all good stuff. So as I said, I'm just gonna quickly show you this running in Xcode so in I mean Xcode now and I mean the iPhone simulator and if I exit the app Now I don't want to load up scope My screen is not big enough They exit the app. I can see it's installed here and I can go back to it And I get all of the nice goodness that you get from an iPhone. I can log out Again, etc. I'm just going to quickly flick back to my slideshow Okay, so hopefully the demo gods were kind and I'm happy We didn't really theme the app the commerce app there Because there's going to be very few instances where a brand or a commerce site would want to just have a generic theme So we kind of left it as bare bones as possible and with dribble gap You do have its own theme layer. So you're free to sort of theme your apps how you want them There is more awesomeness in the future and we are going to progress on to Drupal 8 So as Dries talked about briefly today and last year in Portland the whole web surface web services Core context initiative whiskey is all going to be built into Drupal core. So that means We're gonna have very easy access to to everything in Drupal as JSON or XML or whatever we need But most often times with mobile apps here will be using Using JSON. So as we move forward, you know Drupal gap We plan to continue to support more and more contributed modules for example right now Drupal gap has a Few dozen I think contributed modules like we support the the link module entity reference address field Geo field Let's see. What else do we got remember Push notifications so you can turn your Drupal site into a native push notification server And obviously get all the benefits from being able to constantly ping your customers saying buy this buy this now Yeah, we also support like a five-star in read Pretty much we try to concentrate on some of the more popular contributed modules to support first and then of course It's all open source. So if anybody comes across a field or a module that isn't supported Very much encourage You know give us a shout out. Maybe we can implement it for you or take a crack at it and go for it yourself Since the kind of audience competition is mostly developers I thought probably worthwhile just showing you kind of the quick kind of setup code There's documentation on most of it, but um Tyler mentioned earlier the settings JS file. So it's kind of very similar in its idea when you just set your core kind of value so The Drupal settings site path is the path it's looking for to access all your Drupal services The rest is self-explanatory. I won't bore you would go and over them all but it's just kind of core settings You can set your what your front page is going to be and all that kind of stuff So inside of our base directory here We have the app folder, which is very similar to our sites all folder in Drupal So we have a place to to hold on to our settings and then place our Contributed modules or our custom modules to handle to handle our site It comes with one core theme. I couldn't think of a better name So it's used easy street 3 but if you wanted to place Custom themes you could go ahead and create a themes directory in your app folder and DrupalGaP.org has all the documentation for creating Custom themes and I'd also like to point out that the jQuery mobile crew also made a a theme roller Which makes it very easy for people like myself who I have no graphic talent whatsoever So I utilize that tool a lot to to style my apps and to color them appropriately But Scott here he's got some artistic skills So he'll get in there and get dirty with some CSS and make things look really pretty so just as a kind of to Something tangible there is and I'm just shameless plug But I have an app in the app store that was in the top 50 for sports in the UK At one point not anymore But it basically uses the commerce code and architecture and it's built on DrupalGaP. So this stuff does work And then we just wanted to provide a list of resources for all this stuff here Everything's open source a lot of the projects. They're also on github all the Drupal modules of course on DrupalDrupal.org So the first one there is the commerce DrupalGaP kickstart installation profile that we put together that essentially just packages up commerce kickstart and DrupalGaP and the stripe stuff all into an install profile for you So if you want to have a quick demo to set up and try out that's that's a good way to go there's a link to the DrupalGaP project page there and commerceguys.com has plenty of documentation and DrupalGaP.org has all kinds of documentation on how to utilize DrupalGaP to to do Pretty much anything that it has features for there. There's documentation there Of course phonegap.com to get access to their APIs and the different features that they offer for your devices jQuerymobile.com for all your jQuery mobile needs and If you want to the presentation slides at all we have it on our Austin node there node 2028 Questions questions. No answers. So just ask questions. I don't know if there's any answer Yeah, that mic's a hot mic. So if we can Does someone want to just Stand and ask all the questions and be really nice or do you want to get up and down? Or if you just shout out I can repeat into the mic. Okay Well, I can say the first question here. I've got a sort of a two-part question. The first thing is looking at what you've done here. I Think I could implement all of that with just in a responsive theme and Going directly to the website. So the question is what's the difference? And I can So I guess with a responsive website. You don't obviously can't sell a responsive website in the App Store You don't have access to the camera in a responsive website as easily You don't have access to push notifications and all of the kind of rich app need goodness and phone gap is has a lot of plug-in modules now that expose all of the App stuff to the developer. So there's a really good share module for phone gap which lets you tweet Facebook Shared via Dropbox or whatever the app lets you do. So there's lots of features in Phone Gap and in a native app that you don't get from a responsive website. Okay. So those are features You just haven't covered so far yet here I see and then the we have an app that allows you to make an in-app purchase downloads Downloads a document, which is essentially a PDF, but it's a little bit different then you can look at that document offline It's premium content. Do you have some kind of premium content that you can view? Yeah, so in commerce guys We're currently working on and David kitchen in the audience is is the lead guy on this one there we go So of commerce downloads, which utilizes the commerce license module and a bunch of other stuff in between which lets you Sell access to content and with Phone Gap in the road map For Drupal Gap we have the ability to store the files locally and so that would fit your use case Quick follow-up to whether we like it or not There are millions if not billions of people utilizing app stores and downloading apps So that's just another reason why it's good to have both a desktop laptop website a responsive website and a mobile app in the Kickstarter demo if you click on all you get into a Interface where they're using faceted search you guys placed played with that and No, is the honest answer there We've got views and we've got views filters But we haven't gone full hug and looked at the search API and this title has which I don't think you have Drupal Gap has full view support for for paging and dealing with basic results said I haven't not yet added support for the idea of exposed filters or faceted search, but I would definitely like to make that happen someday Could you say something about Jay Drupal which is you know used by Drupal Gap? Yes That's a another open source project. I started it essentially is a JavaScript library for the services module so it's if you wanted to build a standalone JavaScript Application then you can utilize Jay Drupal to out of the box have user login logout registration entity crud and all your entities so originally all that stuff was very deep with inside Drupal Gap, but then I started playing around with a pebble smartwatches and they have a JS framework And that's the the day I got the idea that I need to yank all that stuff out of there and make it more Usable across multiple JavaScript platforms. I Assume we could use Drupal Gap to do like some sort of rudimentary game As a phone or a mobile application and then use kickstart or kickstart commerce To say pay for upgrades in this particular game if we were doing that How do you guys? Do you guys think Apple or Google would have a problem with us circumventing? The various payment systems they have in place. Yeah, so that would be against their in-app You'd have to use the Apple in-app payment gateway So basically we could use commerce only to sell physical products. No, so we can in phone gap you can build Any app that you can code in JavaScript, I guess But to sell access to extra features in that games you could utilize to Drupal Gap stuff inside your phone gap Application and as long as you're using the Apple payment gateway, you're not limited to just selling physical products You can As long as that's the gateway you're using then then I don't think Apple would have a problem with it. Cool Well, yes, you are right that Commerce can only be utilized for physical goods as far as I understand First of all, this is a nice work Thank you at the last month I'm Dealing with Drupal themes at Drupal development the last five years at the last two or three months. I'm dealing with phone gap so My questions is are Regarding if I decide if I understand correctly The Drupal gap is a phone gap application a phone gap project. Is it right? No, it's simply a JavaScript library Essentially that you drop inside of your phone gap WWW directory just like you would install Drupal in your website's WWW directory And it just kind of takes over for you and then you can start utilizing modules and themes to to build upon it and It I didn't talk about this earlier, but Drupal gap also utilizes the idea of render arrays so you can with your modules you can easily Create buttons or links and stuff like that use utilizing render arrays So I'm just copying the world Drupal gap application into into my WWW folder in my phone gap project in my Drupal installation I'm installing the Drupal gap module is it I'm right Yes, in order to have the connection between the phone gap application and the Drupal installation correct, okay, and nice So the commerce example is it just an example so I can have a simple Drupal installation Okay, with a Drupal gap module just to expose my nodes. So yes Drupal gap will expose your nodes And and all of your different content types. Maybe I can I can Configure to export for example the nodes of a specific taxonomy term. Yes. So in here we obviously these are Got a product display so they're content types and this is a view. Okay. Oh, yeah, I'm not even on this So this is a view of a particular content type Okay, I understand and these are taxonomy terms that are classified as content types so the the phone the phone gap application just Is is driving directly by a Jason file is it right? So it's generating Jason. It's consuming a Jason from Drupal. Okay, nice my next question is Regarding the theme layer of the phone gap application Can I create for example? This is I think that this is a jQuery mobile Theme layer, can I use the the most? Trady like the onsen UI or the or the ionic framework for the theme layer of something like this For example, I would like to to make an application To dress it with a theme Like the ionic framework or the onsen UI framework and to connect this mobile application with my Drupal with any Drupal Is it possible with Drupal gap? So I'm just gonna look this is a mobile application built on Onsen on Drupal gap. This is a phone gap application built on Drupal gap that Incorporate some of the chocolate cookie JavaScript theme layer. I think it's chocolate some something like that. Um, but it lets me do all of the Just refresh the screen But it lets you use although you can just incorporate those libraries inside of duplicate At the one last question If I connect the first time to my Drupal web from the phone gap application The first time I'm connecting to my Drupal site that I'm getting the view results with my for for commerce products For example, okay at the after an hour I'm opening again my app and I have no connection either and connection. What is the result in my app? So you can we have like a storage. Are you storing are you storing the The first visit the first results of the the connection Yes, in your settings.js file in Drupal gap We have entity local storage and views result local storage that you can enable and set expiration times on so it is possible to to hang on to stuff when you are in offline mode Okay, nice at that last question Sorry, it's okay. We like questions. Um, the guy behind you is getting angry I The the main question Except the technologies is how can I convince a client of me to to buy this mobile application? It is it is always a previous question But the the main question of my clients is what is the difference of a responsive website at this one? a Scott said before that the difference is that You can use them on the court of a plug-ins for example in order to speak with a camera or to speak with a notification in order to but In these examples, there are no there are no the plug-ins for example How what plug-ins I can I can add to this application for example in order to to convince my clients to buy I think it would pretty be pretty naive for me to say that every commerce store should have a Mobile application because it's probably not true. I mean your sites that are just selling Oranges, I don't know I can't think of an example, but not every commerce site is gonna want to commercial But when you're sort of a major brand and you want to utilize Your customers Data so if they're your customers are taking photos of them using the products and they're using product like reviewing the products It's quite nice that they can say okay. I've bought this and I can see my order history and I can upload a picture for my camera or So it kind of it's taking this content driven commerce idea to it to a new level And one of the reasons that you might be able to sell us into a client is if you're building a native app You're talking like $50,000. I heard the guys up one of the app developers here mentioned and that's per platform with phone Gap pure multi-platform. So we'll build it once and I've got blackberry. I don't know people use blackberries anymore. Then I've Got the Google version the Android version and obviously the iOS version So I'm saving money there and you don't need to go to a specialized app developer You can as Drupal developers we can develop these are so Okay, thank you For building this application. I'm using the console for example in order to build the phone gap application for For any device How can I build the the Drupal gap application for the other devices? We can use the same way for the from the console that the core of our build Way Don't quite understand the question do you mean so when I've finished building the application How do I package that for the different devices? Yes, so phone gap has a command line interface Gordova build Ios yeah, so I think I build iOS I'm going to build Android Okay, just I'm going to the phone gap application. It's just I'm using the phone. Yes. Yeah Yes, so this is all built on the phone cup technology in that perspective. Thank you. Thank you Real quick question regarding commerce Drupal gap stripe integration So we are going to be using commerce and stripe, but we have a development shop that's interested in writing an app for us So we're not necessarily going to be going the phone gap route The JS how much of that's reusable outside of the Drupal gap? I would say quite a lot it's open source it's not the best development work I've done but The the JS I was pretty simple all it does is capture the the fields of the that the user filled in and tokenizes them and does a service Cool, so if your app developers want to take a look at the code It's really simple and it utilizes the commerce type module, which is the heavy load bit the actual bit on the app It's quite lightweight Cool. Thanks Is that everyone well, thank you very much for coming. I hope you enjoyed it. I Was expecting like a standing ovation, but I'll take the claps. That's fine And if you get a chance, please review our session as trees suggest for a pretty do. Thanks a lot