 Okay, let's start then. Ladies and gentlemen, I'm very proud to welcome you to our Bavarian restaurant. I know you've all been eagerly waiting for the talk, but it will be 50 minutes late. So, instead, I'll ask you what we'll order today because I'm obviously expecting you all to come to the opening of my restaurant, and I call it Munich iPad. Obviously, this was a chef of the restaurant speaking, so we got three persons in this talk. First of all, two developers that have developed the nice iPad app we'll be showing today and show you how we created it, and we got the chef who's asking questions, who's showing you kind of how this restaurant was working. And a mobile developer who's built-in mobile website and iPad application. Yeah, and first of all, let me introduce Vadim Igorod, who's the main speaker here on this track. And Fabian Franz is also a really cool chief. Chef. So, let's start. So, I've heard that this mobile is saying that this is kind of cool, and I really want to know why do I need to go mobile? What's that getting me? Yeah, there's plenty of reasons why you can do it. First of all, you get a better user experience. Your site users will like it very much, and that is why you get new visitors, and you will also compete with other websites. And one of the major reasons you really should do it is that about 50% of traffic is going to be mobile by 2016, and it is really amazing. Wow, 50% of traffic I think I'll buy a new restaurant, and I have to calculate for a moment. So, I'm sold on that idea, but how could my site be mobile? I mean, I have a site, it's a great website, group of seven, obviously, what else. How could it be mobile? Wow, first of all, it should look like a native iOS Android application, and it also should be optimized for mobile devices, and it needs to go to the App Store. Okay. This App Store thing, it sounds really nice. I mean, I would love to have this Drupal website in this phone, but as I imagine kind of a Drupal website is kind of big, how does it fit in such a small phone? And that sounds rather complicated. How much does it cost? I can spend some, I have some budget, but there are limits. Well, it's actually, it is not difficult to do it. It is actually very easy if you use Drupal, PhoneGap, and the MagModule. Let me give you a little retrospective, because this session is kind of a follow-up session to a session we had in Denver. In Denver, we first introduced the mobile app generator, which is the acronym the Mag is standing for. In Denver, there were two things that people were really asking for. The mobile app generator as well later shall allow you to easily take a Drupal website, and you'll click a button and do some other things, and it's a mobile app. But one thing, two things were kind of the most often asked questions, and that was the first thing was, well, it's still looking like a Drupal website. It's not an app. So how can we design things? How can we theme things? How can we make things happen that this mobile website is now more looking like an app? That's kind of what we'll show in the first part. And then we'll go more into the mobile app generator part, where we'll show some very cool things, because the other thing that people ask was, well, I can generate my app now. I can have an app. I can update it through the app store, but it's too slow. What really most people wanted is in-app updates, and we got that. And that's what we'll also show later. So, yeah, that sounds good. But how could they make Drupal look like a native iOS or Android app? Do you mean like this? Wow. Wait a minute. Let me see. So I got my Kaiserschmarrn, my Apple Stoodle, my Rospart Worcester, and here are also some vegetarian options, Bavarian snacks. Yeah. What do you think? I think this could work. So really, I tried this Mac generator thing there in Denver, but what was not so good happening was that I had some text, and I couldn't scroll. I tried with one finger, with two fingers, with three fingers, even with five fingers. It just didn't work. So how can I make this I scroll through a bus? Yeah, like this one. So, yep, that looks about right. I like this. You like this too? Yeah, I do. Great. So I have used iScroll library written by Matteo Spinelli. You could download it on the website, gubic.org, slash iScroll. It is a very nice library. And here's what you need to do. You need to add a couple of divs. A felsdiv is a wrapper that determines the size of the scroller. And the second is a scroller content area, which contains some content, some URL, text, and whenever. And also, you need to add some simple CSS for the wrapper, where position relative is actually some CSS tweak, and that index is making it to be on the lower, comparing to other objects. And you also may set a width, but it's actually optional parameter and height. And you can set our flow, which could be auto or scroll. And actually, you could skip this parameter and it will work well. And if you want to make experimenting with horizontal or vertical scroll bars, you could use our flow dash x and our flow dash y. And what else you need to do is to, in the JavaScript file, you need to add a new behavior and attach the functions that will find all unprocessed scroll divs. And we'll initialize, create new scroll object, and we'll store it in the data. So it's used because if you're using some kind of jQuery to show in high elements, iScroll works only for the objects that are shown on the page. So every time you are showing or changing a DOM, you need to trigger a Drupal behavior to enable and refresh all existing iScroll objects there. Yeah, just to explain this a little more, now in my role as developer of that, we first had a little different approach, but it turned out to be not as well. So really the thing is this is a Drupal way to do things. You're really using the usual Drupal behaviors, and then we are just storing the data here in the object where we added the iScroll on. And the reason is that whenever you are now showing something, you just select Drupal attached behaviors, and then this gets called again. So we didn't show this kind of for complexity, but the only thing you need to do is you have to kind of add the same code like for iScrollProtest.each. You are just doing this.data.iScroll.refresh, and that's all you need to do. And then you have it working nicely with within the Drupal framework. It will also work for Ajax Element. Really nice. So this was good with the scrollbars. I really like this carousel, but how can I create it, and can I just add new slides whenever I need? Carousel. Yeah, actually you can add new slides. The slides are notes, and this is a view. And it supports the touch input from your mobile device, from the iPad, like this. And to do it, you need to use roundabout.jquery.plugin by Fred LeBlanc, and use roundabout.model by Felix Mayer. And to make it happen, you need to install views roundabout.jquery.update.modules and roundabout.plugin. Also, you may need to install event.drock and event.drop.plugin that you could download from treedupmedia.com. It is needed for touch support. And you may also want to create a view page and a view block and set roundabout format for it and enable dragon in the settings. So, that is... So, this is all nice and good, but I think when the app starts, I would like to introduce the user to the app, and I would like to also have like a little info where the user can touch and then he can see some information about this app so to understand it better. Here is an example of the model dialog. And there is plenty of models on the Drupal.org and lots of JavaScript plugins that allows to do dialog, but actually, they are not very convenient to use from the JavaScript. You could do it, they are perfectly integrated with some other Drupal modules, but what I found was a simple model. It is a jQuery plugin written by Eric Barton, and it is actually not a Drupal model yet, but it is very easy to use. So, you need to do like this. Select a proper element that you want to show us the content in the dialog using jQuery and RunModel method. And also, you may want to use your own HTML to be shown there. And if you want to add some animations, like fading and fend out, what you need to do is run this with special parameter onOpen, which actually contains a function which will fade in the overlay and fade in the container and then show the data. You could use this snippet. I like this simple model very much, and it has very nice features like you could manually, automatically resize and position your dialog. It supports model and no-model modes. You can control overlay opacity and use show and hide animations. It's very cool. I hope it will be integrated with some Drupal model, like a dialog API or something like this. You should try it. So far, we got the carousel, we got the nice score bars. I got some PDFs where people can download my menu. They can look at it, and it's all Drupal views. I like that. It's very extendable, but I really need a detailed page so that I can just select something from the menu at the top, and then I want to show the history. In my restaurant, we are only having meals that are certified by Wikipedia. Like this. There's nice transitions between the meals. That looks good. So doing something like this, like a little scrolling, etc., is very easy. There's two plugins to use for that. There's the local scroll and the scroll tool plug-in. And it's very easy usable. You just have a normal container, like you have for the scroll bar, and then you have just a usual age name, ages, or for the diffs you have ages, you can just use the href, and it will automatically scroll there. Scroll tool is very, very powerful because you can even have a grid and you can scroll within that grid wherever you want. And it was all working really nice. Yeah, it was working really nice, until I saw when there were lots of slides and it started to work extremely slow on the iPad. What was happening? Is there any way to make some hardware acceleration? Yeah, what was happening was it was working on the iPad then and we were just looking at it, and it was sluggish. It didn't look nice. Also, the carousel after some were trying and some were adding was also sluggish. And the reason is that all of this was using the usual jQuery animations. And we really saw what an initial test had shown that it should have worked, that the iPad was powerful enough just to calculate the animations, but it turned out it is not. So we had a little problem because the client was our client, here's the chef, is now really worried. Well, what about my budget? Do I have to redo all of these animations again? Do we have to create a new roundabout plug-in with CSS3 animations? Unfortunately, it turned out no. There's a very, very, very, very, and I could add hundreds of queries more, a cool library which is called jQuery Transit. Who knows it? One or two. Okay. This library allows you to use your normal animate functionality that you are used to from jQuery animations and it will automatically translate those to CSS3 properties. That means with just very, very little code change, usually it's just to exchange animate through transition, you'll be able to write CSS3 animated things. And that's really cool because CSS3 animations are nice, but I still found they're like a little difficult to use, and I'm so used to the jQuery animate way, and there are also lots of third-party libraries depending on this, and it turned out that you can really just exchange things easily. So how we did solve it for the scrolling of the menu, and the reason why it was slow was the big background images, because the more big as the background images got, the slower it got. And also what was happening is from the background images, if you once had position fixed instead of scroll, you can't believe how slow it got. And when we got back to position, scroll, it worked better. And then we had scaled the background image because CSS allows you to do that. Also, much slower than when we just did an image cache and you saw, right? And also transparency was changed there, so there was a semi-transparent slide that was turned in and the opacity was changing, and the transition really helped us to make it work very fast. Yeah, the transparency was also a problem. So it's very easy to use, as I said. So what we are just doing, we are calculating the new x offset, and the jQuery trend that allows us, it gives a new property to CSS. So instead of changing the left property, you are changing a new x property. And this x property directly maps to the transition property, a translation property of the CSS way. And that way it's very, very easy. And we now had two cases. No, no. Go back. We now had two cases, one animated case and one non-animated case, and it turned out that you can just use the same code because if you were always animating what would happen is people would click on it from the main screen and then it would just scroll there and people were, like, confused what is happening there. Continue? You can vary your head. So you might ask yourself, kind of because the promise isn't a session description or because you're curious, what additional modules can be used for going mobile? What other things can you use to make your mobile experience more rewarding or to have a mobile site at all? So there are two big categories of the models. One you need for the mobile website, while other you need for the mobile app. Let's consider the mobile website models first. So there is a mobile tools model which actually has lots of functions. It allows to detect the user device using browser cap and provide contextual switching of the content and layout. It could also do automatic redirection to the site based on a specific device group, like if you have a mobile smartphone, you're redirected on one side. If you have a tablet, you're redirected on another side and if you use just PC, you are using the main side. And this model also supports the spaces and the features and there is a mobile bookmark pop-up and much more, but it's pretty complicated. And how could we have insights, show that it's not better to use this model if you saw the Acquire DevCloud demo. There was like a... If this model is installed, it will give you minus 10 scores or something like this because it's a problem of the caching. So you could use simple alternatives like a mobile theme, a switch theme and mobile switch which do actually the same with addition of the use of simple mobile redirect module. So the problem of caching was if you're having a single website with the same URL for different devices and you have lots of visitors, you may want to cache the content, but actually you could not do it because for the different group of devices, you probably have a different content, a bit different blogs, a bit different CSS and some other kind of stuff. So what you need to do is to detect the device and redirect it to a specific website that has a specific caching configuration for this group of devices. And this is possible to do with it, with these models. But still you might have a need, for example, that you have a site and it has now a mobile context and you've set up everything correctly that you're showing kind of some things on the one device, the other thing on the other, and you're having a redirect to your mobile website. No, no, next slide. We're talking about mobile context, context mobile detection. I do. So what was happening was that there was a big transition day and people were coming to the site and they were just totally confused because they were used to the normal site, it was working on the mobile device and now they get redirected to another site and it was looking completely different. So what the client at that time wanted to do was to just show a little message box and for this we get this little project, context mobile detect, written by Artem here in the front and this allows to do that. But context mobile detect is depending on something else and that's quite cool and that's also why Browsecap is not a good solution in that where you really want to do the mobile detection is in your first peer of caching and that for most high performance sites would be varnish. So there's a possibility to set up some device detect.vcl it's called, you can easily Google it and then it will just give three options to the Drupal site and this will be PC, tablet or mobile. And based on this you can show different blocks. So and this is because it's kind of working with in varnish, completely compatible with the other approach and then you can also do some redirections there, etc. So it's highly recommended for this combination. You can also use the Browsecap block and the Browsecap C tools. Browsecap block module almost do the same it's adds some settings configuration to the default blocks of Drupal if you are not using context and the Browsecap C tools add some conditions and context to the page manager module which could be used actually in the panels and then creating your own pages to detect device based on specific group. And there is also some kind of useful models like a laser loading module so if you are viewing a big website on the smart phone you probably not often use Wi-Fi you may use a 3G or maybe GPRS or maybe even work and some kind of edge technology so you don't want to all site to load and all images to be loaded so you could actually use image laser loader module to show only the images for the specific area your site users are viewing. The same happens with the block laser loader which loads the block for this area and then your visitors viewing. Just to give you an idea of how this is working let's say we got an image way down the fold so this is the scroll bar, here is the fold this is our image. If you are just looking at this why should we load that image? There is no need to. But when the user scrolls down, down, down here we are coming near the image so quickly we load it and once the user comes he sees it so there is no problem with the user experience usually and users really appreciate it because if you don't have to load like 10 images it will be of course much faster and that gives you a better user experience. Oh, it's nice. And the mobile app there are several models that you could use for the mobile application one of them is a smart app banner that is used for your mobile website if you are viewing your website from the mobile device so you may want to view on the Android or AUS use your native application so this model shows nice welcome banner to install your iPad or Android application it detects a user device based on the group and it also detects if their app is installed and a future version of this could maintain context and pass some parameters to the mobile application there is also a model of push notifications Yeah, and push notification is I think really cool and something you need in that we worked hard on push notifications support for this app, it works the push notifications module allows you just to send push notifications directly to Apple, to Google, for Android, etc. so you can send those but you will still need something else just to receive the push notification for a server but there are several server modules they can just help you there but this makes it really easy to send out the push notifications for this mobile app we actually ended up using Urban Airship and that's probably also what the mobile app generator will support kind of out of the box they have a free plan that I don't know millions of messages and that's probably sufficient enough and it was easier to use in that context but we evaluate push notifications, it was working great I will add some description for the push notifications so if you, like using the client server technology the only client could initiate connection so if you want to get update automatically from the server using the client server technology you need to ping server and then get some results but imagine if all your applications would do it at the same time you probably get lots of traffic and this is not needed the push notification allows server to ping the client that's what we need to when we want to say either that there are some new slides some new items in the menu you want to show you want to see it and update it and obviously what's also happening if the user is not actually using your app you have no way of informing them well there's a new slide available check out the new meal come to our restaurant what about visiting today, Friday night and we really want to do this for marketing purposes so what you want to do is send those push notifications as kind of in-app updates and besides updates and if you own an iPhone or something you'll surely know this little batch there which is just incrementing when new push notifications are received and that's kind of what's working yeah and now we come to it we want to present you a special module from the Fabian are you prepared for it? welcome mobile app generator module and you might know it already because the demo session is linked but we present you the new version of the mobile app generator and it has many many new features but for those that don't know it yet you really have your Drupal site you select some pages you want to export inside of a manual or there so far also some patches for other approaches you take this batch put it for example in zip file then you transfer it to your machine where you are developing for your iOS application or even you can use something else I come to later and then you put in the zip file and you create your mobile app with it and that really makes it very very easy for everyone to create a mobile app it's not just that you need special knowledge or something but you can do it and really the new things are we have this in-app synchronization support we get the support of pushing to an external server we get the push notifications via Ubership and lots of other cool stuff so it's really really easy to use another thing that was kind of a limitation still and then where was you would need to switch your theme first it's no longer necessary you can just select your theme you want to export so you can even have a mobile app on your main website and have some content so you don't have to create duplicate content this is how it works you have our usual mobile app which you've seen already you can go through some slides etc and then at the top there's the admin menu and probably too difficult to see but there's a mobile app generator and generate mobile app and there are different settings you can use first of all there's a setting for the pass and we are pushing this to S3 now then you can select which menu to export and what's new is there's a version number so all what you are pushing is versioned that means if user is at one version they can still update to a new one but there's no conflict and if you now generate it we're just pushing everything up to S3 and once you push a new version the client will now we'll see a little later and can then download the update let's try... it looks really cool but what is it PhoneGap and how it could be cooked salt and dried let me ask who of you know PhoneGap or Cadova? some but not all so PhoneGap is something or Cadova what it's now called is something that's making it possible to use kind of a web application but what you're creating and if you're creating this with the mobile app generator or by hand it's not really such important so I think the mobile app generator obviously is a little easier but what you can do is you can run this code native for example on an iPhone on an Android, on a Windows, mobile and really what PhoneGap allows you is what you can't do if you're just running from a website to access all of the device's native functionality for example you could check and that's what we did for this app if a video if the app is running in 3G so just having a slow network connection or if it's on the wireless or if it's having no network at all and depending on that you could for example show videos which are inside of the app and rather small but if they are on a Wi-Fi or small videos but you rather want to have them pop up where they can see the videos from YouTube or some other service like BrightCove and you can just embed the code and again it's just doable programming so you all can do this you all can do create mobile apps and you do not even need to own all of those SDKs because there's a PhoneGap cloud or Cordova cloud or PhoneGap build service and there you can just upload a Git repository of your files and it will automatically kind of create your files there so PhoneGap cloud is to say this commercial but you get one app for free and if you are not selling if your code is not proprietary but you can kind of have it like a public repository then you get more apps free and it has support with a Git yeah this is kind of the device matrix of PhoneGap so it supports a lot of operating systems it allows you to notification, vibration storage, storage is very needed for this module so we can do the in-app updates you can select the network can do a photo with the camera and upload it as media have a compass and there are really many functions and probably the future version of it will can do like a cooking, serving and some other kind of stuff so I don't want to go into too much detail now on PhoneGap because we have a limited space here but I'd rather encourage you if you have not yet done so to check out the session from Denver there is a description from here and you'll have some fun I assure you that and you'll learn everything about PhoneGap oh cool and how does it all can work together so it all works together there was kind of how it was working in Denver still we have the mobile app generator generate the app, put it on the phone done so if I want to update man, what do I need to do yeah, what you would have needed to do is you would need to generate a new mobile app, put it in the new folder push the update, we are at the Apple store and have users downloaded manually through the Apple store but you know, if you just want to promote something that's pushing a whole update just because you want to promote your party tonight is probably not what you want another possibility was like services and you can do this you can just set up your Drupal site to connect to a server so certain things in your mobile app need always network connectivity that's working without problems so you can really use all your skills you have in terms of services in mobile etc here as long as it works in the browser it will mostly work on the phone with some little exceptions but still it was not enough well we really like it that you don't need a network but we still want to push updates when users are online and this is kind of how it's working so you generate the mobile app you then pushing the mobile app to Amazon or another cloud service that allows you to download via HTTPS for example because we are expecting quite some traffic for the application which is still a little secret you could use for example the Amazon cloud-trans service which would then allow you to kind of have it really fast everywhere in the world but here we have this Amazon S3 and the iPhone can download from it and that's like working like an awesome synchronization so there's an MD5 checksum and many of the change files are really transferred so you don't have problems with like big downloads after you've initially synced so and how it's working is the app is when the app is registering for the push notifications it's also doing a very little ping to the S3 and checking is there a new version available and if yes then it says okay let's prompt the user and download it so periodically we check and the best event to do this is to check when the device gets ready PhoneGap has a device an event on device ready and when you're using that that's mostly the best because when the user starts up the app or resumes your app you'll be able to kind of check if there's an update available obviously only if you have network so and another event then obviously is when the network gets available so let's say the user's has a main, has no network but then he gets into a region where he has network again app can see oh there's an update available and prompt the user so and then it's downloaded to the iPhone again and initially once you need to do this with the JavaScript app and so you once export it to a zip do it like normal, like in Denver and then you can synchronize again and again and again as often as you want and this is now it's working with push notifications very easy you're just sending a push notification to the iPhone the JavaScript app is prompting the user again the user can download this is really like well we pushed an update there's a party in three weeks come check it out so I'm just adding new slides and then run this module and then it automatically will send to the Amazon S3 because it has like a S3 schema and also a push notification is sending automatically to the mobile device yeah and it's kind of very easy to make updates but what you really need to be okay so let's summarize what we need to do so the Drupal website can go to the app store first of all you need to create your application theme and use such kind of scripts and plugins such as iScrl roundabout simple dialog and scroll to plugin to make site we have like native iOS Android application and you also need to install and configure mobile app generator module and you want to do this so and then we got this Mac extras unfortunately we were not able to publish it before Drupalcon there's some bugs in the code that need to be fixed before we are able to publish it but please check out our blog on Traloncom blog we are also on Drupalplanet so you'll surely get noticed can also subscribe here at the end we will give you this application and the Mac extras will make it very easy to add the synchronization support there's just one little JavaScript needed next slide please thanks a lot but before we get to that as I already said you once exported we are public for example Mac takes this put it into phone gap and then afterwards to S3 updates S3 in this case is relying on the AVS Amazon module and on the S3 file backend module but if you have a crazy service or you need it for Akamai or something and you have a Drupal connector so everywhere where Drupal can send it's files where Drupal can write files to you can use it with a mobile app generator so then you compile the code into a native application using phone gap and if you're using the synchronization support there's a little change from then we're here you're putting your app into the WUW static directory and the loader of the Mac extras to the WUW directory the reason is if you have the loader and there's a problem with the files for example the downloader is corrupted you don't want your app to break you just want to download it again with the last stable version that was okay and so there's this loader that's just checking that everything is still fine from the downloads safety measures so then you're updating your content obviously you have lots to say and you push your new updates via Mac and but just one caveat you can update JavaScript via that because it's included in your app obviously but if you push bad JavaScript you can under certain circumstances break the downloader and such break the in-app update functionality so I wouldn't kind of push JavaScript via the content updates service I would really do a new release on the app store then another nice thing is what you could do you could just you have your app like 20 MB so it still fits into downloadable via 3D and then you can push more content when the user is on a Wi-Fi so you can have a very slick application on the app store and then just get down more content when needed yeah it's cool and also you need to it's better to install a smart app better than your mobile website so your users know that there is a special version of them you have application on iOS or Android market and and now please I present you the bell so we had several slides I think that was 52 dollars 52 euros and we had some more which was like 36 euros and then you had Kaiser Schmann you had sauerkraut you had some Rothbard Verster so that's a total of 153 some cents so I assume you want to split the bill or we'll get there with collecting money what I want to questions questions please no questions please into the microphone when the application is generated is it complicated to get it on the app store no phone gap or codeva applications are perfectly accepted and really phone gap built if you want to sell for it but downloading all the SDK et cetera just giving you the final IPA file which you can submit to the app store right away phone gap website allows to generate automatically several versions of the application for iOS Android and Bada Symbion Windows 7 if you are using their cloud service more questions demo there's no question we use the time for a little more demoing let's refresh it this is kind of a pop up that's starting up at the beginning we probably also just publish it so it's online later with the blog post and then you can click you can drag, just drag a little then we have your orders here you have little boxes where you can upload and the score was everywhere the menu at the bottom yeah menu, where is the menu okay there's still bugs oh yeah, here is the menu I mean that can happen obviously you don't get this markings when you're actually on an iPad here and the menu doesn't like us today so we do it without don't download it again just show a little more of the dragging the carousel is very nice you can drag it with your hand or in this case with a mouse it's actually working okay if you are doing it touch screen yeah so we really have some more time I can't believe there are no more questions you can ask everything about mobile it doesn't even need to be totally to the session you're welcome it is not yet available that's why we are showing you the Bavarian restaurant instead because we were thinking like oh it's not yet out it would be a very difficult thing to show the branding it's currently in the submission process so we are sitting in the restaurant there and we were just thinking what could we do and we were eating like Bavarian food and suddenly we got well we'll do a restaurant yeah okay so the question was if you're setting up your mobile app your mobile app and this mobile app should have commerce integration that means that you can publish things can purchase things and you need to take care of all that security so what in this case I would do I would kind of do a link between the application that's running here on the phone and your website because for all of this processing they usually need to be online anyway so what you can do is I would just forward them to your website and do the purchase there I mean you could obviously do all of that kind of in-app but usually they use some native commerce things because with PhoneGap it's very easy kind of to access native functionality I've written two or three plugins which we'll also publish with that that are kind of allowing little things and nice functionality here for example we've not shown that but the PDFs for the menu we don't have any PDFs here now I would allowing to have a little child browser as an e-book reader and there's little such thing but I guess when the app is out we'll talk a little more about it in the blog post then I think you also need to you can use it you can make it different ways maybe with a services module or backbone.js and what you also can do is just embed some real HTML from your website to be shown mobile app but it should be do secure so use some tokens and some authorization some kind of stuff like this yeah further questions please can you have also input forms not login but for example that you go to page one, page three with the iPhone iOS format I did get the question could you please repeat sometimes you have to select HTML5 to select content is that possible as well yes it should be possible I do think that Kadova has clipboard support at least the webkit has so you have the usual javascript functionality available it has support for the clipboard as you have access to the javascript you can program it with mobile app generator something won't get you at something like that you would custom code that and are there plans for all the G query tools you mentioned to create a beautiful module for that we are thinking about it I still have to supply the patch for the roundabout because roundabout before was not working really good because the text was resizing with normal javascript and when we just changed this to jQuery it was like this smooth that it's really it's really hardware accelerated resized and that worked much better I don't think we have so many plans yet but very much a big Drupal contributor has also working on core etc so he's probably one to fulfill your wish at some time in the future thank you so if you have any ideas any projects you can submit we will commit and you will get the list of the one of the committers for the Mac module you are welcome but I think it would probably make sense just to put those libraries that are not yet having Drupal projects into little vipers that allow this functionality to be used a little more easier than having to work with all of that there is a question please there was a device detection module that WURFL so is that needed in this scenario no the device detection module was really only needed for your normal mobile website I mean for people not using your app and that's kind of the beauty of it you could for example have a normal website with a responsive theme or an extra mobile theme and then you have certain pages that you want to export to your mobile app that you want to have always available and you want other pages that should link the user to the website experience so you can mix it all up and then you just have to select the right pages to export and those pages that are not exported will directly link the user back to your completely mobile website and that way you can very easily connect the best of the mobile world that's the best of what you are doing currently kind of with your mobile website anyway okay thanks sure hi are there any options for mobile caching so for instance you have a news website which need an internet connection to fetch news items I think you can read it in the subway or whatever is it possible well I mean with Mac now you could just extend it a little I mean we can also export files really every file you want to have exported you only need to do file save path on it as soon as you do this somewhere in the page generation code what will happen is that it's very easily possible to export any content so what I would do in that case is I would take services I would statically take the JSON from the services and I would save this with a mobile app generator and then I would load this JSON so if you've got an update to push in your news items you would just push this JSON file and your application would load the new JSON things without having to be online and you get automatic caching through this content publication service okay thank you we can take more questions any questions more hmm I think first of all application should be designed by a good designer so they have a special design guidelines how to do it and it really I need to be looking like IS application so the process of the submitting is very long Fabian could tell you a bit more about it so if you want to publish to the App Store especially Apple has some guidelines to follow that's true Android and other platforms are usually a bit more light on that so probably it's the most difficult to get into App Store according to the amount of Cordova apps that are on the App Store many of them having in app update functionality I'm not assuming any problems there so the question was how hard is the application process for App Store and what guidelines need to be followed further questions please anyone yeah so the question was if there's a experience to switch theme or to have responsive design the answer is as always it depends a responsive design can work very well if you're not willing to change your content but you're just kind of so your copy remains the same but you want to still give the user a different experience and you want to hide some blogs that are really not necessary on the mobile experience in that obviously the user will still download these blogs because it's just responsive and you're just hiding or reordering etc on the other hand if you're creating a true mobile theme you can obviously optimize it very much so what most people end up doing is if they're doing a true mobile theme is that they are also using custom copy for that so with this custom copy you will have not only the user experience from the design tailored to the user of a mobile device but also the content copy and that's kind of what I would say in that respect last question your chance to get an answer for me or for me time is running 30 seconds ok we actually had another slide we need to show it just top secret slide you'll never guess come on take the survey great session I hope you enjoyed it thank you for coming thank you for coming very much