 You know the guys who call it car online? Not research, but I've been bought a car online. Imagine going online and designing a car, right? Get the car that you want, upgrade the leather seats, have a premium sound system. Now, we're going to practice it from a full country. And when you're done designing to your test or budget, just like anything you buy online, get the car cut out and use the paper. And when the car is delivered to your car, you will simply sign the agreement on the car's premium screen, which is the touchpad monitor, and when you're in the line, when you're ready, and you're ready to go to work, stick it in your coffee, and you simply open your phone and set the temperature. You run a comfortable 68-degree Fahrenheit for a 3.5 degree Celsius. And then, when you're ready to work out the door, you bring some in your car. What does that mean? The car will weight itself up. It will open the garage, pack itself up, close the garage and wait for you at the grocery. And some in the car will hop to the highway or the freeway, and then return on the autopilot. Autopilot, what it means is that the car will actually drive itself. So steer itself, accelerate, de-accelerate, and where the environment will run itself, and pretty much hands-free and late-free. Now, you get into the, you come to that work, and you get a text message, or notifications saying, where is the new update for your car? Would you like to install it? Sure. I mean, even when you're getting your car, you will see a message on your screen saying your update is successful. And we'll have to show you a bunch of new features that we installed, release notes, and other people use the features. And then when you're ready in the evening to basically get out of work and ready to go home, you, oh, I could be right home. You're like, okay, I'll meet a couple of buddies. You're going for a happy hour. And you stop by the neighborhood bar and you arrive at the valley. And before you're getting in, remember, oh, this is the update. There's the valley mode. Open your smartwatch, open the app, and you will see the valley mode. So the valley mode does this. It's going to increase the limit of performance. You don't want the valley zipping away from the car. And it also increases privacy. You don't want the valley moving around in your GPS, moving out of the valley pin, where you live, where you work. Then, you know, you'll have a couple of drinks. And basically, ask your buddy to do a house in the car. So you don't want to ask him right two seconds earlier in the afternoon for a software update. So everything I just described was one word, which is Tesla, right. And this is real. It actually does it today. And it already exists. Right. Our science fiction theory. So once my brain is damaged, Tesla got to do a headless look on it. There. Tesla is a Google user, by the way. If you go to tesla.com right now, you can design and buy a car. Definitely. It's a Google implementation. What we want to make is software is the driver of innovation. We talk about ordering the car online from the US side. We talk about controlling the car through a smart phone or a smart watch. And the car itself is run by software. So the car will be updated, the car gets better with every new marketplace. So we're living in a world of connected devices. So the web apps, but I'm not even a mobile, it's not enough. And a few... So, a couple of years ago, everybody was talking about mobile first development. And companies are trying to figure out, you know, what's a mobile first strategy that's going to be going over. Tom Steadwell in his 2001 L.A. at the beauty store, he talks about API first problem. What that means is, you want to build your REST platform first, and then build your app on that side, only using APIs. This is short. It's headless. If you build your REST platform or backend in Google, that's an issue. This is the future of the REST. What is Google's position in this future of the REST? So the reasoning we're seeing in the world of APIs, Internet of Things, new devices, popping up every day, consuming and putting data. What is the place in the future of the REST platform that Google's base has been in the past? It's going to be more as a hub, a connector, at least a barrier of all these things. And not as a monolithic Google does it all. Well, the architecture has existed in software for a quarter of decades. It's not like Google invented it, but Google is monolithic. It's quite as one big chunk of code. To scale it, we're going to deploy multiple monoliths. It's all plopped together in one big application. Nothing long-long with the architecture. It has many advantages. It's generally consistent. It's self-contained. But in contrast to monolith, we have a new movement going on in the network. It's much bigger than Drupal. Drupal is part of it. It's not Microsoft's architecture. We're talking about Microsoft's architecture. What is it? The idea of Microsoft's architecture is to deliver an application to your customer in a lot of smaller pieces. It can be deployed and be operated independently. It's a lot more elegant. It's a lot more flexible. And it can scale much better than monolith. We're talking a little bit about what some of the advantages are of going headless, talking about what it is. It provides a lot more flexibility on the front-end and using front-end resources. It demands a lot of front-end tools, stuff like, for example, database queries, like the hands I could clean if I didn't want to do that. But that could be that. And it also makes it a lot easier to work in bigger teams like Android, iOS teams. Imagine having your Drupal team as well as having an Angular or a separate front-end team. And it extends the Drupal resources to an extent beyond the web. We're talking about internet with things, variables, smartwatches, TVs. Let's go on. And it also makes it future approval. We talked about Tesla a little while ago. It has apps in it. We're going to have a new app. They will give you an over-the-air update. But they're going to open it up for developers. And hopefully it can be for that to happen. And you can actually then do your own apps. It's going ahead and it makes it future proof as well. You can easily plug into your existing app. And Drupal itself, there are some advantages of using Drupal itself. It comes with security, internationalization, and access control. Drupal makes headless even more powerful because you're leveraging all what Drupal gives you to not happen. Of course, the large community behind it. And the whole thousands of modules available makes it very easy to support comparable platforms and capabilities where you can bring in. And then how long is it when you talk about Drupal today? You can basically take any Drupal 7 and make it as well. So, it's not a flexibility to do that. So, by the way, my name is Sam Seder and I'm the CEO of Drupal Solutions. We've been doing Drupal since 2007. And we've been doing Drupal since 2010. And how do you critique? My self critique, I work as an engineering manager of this string. I've been doing mobile application development as well as front-end application development for the last over five years now. Yeah. Moving forward, I'm going to go on this story what Sam has just shared about Tesla, right? You know, beyond that, right? I mean, what can you actually do with Drupal CMS? It's not just Drupal, it's Drupal, right? These are different ways you can use any Drupal CMS out there, right? Look at it, right? You can generate your static website on top of any CMS, right? The example shown over here is a 90 website which has a very rich UI experience. It's more of a static website generated out of the pool called Jekyll which has generation-positive content out on your CMS. And these websites are very useful where you just want to show the study content which is not going to be modified or like very frequently. Another way to use Drupal CMS is to go hybrid, right? So another example over here is the medium.com, right? Where most of it is content-related pages, but one of the pages which is highly effective is the content editing and adding, right? So those are the only pages where you Drupal the rest of it can easily come with CMS again, right? I don't know, guys, you can actually go into the single-page application as well, right? You can actually build Xbox applications, right? In Angular on top of any Drupal CMS. Another way to use it is doing native application, the link mobile application, right? So a couple of examples over here, so one of the examples of Angular app which lets you, or it's a social network for athletes and the teams, right? Where they communicate, they share the grills, they do that and then talk about it, right? The other is JavaScript which is nothing but for kids, right? I have a chance to work on couple of tools to applications that these are built on top of headless Drupal 7, right? Another way to use and build Drupal is to use a different CMS as a front layer. If you imagine you already have a CMS in Drupal, it serves, it's great it sits at this content management capability, but you still want people to let's say WordPress, right? The Connective website over here nothing but as a WordPress website then the back end still using the content from Drupal website. I think about it, right? We already saw static, high-grade, native application CMS, right? So these are different things you can do and go ahead with any deeper than CMS. Let's get started with AWS Drupal 8, right? With AWS Drupal 8, right? I mean, with Drupal 8 specifically it makes the APF first of course more easier than ever, right? I mean, Drupal 6, there are a lot of modules that are required to go headless and Drupal 7, they make it a little bit easier by introducing services module the JSON and the XML file with Drupal 8, you have made it a lot easier again. The SQL web service is actually the part of Drupal 8 code. So all you have to do is go and enable it. The serialization module which converts your data to JSON or the XML format and I think what is real new in Drupal 8 is the hard which is nothing but a certain convention to have the self-referencing links in your JSON or the XML. The thing about it, you are getting a node, right? In traditional terms, we will only get the UID the city of the ID is UID UID 1, UID 2, right? If you want information about UID 2 you will have to call it the Pregabian. What this hard does is it actually gives you the link of those UIDs all the self-referencing, all the integrated friends in that particular code here itself and your JSON is self-explanatory. You don't have to tell anyone that this is what the next file will be. Right? I don't know why you need the basic authentication, of course it is a to-give authentication as well in the layer but this is one of the basic what if you enable it and use the basic app on you to do the authentication of your REST APIs. Right? So this is one of the apps that we are going to create. We are going to actually go in with one of the vanilla components and create an app out of it and then, I mean, obviously before we have to expose the APIs and then go and then after that. So this is what we are going to do. We are going to do the application which will have any created to-do, marked as completed, not completed listed, added there, deleted so all the credit operations that are out there on the content type can be applied on this. So this is what we are going to do. See? So let's go and then build and work, let's do I hope it's visible at the end. So this is my thing. I just have a local installation that I have for a Google aid website. So the first step that we are going to do is like talk about the full modules which is all right. We are going to go and enable those modules and we are going to look for the modules. We have some services which is enabled. I have already pre-configured quite a few things. Then there is a serialization which is already enabled and there is a HAL module and the next is a BASIC or integration module. So one of the modules which I did not mention earlier is the REST UI module. So there is no need to contribute modules for Google aid but it gives a very good interface to manage your REST resources and not even there is less UI. Less UI out here. So this will be an input one managing our REST resources. Next we are going to do is we saw the Google app right. So let's just go and create the content type. So I will go to the structure I already have that content type created for us. So this is nothing but a simple content type or to do. I have the title which is already given by default and I have just created another boolean field called as complete. So let's say as simple as that we are just going to have a title which will say you are going to be tasked and the next you are going to have a field to figure out where it is then I am going to start. Now let's just go and actually enable our REST resources. Here is the configuration. The link over here the REST is what REST UI gives you. If REST UI wasn't enabled you have to go and write the code or write the syntax to your VML files and configure it. You have to actually code your configuration just write it and enable it. With this REST UI I am going to get this link and I am going to get on it. So as I recall the content resource is already enabled. That means these are groups go into the added REST link. So over here I have default any REST API or any content we can do all different operations there is actually to update the content or delete the content second post is to actually update the content third date is to delete the content and the last path is to add it or update the content. Over here the supported format as I mentioned is there is a high json the self-explanatory json the other two are the normal ones which we are used to. So the json and the axle are the other two formats. So we are going to add the json for all the code supported formats and that's all I will just go and do the same configuration. So actually we are contentless. We have actually exposed a content type over here. What does it mean I am just contentless I didn't do anything I just made few configurations. So there is nothing with this REST API that I could use any other kind over here so this is the postman which I am using. I am actually going to create a new REST API we are calling Compostman but before we do that one other thing we need to learn is the csrf plugin or what the csrf is this is cross-site request quantity. What it does is basically it makes sure you have to pass it makes sure your request is not forged or manipulated by some other source. So to do that we have to call a get csrf token API If you get it right I mean this is my domain or the local local and this is the end for the REST session token. Unfortunately this is not documented anywhere in Google it is there on some of the block pages or the nodes or the issue list right but there is nothing like this is documented in the center as we can get this end file I am just going to send it this one is shown here and this is the token which I get so this is my csrf token which I am going to use and call all my next API using this token so let's just go and create a tool right there is again my API so we did not so this is the csrf token we are not going to authenticate it yet we are going to authenticate it now with all the post request and the other request if you want to yeah so even I am not going to use this to get the token so it is more of a what Google doesn't actually validate with the resource or the request the new post request or the request whoever is making is the legitimate user so if you get the token and you have a valid token right you will pass it again if the same token is coming from yeah yeah it is kind of a different it is along the session so even with the forms in the token rate this comes back whenever it forms you open in booker 7 itself right the csrf token comes with it and when you submit the form the csrf token goes back with it so it is there in your html or html php somewhere which sends it back and where it is so this rest token is actually available to all I mean so even they could have given the authentication for csrf token as well but what we are going to do is I mean currently it is open for everyone but even the the post request is not actually open to everyone I am going to authenticate this post request to creator to do so this is the end point the mtp session note if you look at the body there is a title which is a file what is my value is this is my grocery I want to put it as my to-do this is my tag go and do the authorization so this is a post request which is a media authorization I will just go and do a basic art the model which we have you can do a cookie base authentication as well so let's say there is a user I already gave a rob as a possible job I will just update the request go and look at the headers these are the four headers that you would need the font and tag I am going to use the application so as json you can use high json or the x symbol as well authorization header this is nothing but just the base 64 encoding of your user name code and password along with the basic space request with it and the CSI token I will just copy paste what we what we just related I might have copied the old one let me just go back and generate a new one the CSI token send it I will just copy it again I am going to create to-do go to my headers and paste the CSI token these are the headers that I need I will go and make a standard request this is something we did not got anything in response with Brutal 7 we used to get the N90 of the model that we created but with Brutal 8 the only thing that I get is the status of this model created which tells me my node is created let's just go and cookie check out what did I create I will just go to the contents here is my node okay now that we have created let's just quickly create an API which catches me all the clues as well I am going to do well and let's see why I am using it I am going to expose a view as I just explored which catches me all the clues I will go to the structure views over here I am going to create a view let's say get to-do add new view over here I am going to create view name to-do I want to fetch the content of type to-do if we create it over here in Brutal 7 there was a separate model services underscore view that I created all I need to do is just enable this thing and define my end point I am going to do is rest views slash to-do slash yes let's say this is the end point you can define any end point I go save and add it what I am going to do is I am going to actually expose couple of keys that would be needed so so that's what I can do instead of entity I am going to create a speed type of display those titles title only save it, the other fields that I need is the NID because I am not going to do the pred operation this would need to use the node ID which is the unique identity file along with a complete field once I do that I have all my fields ready I want to expose since the complete is a complete field I am going to let's say return to 0 form so that's another thing for the ID that's it so this is what I have done one thing another thing which I need to do if you look at over here this is your sample response this is coming out of here the title field has self referencing links so I am going to remove it from the JSON perspective because I don't need it I am going to give my title again I will remove this link to the content right just like any other view parameter any how you define the view you have a conditional filter define view pass parameters and you can do it in here and expose it as a let's say here so you have actually exposed a view as a web service now this is going to be going this way we have our do do so this is the path that we use this view to slash this the format we are going to use is this over here there is the same method that's it so you might be wondering why I am not using any authorization over here the reason being the super 8 views are not supporting the basic authentication for a less exposed so there is a pass available out there if you apply that pass the basic authentication you have been doing with views I am not doing over here keeping it open for everyone for all the viewers out there but ideally you would use the authentication header here as well and hopefully within the 8.1 to 8.1 that pass in part of the code as well so for now let's assume I am in a spine I am in a dome and the response I want is 200 ok this is the response I have so that's why using the JSON I can use the HAL JSON over here as well and it will be HAL format that's it right so we have actually created all the previous I am not going to get into this update over here we are going to see it in the mobile application we are going to develop and consume both APS over there right so this is what I mean as just a request structure this recap of what we are doing in the personal you have your content that you have access to and this is by the way the request structure for creating a to-do for creating a to-do with the title and the content that you need to define next is this is a new term not even a new term what it means is the browser does not let JavaScript call or make a request to another domain so if you are on a particular domain let's say example.com from the JavaScript of example.com you want to call or make actually request to example.com also will not let you do that because you are calling it from the client think of it any malicious program can actually use your browser you might authenticate it on them the JavaScript of the other website you might have open can actually call so this is why the cost comes in place and so you can handle it you can set up the cost configuration APS level or PHP level to allow your request from the other domain so you can specify from this particular domain it's allowed, it's okay to call or make a request any HTTP request from that perspective so what I've done is I've just enabled it in the next or basically the Google so the sum of the code is already there it just makes it easier it just enables the calls for all the domains so I can actually make the cost to be a dot local from any different domain now that we have seen it we talked about different applications different mediums I'm going to say mobile don't just get limited by smart devices in your pocket it's any other device out there we are going to show you obviously a mobile application but at the same time a similar application can be developed for any device that you can have capability to make these applications so let's look at the mobile as well long misconception what is high grade, what is HTML app so these apps are basically the advanced UI interaction maybe the games are the best example to discover the native apps so whatever games you play on your mobile the native application they have the fastest performance they have either Polyvm Java they have Polyvm Objective C so you can actually you are actually building the application native using the which is supported by the operating system of your phone so this is the HTML5 where you can actually use the web development if you use more HTML, CSS and JavaScript it's good enough to develop the application you can instantly update it, you can access the web browser put it anywhere on the web server you can access it on the web browser the other third one is the hybrid application where you can still use the web development skill because HTML, CSS and JavaScript at the same time lets you use the native because of your phone as well so things like camera, GPS accelerometer, anything that you can do you can go and build the hybrid application which has best of both HTML and HTML and the advantage that it actually supports multiple platforms you can build a single application to support the multiple platforms you can also build an Ionic framework it's a hybrid framework it's an open source SDK which is available to develop the mobile application, the hybrid applications out there its performance officers is unlike any other hybrid application development tool out there because it has no G query which takes a lot of time it does minimal DOM operations so you can have a real time effect at the best performance but at the same time, as close as to the native after all it's based on Angular so Ionic was built when Angular 1 was out now there is a beta version of Ionic out there which is based on Angular 2 so you are actually coding in JavaScript as CSS and you can probably use your web application which is in Angular and transform into an Ionic mobile app as well and it's native focus, anyone who has done the native environment development it's easy to learn it at the same time it's available where you build it once and deploy it at the multiple platforms but quickly you have to install it so you have these are the variables you need to have a home.js you need to have a folder installed you need to have a realistic install on the map, like really the highest pair from the X code from the Ionic module these are the couple of commands you need to learn support just Ionic 1 and then you can install Ionic which will install in Ionic 1 for the beta version which is Ionic 2 is the Angular 2 you need to just do the Ionic and the beta after you install it and to start with right I mean there are multiple boilerplate codes directly available which you can use and get started so we are going to use one of them over here to just do the bootstrap and the high file Icon version 2 in here for the Ionic 2 and at the same time you can do it in Zavascript you can do a real application to fscript so what we are going to do is actually build an application in Zavascript for now so these are the references you can see get the details and instructions at ionicfamble.com slash get me started so I'm going to highlight over here this is the Ionic project circle this is the main entry point of your Ionic app so just like in next.php in your group there is an actual hpm over here on ionicfamble.com there is an ionic app tag so this is where your application gets into it so this is what your starting point is and this is where you actually start the boot component of your app is in app.js so a great app syntax over here defines if this is the boot component you define the template url and you are familiar with Angular might be related because there is more like defining the UI of your boot component there is a small class that constrictors are guaranteed with this empty in here so another small thing we are going to learn is the components in here so any reusable UI element is a component these are nothing but the built-in blocks of your mobile app they are generally made of your hpm in the CSS but it tends to include the Zavascript as well so this is the app that we are going to build the 4 apis or the 5 apis that we exposed we are actually going to consume and build this mobile application in it so let me just go into this so I have already run the ionic start command I have that already with me so just ignore these 3 folders one of the to-do list services folder these 2 folders actually the other 4 folders are what you get by default in the browser because there are multiple variations out of there so what I am using is a tab and 3 pages so this is why I am running I just blown it and what I need to do is if I am trying to learn this app in the browser since it is an hpm you can still run your mobile app in the browser I am going to do ionic start in this way we are just going to compile my hpm in the CSS or the the CSS the start into the CSS so this is my mobile app in the browser as of now so this is the boot component I have 3 tabs out there it feels like native and here even though it is a hybrid app we are here in the code this is where we actually get started so what we are going to do is actually translate the same app and build the to-do app that we just saw so I am going to copy and paste a couple of pages of code over here to get started with so I am going to go in here there is a to-do list so I have already created 3 mpp files in here you can see it is a direct hpm with mp hpm and in here there is a to-do list so every component as I said you might have a javascript, html and your CSS so this is get started with a javascript file first by the way this could have been a javascript file as well since you can write the ionic app or even the Android 2 app as well what I am going to do is write this for fun import page from iclinic ionic slash ionic over here and then I am going to tell ionic that this is nothing but just my page page by page I mean it is a screen for me I am going to remove this for now this is my template URL from it I am going to create a class for myself this is my class I will do constructor in here this is my constructor, I am the constructor for now that is it I will just define the page just go and quickly define the html for it as well so in the html what I am going to do is I can surely copy paste some html this is one of the tag where I am in the content so ionic actually gives you out html tags out there so you have the buttons, the formatted buttons checkbox, check page, you can directly use it I am just placing the ionic html tags in there what I am doing is I have just created a section put it in the header and input box out there now that we have defined the first component it is a simple UI which has nothing available at the hiding and input box I am going to tell ionic that this is my root component I am going to go to the app.js instead of inputting the tabs.js I am going to import my to do list in here I am going to write the part of it which tells that I need to import this and I am going to say this is my root page in here as you can see as I saved it it actually automatically refreshed my browser version it should have done that here is it I am going to do the basic to do that there is no styling at it because remember our case if I was empty what I am going to do now is quickly copy with some CSS to make it a little beautifier and so over here I am just going to do this one less you can see over here my size is about 5 my CSS got changed let's just go and see it I am going to start it again the next we are going to do is define the rest of the HTML define the different events on it and then integrate the APIs to connect with my APIs that I just created so even in the JavaScript file I have I am going to copy paste some of the constructor code I am going to just copy paste few lines of code in here so what I am doing is I am defining my constructor so there is a service which we are going to create just now and I am asking it to get the CSR that is supposed to be here with report we are going to set the authentication header in here and then get the to-do so different health proportions that I will create in here so just go and define our services file as well I am going to do this service.js so over here copy paste some of the code so this is nothing this is again over here I am defining the class so it is not a component it is not a page because I am not using it at the red page directory so service is nothing but just like your class so there is nothing just an injector class from the Angular that would be needed to inject the HTTP into my class that would be used in here the HTTP and the headers are needed to make the HTTP request from INA for Angular 2 and this is nothing just elaborate to map your data from JSON to XML so now that I have done this so over here this is my get CSRF function which does nothing it has got HTTP object yes and the root UI what I have defined over here is you can create .local the user with the password that we just saw in the application the same UI as this the same way the set of the invocation header that we have a function to get the to-dos in here and the other way to do motion in here so once I have done it the last thing that I am printing is I need to update my HTML to show the list what I am going to do is go to the list of HTML copy some more HTML in here so if you are familiar with Angular 2 you might be familiar with the 2-way binding concept over here so over here I am using the ng model the Angular 2 where anything you input the input box will be translated into this ng model yes assign to this ng model and whenever you update this model it will get the same frame same way I have just added another section which is doing nothing but just I am printing 2-night-to-dos object and creating a row for each to-dos line item in there so I have used another HTML there I have got a component of an INA which is INA checkbox you could use any HTML checkbox as well so you saw your HTML you work over here you will see that with some of the INA and some of the Angular and some of the normal HTML that's it right that's all we have done so we have some other that we need to do this call so we can resolve INA to the INA which I did all I need to do over here is instead of INA I need to use it as INA to frame it I think it should compile now which it did okay you can see it let's create another to-dos okay there it is okay there it is my to-dos what happened I am clicking on this it called the services you can verify it by doing an inspect element you can make sure and go to your network and see all these I just have to mark something is done which have time in the test request which is nothing but just the update request which is marking a to-dos complete okay yeah so you can do all of it you can edit it and all so far we have only developed the application we have not even seen the mobile version of it right and we were talking about the mobile application what I am going to do is go into my ID again I am going to stop this right now which is INAkEmirake iOS INAkEmirake iOS it actually generates and combines a code a project then it translates into an export project which is understandable by the export and then it it gives export to generate the IP file or the So you can similarly run it on Android phone as well, over there, you call it, hang on, I have something I don't know, I'm not sure if I should not know until I can show you because I'm doing it on local. Yeah, so the idea is I mean similarly if it will appear over here, it's just like it didn't develop, right? So you can do all this kind of operations in here on the mobile application. So going back, presentation, right? That's what you've been. So that was how to create a REST platform and then how do you actually do the mobile app using Ionic and then actually use your power. So just in closing, just wanted to quickly talk about a couple of things. I just want to remember Dries in his 2011 keynote at Shubhama Groupagon talked about if you were to start Groupagon Scratch today, I would build the phone mobile experience first and desktop experience second. Fast forward, 2016, yesterday when Dries was keynote, he was talking about, you know, the first industrial revolution, which is a digital revolution. And some of the prominent Drupal community members that came together recently written a manifesto which kind of defined what one of the four goals are related to that. So we should not be able to go through what those four goals are. If we want Drupal to be the preferred back-end content management system for designers and front-end developers. We believe that Drupal's main strength lies in the power and flexibility of its back-end. Its primary value to users is an ability to architect and distribute complex content models. We believe that client-side content famous are the future of development. And it's critically important for Drupal to be services oriented first, not HTML oriented or risk-becoming development. When we think about building a front-end application, you know, what's the first thing with this platform that comes in your mind, right? It's probably Angular, right? React, perhaps, Angular is probably the most popular. When you think of building a mobile application, what's the first platform that comes in your mind? Probably iOS, Android, maybe one of the platforms that I have been, for example. Can you imagine if you are a mobile developer or an Angular expert or, you know, smartwatch, Nindra, and you want to build an application and you can use a back-end. That's the back-end that comes in your mind. So without a political question, it's basically none. That's really that there is no back-end that really comes in your mind. And we know that Drupal is great at modeling data and creating creating data. So, as a community, our goal is to make Drupal that weapon of choice for the emerging front-end development community. So, what we're going to do is it's going to take us to really exciting markets, new use cases, and enable us to build some really, really awesome applications. So, thank you very much. If I could come in, we'll just open up with some questions and answers. Do you have any questions related to Atlas? So it's just TMS, right? That's kind of the truth, right? So the question is, the work of a database goes by application, where does it go, right? So it's actually in our CMS, right? In the CMS, the Drupal has the database, right? The same database is being used by a mobile application. So it doesn't make an HTTP request to pass the pay or pay card via that HTTP request to Drupal, and then Drupal then stores it into the database. It's the same database. Yes, yes. It's a content type. So you can basically expose any entity, any content. The other resources that are available, by default in Drupal, even like Exxonomi, your users, you can, so those are likely available to be exposed as well as they can. You can create custom APIs as well. You can actually put anything in customer support as well as they can. So, by the way, I mean, so it's like this, right? I mean, you generally have to do it before that. So Drupal does it by default. I mean, whatever variation you have to find. So you don't want anyone on the mobile to make a complete HTTP request just to find out the variation is failing. I mean, let's say you are entering some feeling, I don't want to validate mobile so that HTTP request does not happen. So I don't even do it at both the places, but Drupal will do it for sure, whatever you have to find in the back. You've maintained any catching system? Yes, so the rest APIs in Drupal 8 are actually catched on the mobile side. So on the mobile side, you can use any of the techniques, right? I mean, so whatever you can, actually your local database as well as you need to, you can use other caching techniques out there and mobile to get the data. Are you trying to build up, asking about your offline applications or any other type of application? Yeah, so you can do that, yes. So the same Drupal app was actually inspired from one of the app out there which was built in Angular 2 and was storing data in your browser using local storage. So what we did is we removed the local storage and we just impugned the rest APIs for the data and we stored it back in. So the major difference comes in the way where the performance comes. So there's a relevant bit ionic, this is a new framework which I started learning a few months back, right? I mean, I was a little bit reluctant to go with a hybrid application to start with. I did a lot of native application development but what stands out in ionic is that it has no jQuery which already slows down things. It does minimal DOM manipulation things which makes it a bit faster, right? And then Angular 2 and all support, right? They said, anyway, evolving to the new smart phones out there they said, yeah, they were not doing a lot more than what other real smart phones were, right? So it is bridging that gap and the performance, right? I think the ionic is better. Application for Apple devices can be made on non-Apple devices? That same app which we developed could be run into the Android device as well. No, my question is for the development. Like, it needs export and the Apple I released to emulating the development Apple iOS app. But can it be run on non-Apple things like Linux or somewhere else? You can run it but probably finally you would need a Mac. So basically it doesn't have the browser version which you were seeing, right? You can actually develop the application on Linux or anywhere, right? So once you have done, once you have done it your application will just be for the finalization. You would need export to generate the finalization. So no way out other than that? Not really. That's what Apple does it do. If you can't escape the same escape here because it moves all over and moves right then the car has to take more time then. It will be good for us to call many request in the mouse tag and also... So I am asking, I mean, is it okay to develop mouse over in an even screen mobile application? Yes. Yeah, that's fine. You can use it again. If lots of under comes then effects are performance of the mobile screen. Right, so that's good for any native application as a right. You have to actually wait for the content to come and then only you can perform operations on it. Instead of going for Drupal and the back end why don't we write the back end in a simple way and I just could have said it. One of the things that is relevant with Views API that we saw in Drupal 7, right, if you were exposing a Views as a less API it would actually run all the theme functions and all the other things that it does to Views. But in Drupal 8 it's as good as the native PHP variants. It's just hitting the PHP function where anything in the database and fetching it is as good as that. So you are escaping all the other Drupal 8 or Drupal's function into your theme where anything that happens to the Views. So it's kind of similar that. Is it responsive? Views output. So if I have written some kind of Views I want the View output in my mobile. Is it automatically responsive to mobile? So responsive is very tied up with the page layout as well. Yes. So I mean that would depend on the theme that we are using in Drupal. But that's different unless you won't need a less API for the less API. No. I have a list card for Views and for this. And change is it a responsive layout automatically or what? I'm not sure. Again I think it's depending on the theme. And if the theme is responsive it will be able to do it all. Do you see hybrid apps in future matching native apps? Like a lot of such new technologies are around now. Famous like Ioni. Every now and then you'll see a new one. So how about matching of these two native apps and how are hybrid apps possible in the team? Yes, I do. I am for a couple of reasons. Since we are dealing with these improving front-end technologies AngularJS we have any other. It's taking it up to a new level. At the same time your performance of the devices that you have is increasing day by day. You have 4 GB phones in your pocket right up here. Depending on that, yes. At the same time it also depends on the application that you are trying to build. It wouldn't be a good idea to build a game as a hybrid application. But if there is a lab which is more content driven and all, it might be a good idea to build a hybrid application some of the conference is quite native interactions you can still go to a native party and that's what the hybrid is right. Depending on the use case that you are trying to solve is depending on the use case it might need to be better and in some cases it might be equal. In the end as you have seen it's running on your application so what it does is you can sort of the TypeScript which I mentioned the TypeScript is actually the object of writing the TypeScript. The TypeScript is a way to create that language and you can find what kind of language it will be. It will be a string but in the TypeScript it's open. With TypeScript you can actually see the city that you are in. You can see that in that manner you are asking where this package as one single or maybe a multiple string page is and given to a value with a fill. Last question and then if you have any questions of this course of contact information you guys can reach out to us. I'm building a website for a book publisher company and they have book pages. There we have some more filtering system like 10 or 15 feet up and we solve the problem by views in our front end using group of giving. But is it will be very easy or hard to build the same filtering system using irony. Like I have I can filter the books by book title author, publication, education. Yes, yes, yes. So anything that is coming out of the view which is getting the data you can explore it as a get API. You can even pass it on textual filters. You can tell it right from this session just fetch my UID and give me the notes which are written by this particular UID. You can use the filters whatever filters are available. So anything in the filter as a get API. So I guess we are out of time. I may even have a portion doing better knowledge. Thank you.