Hello. Good morning. I'll make a few quick assumptions here. Most of you are Android developers, right? Right. Quick show of hands. How many of you are building apps for consumers? How many of you are building gaming apps? A few. How many of you are building apps for devices? Great. OK. Quick introduction, as well as background in terms of what we are going to be talking about. My name is Praveen Shriyamatsar. I play the role of a Microsoft Regional Director. This is a Microsoft-sponsored keynote. There is a bunch of stuff that we'll be talking in the Microsoft space. Obviously, targeted to Android developers. I'll be, along with me, there is Abhishek. He's a technical evangelist at Microsoft. And we'll be quickly walking through a bunch of stuff that we think is interesting in the Android development space in terms of what we are doing. A few quick things. In terms of what we'll be talking from an agenda perspective, we'll look at how do you take your Android apps and light it up. One of the things that we know, obviously, is you build apps for Android. But most of the apps that we want, most of the apps that we desire, are all connected apps. They are not apps in isolation. They are not apps that just live on your devices. But they are things that are connected to each other through some kind of a backend system. And that is the whole cloud-based environment. So one of the things that you do is you can light up your apps through a whole bunch of cloud-based support. And we'll quickly take a look at what are the kind of features that you can use to come back and light up in terms of working with your Android applications. A bunch of ways that you have in terms of developing for Android. High-level three ways. You have native. You have hybrid. You have mono, which is C-sharp on Android. We'll quickly introduce you to this. But the thought process is most of us will probably be looking at native. There are specific scenarios, wherein it would be interesting to look at phone gap. It would be interesting to look at mono kind of stuff. And we'll cover that. And there are a few sessions later tomorrow as well, wherein we'll cover that in more details. But the assumption that I'm going to make here is that a lot of us will be looking at primarily Android applications. And in this session, we'll take a look at how you go about lighting up your Android applications. Now, what do we mean by lighting up your Android applications? We build an app. We deploy it onto the Android device.  It could be a game. It could be a task list. It could be a to-do list. It could be an enterprise application.  It connects to your device. It gets information from your device. It can get location awareness. It can get details about the users. It can connect to your contacts, so on and so forth. But for it to be useful, most applications also end up using a bunch of cloud-based services in the back end. You use a cloud-based service. You sync up your information, at the very least. Most of us, at some point of time, start with a device and then move across multiple devices. We start with an Android phone and move to a different Android phone. In pretty much most scenarios, we would like to start some work as part of the phone, as part of the Android device, and then move it on to the desktop, move it on to the web, move it on to other devices as well. So being connected, wherein we can take the context of what we are doing across multiple devices is something that becomes quite useful. And one of the things that supports it is a cloud-based service, which allows us to come back and add some feature like that. And that is what we primarily mean by lighting up your Android applications. Let me quickly jump in and show a demo. Microsoft provides a back end service, a cloud-based service, which is Azure. Azure is, I've just logged into the Azure Portrait. When you log into the Azure Portrait, you get a bunch of services in terms of what you can do.  You can host a Linux box. You can host a Windows box. You can host any operating system that's supported as part of the cloud. And you can basically come back and create your own server in the cloud and get started.  But the fun part is not the machine that you have set up there. The fun part is more in terms of what we call as pass devices, platform as a service. So you can get infrastructure as a service, which is very similar to coming back and hosting a full-fledged machine.  Let me quickly walk you through one scenario of that.  You have websites, virtual machines, mobile services, cloud services, SQL databases, storage, Hadoop, HD inside services, media services. And all of this is something that keeps getting added on frequently. Machine learning, artificial intelligence, streaming, event streaming, notifications, all of these are services that are going on being added on a regular kind of a basis. One of the features is what we call as mobile services. If I start off and say, let me build a new mobile service, I will give it a name, droidcon. I will create a new SQL database for it. As part of the back end, I can use .NET or I can choose to use JavaScript itself, which essentially means it gives me a Node.js-based infrastructure as part of the back end services. Droidcon DB. So what I'm essentially doing is I'm creating a mobile service. A mobile service is a service hosted in the cloud. At the end of it, you get a URL. I'm coming back and configuring this mobile service to use some kind of a data store at the back end. I'll quickly talk to you in terms of the choice of data stores that you've got at the back end. And I come back and configure it. The moment you set up a mobile service, it takes a few minutes to come back and create the whole thing up and to commission it. You also get a quick start template. So you can come back and use a quick start template, wherein you can come back and say, this is my droidcon. You can create a table, create a sample table there. You can download a bunch of sample code, and you can come back and say, I want to target it for Android. You can download the sample code, open it up as part of your Eclipse, deploy it, and get started. So you have a quick getting started kind of a kit that you can use sort of out of the box. We'll give it a minute to come back and commission that. So mobile services essentially come back and become the back end for your Android applications. You can build any kind of an application. Like I mentioned, you can build a gaming application. You can build a to-do task list. You can build an enterprise application. The sample template already has the structure in terms of how to connect to it. All the services that I provide are restful services. Technically, there is nothing that you need to learn on the Microsoft platform to use this. You continue to use the platforms that you're comfortable with. You use Node.js on the back end. While I showed you a sample with SQL Server, you can come back and connect it to a MongoDB. You can connect it to a MySQL. You can connect it to an Oracle if you care. You can connect it to any kind of a back end. You can also use NoSQL kind of a setup, where you can come back and say, I will either use a blob storage, or I'll use my own custom storage, a table storage kind of a stuff, and store the data. And it automatically connects to your Android app as part of the front end. And you can leverage the entire set of services for you to come back and work with. It didn't get created, did it? Just no. Not sure what happened. Let me just create one more. So in all instances like this, wherein something goes wrong, obviously, I have a backup. So while it gets created, I'll walk you through that. But once it gets created, what you essentially get is you essentially get a project like this. You can come back and configure, saying, for this project, do you want to choose a platform that you want to use it on? You can choose Windows, iOS, Android, HTML5, JavaScript, Xamarin, PhoneGap.  And the moment you come back and say, I want to target one of these platforms, in this case, I've chosen Android, it gives you create a new Android app as a starter kit. So what you essentially do is you come back and say, create a table, which is a sample table, and download a complete project, which is connected to the backing service. So it gives you the whole project as a starter kit. You can download it, open it up in your Eclipse. And this is essentially what it looks like. So it gives you a setup where you can come back and start building out a to-do application. Now there are one or two important parts as part of this to-do application, which is how the connection happens. As part of this application, if you notice here, we come back and define what is the mobile service client. So when you come back and create a mobile service on the back end, you get a URL. You configure that URL. And every URL is also associated with a key. So if you take this and say, manage keys, it comes back and shows you the application key and a master key. Take the application key and configure in your application.  For me to connect to this restful service, I will configure a URL and I will configure an application key. Given the fact that this app has this application key, it can now come back, connect to that, and call a bunch of features that I want to come back and start working. I will take this. I will attempt to deploy this. So the moment you come back and connect to a back end service like this, like I mentioned, all the features of the back end are just restful end points for you to use. You can use these restful end points in terms of any of the features. You use the restful end points in this example. As an example, we are using the restful end point to come back and query for the data. So we are running a local query which says, fetch all the data which is of a certain type. So in this case, because it's a to-do list, we come back and say, fetch all the data wherein the task is not yet completed. So an incomplete task is something that we come back and query for to come back and fetch. This entire call to the restful service is something that goes back to the mobile service. The mobile service is already configured for this. It takes a look at this, internally connects back to the underlying data store, fetches all the data for us, and comes back and shows it up. So I get the mobile service app here. Give it a minute, it will just finish it's refresh. Obviously, a start-up kit is something that is more like a shell. It's just for you to get started. Basic crowd operations have been built in. You can insert a record. You can come back and update a record which says, task is completed or not. And that's about all the functionality that is there. But we quickly add a record and show you, in terms of how you can come back and take a look at this record on the back-end part of it. One of the things that we automatically have is the storage services. Because one of the first things that you would like to do is to come back and say, if I want to work with an app, it has a bunch of data. The data can be configuration data. The data can be user-entered data. The data can be data that's collected. But one of the first things that you would like to do is to come back and collect data and start storing it as part of your back-end services. The next few things that you would like to do is you would like to come back and add authentication. You would like to come back and say, you know, I want people to use a Facebook. I want the login. I want people to use a Google login. I want people to use some kind of OAuth login. You want to come back and manage membership and permissions and stuff. And then you want to take it forward in terms of adding on additional business services. When you now come back and say, this, I will connect to some kind of a logic at the back-end. Wherein that is where all my business logic resides. A few things that you get as part of the services is you get authentication services. You can come back and choose what type of authentication you want. You can choose to have a Facebook authentication, Google authentication, et cetera. You can also choose to integrate with a corporate authentication. So if you want active directory kind of an authentication, wherein you want to say, these mobile devices, I wanted to reside as part of an organization. And I wanted control by the organization. Wherein from the organization's perspective, I want to say, this app, wipe out the data from the server side. I can come back and consider these devices to participate as part of an active directory authentication also, as part of the cloud setup itself. So you have the choice of making it completely social and open. And you have the choice of coming back and connecting it to an enterprise kind of an environment as well. So both of these are a choice that you get in terms of the services that are there. Wow, it's taking quite some time. So assuming it will put in the data, and hopefully it will do it in the next minute or so, I will show you where the data appears and what we can do with it. All the data, when you come back and take a look at your mobile service, you see different sections. We see data, API, scheduler, push, identity, configuration, scale, et cetera. So if you go to the data section, the table that we created there is represented here. In many ways, this is like a view. It's a view into whatever your underlying data storage is. And it comes back and shows that up. If you open up this view, which is your data, you have scripts, columns. All the columns that you have is something that can be configured here. You have the choice of adding dynamic columns. So if you configure this to come back and say the column list is not limited, from the front end, if you pass a JSON object which contains two more columns, those two columns will dynamically be created for you. If you use a set of columns that already exist, it will come back and continue to use the columns that are there. So it will come back and dynamically create the entire table structure for you behind the scenes. And you can allocate permissions in terms of saying what are the kind of operations that we can do from a permission set perspective. We can come back and say that anybody with an application key can insert update record. Or we can choose to say only authenticated users can actually perform these operations. So the moment we set up that only authenticated users can perform these operations, we need to set up some kind of identity service at the back end. And when we set up the identity service, it will come back and ask us to log in using some kind of a credentials, just on which we can come back and then work with the entire set of data. Let me quickly try this again. Now, you got a set of data services at the back end, which means that the moment you build your Android applications, you get a table storage at the back end. You can come back and now start writing to the table storage. That entire table, which was a SQL Server Database or a SQL Server Table, is exposed as a view to you. And the view is exposed as restful services. So all you have to do is to come back and consume those restful services in terms of adding on the data. But along with that, you have a few options. Step one, you have a script section. Remember, we came back and said we will use JavaScript at the back end. So you get a script section which works very similar to a trigger kind of a stuff. So you can come back and say, on insert, on update, et cetera, I want to perform. But this is already assuming that you have called the record to be inserted into the table. And then this event gets fired. In the instance that you don't necessarily want to store it into SQL Server. And you come back and say, I want to now store it into MongoDB. I want to store it into my own blob storage or somewhere else. You also have a section, which is the API section. So in the API section, it is a complete web-based Node.js instance, wherein you can come back and say, I will write all of these services here. I will write the entire API service here. And I will now call this endpoint. So note that you have two choices. There are some endpoints that are automatically created for you for data. But you can choose to come back and say, I will create my own custom endpoint. And I will call my custom endpoint, wherein I will choose what database I want to connect, what service I want to connect, where do I want to store the data. Here you could choose to come back and say, I will connect to a Dropbox service. I will connect to a Microsoft Live service. I will connect to a Google service. And you can come back and say, these are the services that I want to consume as my Android application. As part of this, you also have identity. Identity is something that you can come back and configure, where you can choose to say, I want to work with Facebook settings. I want to work with Twitter settings. I want to work with Google settings, Windows Active Directory settings. All of these are inbuilt providers that are automatically configured for you. All you need to do is, for each of this, you come back and register an authentication setting there. They give you a key, an application key. You configure the key here. And you come back and say, using this key, I want to provide authentication. It will come back and say that for any operation that you want to do, I will pop up that service, ask you to authenticate, and only then go forward. Let me quickly see if my stuff actually inserted the data. Finally, I got a to-do list. It doesn't want me to do much work. So whenever I put tasks, it doesn't seem to be saving it. Now, if I go back to this, you will notice that the record that I inserted there is available to you here. So like I told you, this is the view into the underlying database. And you can come back and quickly connect apps on your local Android device to a set of services as part of Azure, wherein you can come back and configure data storage, identity, notifications, and a whole bunch of other services that is provided. While I configure this for authentication, any quick questions is there? So what do you mean by real time? In the sense that when you call the API, we are calling the restful services in the cloud, and it's storing in the cloud. Right now, I'm not even working offline. So in a sense, it's real time. You have to configure it to work offline. We've got a sample wherein we come back and say, this is how you configure it to work offline, and then sync it up. What's that? So quick note here. In this sample app, it does not work offline yet, which means it is like a web application wherein whatever you're doing is only being stored on the server. So it's stored on the server wherever you go and open. It opens from the server, which is one of the reasons it's going so slow. We have to pull it. However, in one of the samples that we have, we do show how you can work offline. So in offline, what happens is we store it offline, and in the background, we run a sync task. And whenever the sync is successful, it pushes it online, but it's also available offline to you. Does that answer your question? So as it handles conflict resolution, we have a structure wherein we give you an API and a bunch of calls using which you can handle conflict resolution. But also note the conflict resolution is limited to some kind of a storage. If we come back and say you use the full storage, there is some amount of conflict that we can handle here. But obviously, if you write your own restful service, then we just give you a framework, and we expect that you will figure out how to handle the conflict resolution. Come back again, which part of it? You will have to do it. Don't worry. Let me quickly make a change and run another deploy, which will take a few minutes. And then I will quickly talk to you in terms of the next set of features that are there. Remember, I told you about identity. So if I want to now come back and say, I want to add on identity services. Like I told you, if I want to add on a Google identity services, I go to accounts.google.com. I create an authentication there. I create an API key there. And I come back and configure that key here. So under identity, when I have my set of services here, notice that I set up my Google settings here. My client ID and my client secret. Once I do that, if I go to my data, and I define permissions as requiring authentication. So the moment I define that it requires authentication, and I configure in terms of coming back and saying, I want to use the restful service, it will now come back and pop up a dialogue which says, because you need authentication, I will choose Google services. I will pop up the regular Google dialog box. You log in with your Google account. I will take that and authenticate you. So integrating additional services, like authentication, like push notifications, like data storage, like NoSQL storage, et cetera, all of that set of features is provided to you at the back end. So with this kind of infrastructure, you are primarily looking at a setup, wherein you're building out your Android application, and you're looking at leveraging a whole bunch of features that's already provided to you as part of the Azure setup.  All of those are built in by default as part of the past services. Again, all of that is configuration. You can come back and choose to say, I want to scale this up, I want to go to the next bucket, and you can dynamically scale it up. All the billing is per minute. So you can choose to come back and say, I have a Thanksgiving kind of a time, wherein I have a lot of activity, I will scale it up, post that, I will come back and dynamically scale it down. So you can choose in terms of how you want to scale up and scale it down, your backend services that you come back and work with. When this deployment is over and it comes up, basically what you do is, because I've added on authentication, it will pop up with a dialogue for a Google authentication, and only then allow you to work. Notice that I came back and said, for read as well as insert, I need authentication. If, as an example, I had come back and said, I need authentication only for insert, it would have come back and said, read, I will allow the moment you have got an authentication key, a client application key. So the moment you're configured an application key, you'll be able to read, but the moment you come back and say, insert, it will pop up a dialogue for you to come back and say, I want to authenticate you, or I will give an error because insert requires specific permissions. So very similar to all other setups, it uses a standard restful metaphor in terms of defining what are the kind of permission sets you have and how it works as part of the backend set of services. Quick note here, we talk of a bunch of services to get you started. One of the first things that you need to get started is you need a mobile service, where in you come back and say, this is where my mobile application connects to, it's your entry point. And typically we talk of authentication services, notification services. Notification services as an example, you can come back and configure saying, I want to do a notification with a bunch of services. So if you take a look at the mobile services push, we have a configuration called notification hub, using which you can have Windows application credentials, Windows phone notifications, Apple push notifications, Google Cloud messaging notifications. So essentially it's a hub, where in you can come back and say, for any operation here, we will deliver notification through different services onto those devices. So the moment we send out a notification to the Google notification hub, it is automatically transferred to your Android device, and you get a notification in terms of something happening. You can use it for backend jobs, you can use it for calendar alerts, you can use it for location based alerts, you can also use it for simple chat or alert kind of notification. Again, all of these are services that are built and configured.  It seems to be taking a while to deploy. I'll give it a while to deploy. In the meantime, Abhishek will quickly come up and show in terms of a bunch of other services that we have. Like I mentioned, one of the things that you should keep in touch with is the fact of the number of audio services not on Azure yet. One of the things you have to keep in mind is the number of services that we add on as part of Azure. It's something that even internally we are decently surprised wherein these services are rolled out on a regular basis. You have media services which helps you come back and stream video from the server kind of stuff. You've got event hub notifications wherein or even streaming support which is a service by itself. You have HD Insight which is a Hadoop service and Azure also has a marketplace wherein it allows multiple different vendors to create their own services, attach it onto the whole Azure marketplace. Few things quickly to note, the entire Azure infrastructure, Microsoft has come back and defined that it will be open source in terms of working with other languages. As an example, you've got a PHP SDK, you've got a Python SDK to come back and talk to Azure set of services. You want to come back and do an Azure maintenance. You want to come back and create your own services. You want to come back and work with any of these services in the back end. You don't need to use a Microsoft specific language to come back and interact with it. Obviously Microsoft languages are also supported but that's not a requirement for you to come back and work with something like an Azure kind of platform. Given where we are, given the whole set of services that we have, we do think that we are only at around 20% in terms of the kind of services that we can provide. So a whole bunch of additional services is something that we are looking at in terms of adding one as part of the whole Azure infrastructure itself. Yep. Thanks Praveen. Cool, so quickly I have hardly like 10 minutes more so we'll quickly run through it. So you saw Azure mobile service to answer your question offline sync. I think tomorrow, 3pm, Nish will give a session on that so you can attend that, right? And it gives you very easily you can configure that as well so it works like gem. Moving on, a couple of things which we want to talk about is probably a very interesting one which is media services. How many of you have developed a media app where you have set up a stream server back end and streamed video through that? Very few. Okay, so that's something which we think in the future you're gonna know it's gonna go on the rise. So video contributes to around 57% of internet traffic, right? Thanks to Netflix, thanks to Indian Big Flicks, YouTube and so on. So which means that a lot of amount of videos is being streamed through internet. So everyone can create videos, even you can create videos, your apps can have videos. It's a very simple thing. Now imagine if you already have an app and you wanna attach a small video to that or you wanna do a live streaming. That was something which is non-thinkable as a developer, right? So it's very much possible now. To give you some more stats, these are some real stats which is, till 2013 you had like 152 million traditional televisions and now you see connected televisions and streaming gadgets combined together. It's kind of gonna take over by 2015, the traditional television, which means people are more gonna be app users and they would be streaming media content through your app further, right? Now, looking at all those things, here's some more stats. So viewers who consume on four, you can say four devices, maybe your tablet, your phone. How many of you have more than two devices? Devices can be a PC and a phone, only few. How many of you have two smartphones? Okay, so you understand that, right? So generally I play around with gadgets, so I just got my OnePlus a few days back, but I have all the gadgets and what I end up is, of course the updates, that's the major thing, all the devices updates and it's your lot of bandwidth, but apart from that, I am free to watch a particular video or my Netflix subscription, which I have through a hack to watch through, right? So now your viewership, I have been like, when I had a single device, I was good with 10 GB of my bandwidth data, broadband provider, but now I kind of cross 80 GB very, very easily, like on the 20th of the month, thanks to all these devices, which clearly signifies that there's a lot of movies, video content and stuff which are coming up, the bandwidth's going higher, speeds going higher, 4G's come, so which means you have more people actually viewing these videos. And as an end developer, when I talk to any developer, what's, you know, how do you rev up this app? How do you make this app more interesting, more interactive? Okay, you have an ads provider. What if you put a video ads? What if you build a media app, media content into that app somehow, right? So these are some of those challenges faced by Indies, which is mostly the infrastructure structural costs. So when you are an indie developer, that's one of the things, then managing those costs, managing that infrastructure, monetizing the content is again a big, big thing. Digital rights management, in case if you have a secure content, which you want to save the stream for, and then security, these are some common issues, which basically our media services resolves it. So this is how it looks like. Azure is big, Azure is pretty big. You should, mobile services is a small, small part for mobile developer, quickly start with the backend, but we have a huge scalable storage, huge compute, which you can use and database and fabric. So basically you can use that layer to store all your video content, and then use the streaming engine, which we have as media service, where you actually securely ingest the content, and then you encode, if you want to encode, the common issue is, you don't want to be watching a media, which is a single bit rate media, right? If I start watching a YouTube video, and imagine if the YouTube video is not smart enough to adapt the stream itself, I'm gonna stop watching it, especially on the move, on the 2G connection or the 3G connection, I would not watch it because it'll show some lag and stop and then kind of buffer and then start playing. You want to get rid of that. So you can encode your media into multiple bit rates here. So it's very easy. The single media stream, you put it onto the cloud, you ask them, I want three bit rates, you want to generate HLS, or you want to stream on iOS, or if you want to generate, you know, for Windows devices itself, you can use anything what you want, right? So you have all those options over there. And also we have added live ingestion, which means you can do a live streaming. So if you have a camera device or mobile phone, you want to do a live stream through this, media services, you can do that. And one more thing is for enterprises, sometimes you want to content, like for instance, if you run a training academy and if you want to save your content because you are not only targeting Android phones, but you're targeting HTML5 websites as well. Now the common question comes is, how do I secure my content? AES encryption saves it from third party, as in third person getting that stream. But still, how do I configure settings like a user should only watch this video in this particular time period? I can set up all the DRM stuff on the backend, but this guy gives you all those DRM activities, you can use the play ready DRM and configure per user, how you want to set the user to access the videos and so on. Okay, so quickly let me go into the demos of the media service. So what I did is, I knew this thing that generally the media streaming and stuff doesn't work really well here. So what I did is I created a video which I'm just gonna play, it's basically done on the OnePlus. So I just created a small stream, I'll show you that as well, how do I do that? In fact, this is the web URL, if you can see which you can't, let me make it full screen. That's how big this is. So I'm accessing on a browser on Android here and it's a simple HTML5 stream which is streaming, it does have our audio as well and this is just to show that we have created our own player frameworks for each clients, for Android, for iOS, for HTML5 and you can do a lot of cool things like captions, right? So you can see it in Spanish as well as in English, so as a user you can switch between them. You can have a decent playback, so been switching from Spanish to none. You don't see any captions coming in here, right? And if you see, look at the portal, how difficult or easy it is. You similarly, as Praveen showed you, there's a portal and you have option of mobile service, cloud service, media services here, right? You can quickly just go ahead, create a new media services. I've already created a namespace so I can just use this. You see content protection. This is what I was talking about if you want to really save that content. This shows real-time stats of how many streamings of the video has been happening and so on. And if you have any content, if you want to upload a content, just go ahead from local storage or from your Azure Blob storage. You can figure a particular video out. I think it works funny. This is one way of uploading a media. You see it's uploading the media content from this hardware to the cloud. It's putting on the storage and then I can go ahead and encode it to the way I wanted to stream to my particular player. But this is not the only way. You can use a Java backend to push this same media onto the storage and do the same task or you can use a .NET backend, whichever you want. So we have the clients for, as in the, what do you say, the SDKs for each of those platforms. So you can use any of those. So till the time it comes here, you can see it's still in process. So it's going to take some time, but this is how you upload that. Once you upload that, you can test the stream right here. You have the play option. You have unpublished option. You want to delete it forever because it will still eat up some storage. This is how you do a normal media stream which you put in there. Okay, so now I'll get back to this while with the next demo. So let me just quickly move forward. Okay, so again, back to the same question, developing Android apps, right? So we talked about native. So Praveen showed you the native one, then the phone gap and then the Mono. So Mono is something which Nishant will cover in tomorrow's session. So he'll take you through how you can leverage Mono to actually create a native Android app. And then he'll take you through mobile service again, little more in detail on how to set up offline sync and stuff. So just to give you an idea as a developer, from Microsoft, you also have a toolkit for how many of you use Eclipse? Eclipse. Android Studio, IntelliJ, IDEA. I mean, both the hands, you guys use both, many of you use both, right? So we have toolkits for that as well, which lets you easily connect to Azure and you can play out with the same services through that. You can directly provision a mobile service from there and so on. And then we have Visual Studio with phone gap. How many use Visual Studio? So very less, I'm not gonna talk about that. But just to let you know, in case if you already have that, we also launched a community edition which is free of cost in Studio 2013 community edition. You can try that. You can, that lets you build a phone gap natively and 2015 has a native Android emulator as well, which kind of beats the SDK, the default emulator, Android emulator in terms of the startup and performance. Cool. So I'll run through quickly rather than, how many of you use a HTML5 hybrid app development? Hybrid apps, hybrid apps, hybrid apps, hybrid Android apps, very few, very few. So I'll skip that part. So we have another talk tomorrow where we'll do hands-on. Then we'll take that up over there, right? So right now I'll just skip that. Go to the next thing, which is. I'm sorry about your past time. Is this? We already five minutes past the ending time. We started like five minutes late. So that means the end now. Okay, I just had a discussion with her regarding that. Is it over? How many of you are interested in IoT? Internet of things. Lots of hands going up. You wanna talk about it? Yeah, sure. Yes, we have two users. We have Dave, Joseph, and people in the team. And the people in the data, we get some amount of data. But when you have data, you can make it from device, that's not good, the patient, other address, device, we have to send them out, et cetera. The amount of data that we get is involved. So as a result of that, we can act mobile phone blocks. Right? Where do you call to make another mobile phone device and say, I wanna call you from this, from this number, from this number? Then you go on one thing to clarify for a fee. On a fee, you can provide it.  And don't lock fees, one thing to clarify. So you need to figure it out, figure it out. So if you wanna come back and analyze data, you'll understand the result of this. And so what, that is practical and easy, but I think we're running into this scenario, where in this argument, data comes from device here. That's a completely different scenario also. So for example, if you wanna come back and say, I want to make a RG for it, I want to do it. And I'm gonna come in and talk about the question, how many people is RG going there? How many people is RG going there? Right? So essentially, coming back and taking a note of RG, RG is huge, but really, that's what one should be. If you wanna do things like, where two people come here in an airport, come back and figure out that they are close to each other. And I love you, but I'm trying to figure it out. You really need to have to monitor and manage all the people in the airport and figure out the correlation about the needs of their students in your time. But it's really important to come back and figure it out when you're actually here. So all of these are scenarios, which we call as IAC type of scenario, which controls this as a personal teacher. So part of it is, we have got a new strategy which comes up in DCA to manage these services. And in a couple of the series that we've covered, we are talking about millions of students. So that's the kind of skills that we're talking about when we want to come back and handle a proper strategy. So just to give you an idea, where the problem happens with the IoT model is when you start using things like mobile service and stuff, and then when you start logging millions of data from different sensors, 10 different kind of sensors, here's an example of that. It's for an enterprise who has 100 different buildings across. Each building has 10 floors, each floor has like 20 cubicles, and each cubicle has like two sensors. And this guy, each sensor is talking to the cloud every second, which means you can do the computation. It's gonna be like huge. It's gonna be like two lakh plus ingestion per second. Now, in such scenarios, using a relational DB is not gonna be a good approach. So that's where IoT Think comes into picture, and we'll talk more about this demo in tomorrow's session. But just to let you know, we have a feature called Events Hub, which can capture tens of millions of streams all in per second. And then we have, for that analysis, we have a service called Analytics Services, which can actually analyze that N number of streams coming through, and based on your requirement, it's gonna analyze and give you the right values. Based on that, you can trigger conditions. For instance, this example, I'm gonna raise. What I'm doing is calculating using the average function, which Stream Analytics gives me, calculating the average temperature of each cubicle. And based on that, I'm gonna take an action to either increase or decrease the air-conditionals temperature over there in that room. It's a simple example, a simple use case, but it helps you save a lot of electricity as well. Similarly, you can switch on switch off lights based on if the person is there and keep track of analysis of all the things, right? So this is more enterprise-centric. We can have lots with consumer market, which can be much huge in size and scale than the enterprise. So with this, I would like to quickly close this. If you guys wanna interact with us, we are right here. You can do that. You can also interact with us on our Twitter handles. And hope to see you tomorrow again. Thank you.