 Okay, good morning everyone. It was nice to see you all and I hope to give you something meaningful in this one hour where you would feel comfortable developing a cross-platform mobile application using something called RoMobile. So the agenda is going to be like this. I'm not sure whether you guys are comfortable seeing this place. Should I go for that? Okay, so the agenda is like, I look at jQuery mobile and I'll try to give an explanation about RoMobile and then get into some demos and a little bit code walkthrough and then I'll show how we use RoMobile for our mobile application called change back the good and then goes on with the question. So just about myself, I'm Balaji D. Loganathan, which is my dad name and I'm founder of a software company called Sprightly Software, which is like three years old and it's located in Saligramam, Chennai, near Haudapane area. And I have worked in Switzerland, I have worked in Australia and Singapore. I have done my masters from Australia and then I have done my pre-instrumentation from Phenomenon University, so if there is anyone from Phenomenon University, I would be happy to meet. So basically Sprightly Software is a Chennai-based company which develops web applications using Ruby on Rails and then recently mobile applications using RoMobile platform. We believe we are doing good when it comes to Ruby on Rails because most of the projects we have done were at enterprise level handling performance bottleneck and things and so on. Okay, let me jump into the topic, actual topic. So many of you already know like there are many new programming languages available to develop every mobile platform. For example, you know like for Apple we have Objective-C, for Android we got Java and so on. So basically there are several languages. Before I jump in, is there any IOS or Android or any mobile application developer? That's nice. So your IOS or Android? Nice. So just nice. Okay, basically there are like many native applications, native mobile applications. There is something called mobile web framework, some of you might be aware of, like jQuery mobile, jqmobi and then sensor touch, jqdutch and so on. What this basically does is it helps you to display your website on your mobile phone, on your mobile compatible phone, mobile compatible view, that's all. So it's not going to do big magic behind this but what's the nice thing it's trying to give you is let's say you have a website for your own company or for your customer and you want to give some extra things that you would see in iPhone or Android kind of smartphones like flipping, slide up and then all this effects which makes iPhone, iPad or smartphone different from normal phones. So this kind of effects, this kind of look and feel along with the CSS is provided by this frameworks. jQuery mobile is quite famous and many websites have adopted it for that mobile view and then next comes this insertage. I don't know which is better or which is lower or something. We just take what we like. So if you ask me which one is good or which one is bad I have no answer for that as long. I believe if you have a team which knows what to do that technology is good to get along with that's my individual perspective. And then sensor touch it looks really good if you happen to see the demo which is from the look and feel from the interaction perspective and all is really good. It's also in very constant development. JQ Touch System, I think they are the one who, maybe I'm wrong, they are the one who lead this mobile web framework but maybe sensor touch for them or I don't know the history somehow their development went down and then jQuery mobile took the lead if I am right. Maybe I like jQuery mobile. Then the fourth one is jQuery mobile. How many of you heard about jQuery mobile? jQuery mobile is really good. I'm not supposed to say that on this topic but while we are talking about jQuery mobile jQuery mobile is really good in terms of performance. So we have just yesterday we tried a mobile application with jQuery mobile and it's like really good especially from Android perspective. In iPhone everything works fine which from a developer's perspective I hate it because when you are developing a cross-platform application you believe that things will work fine on almost all platforms but then in iPhone it's like this and then in Android it's like this so you have to do further to make things work which jQuery mobile tried to avoid. So some of you may not know what is jQuery mobile so it's better I make a quick demo of what is jQuery mobile is like. So this is the page of jQuery mobile and then you can see on the right side like page and dialogues, toolbars, buttons and things and so forth. So this is basically an online demo and let me go to this something called page transition. I hope people on the back are able to see something. So let's go to page transition and then you can see anyone knows how to adjust or shall we go with this? Okay let's go with this. So like the slide and then you see the flip which is flipping. This you might have seen in your smartphones applications and then another thing that we can check is the list view. Content probably would be nice. Like pin box with a number like 12, 0, 4 and so on and then icons. You have some image or icon, text and then something like that. Okay let's click here. See what basically jQuery mobile does is it helps you by giving you a set of CSS CSS and JavaScript so that you can just use it, create a line there include the JavaScript, include the CSS and that's it. You get a view like this on your mobile phone. Okay so you don't need to worry about CSS, JavaScript, why you are creating a mobile application. I don't know what the result means but if you guys feel like asking questions maybe instead of a big discussion just one question means I will be happy to answer that quickly. So does it, when I create my application for mobile so that means like any compact, any screen, does it take care of fitting the screen in any video of my mobile to be compact? Yes. I should be very careful on saying yes. It does at least to 90%. When it comes to BlackBerry or you never know like iPhone always works. Android, yes BlackBerry you have to, okay Windows Mobile it won't work because Windows Mobile 6.5 doesn't support jQuery so you have to write your own CSS and document.getElement all these things so that's the challenge. They have this supported platform you can see. They have this great support and things and so on but to answer your question yes to certain extent. Okay so if you see basically this, it gives you a set of CSS and JavaScript that you can just use it for your mobile application. So let me go back to the presentation. Okay this is just a lame difference between mobile and web. I have a big question. So in web application typically you have jQuery and jQuery UI. The jQuery like that, that's the port and the UI part, the specific part of UI. So here do you have any differentiation like that or is it both merged together? You can come back to an example like jQuery, jQuery UI, jQuery, jQuery mobile but if you, from the row mobile perspective but if you take from phone pair perspective it's also support jQuery UI. jQuery mobile plus jQuery UI so you can do a bit more advanced user experience or interactions. So when it comes to jQuery mobile that's a basic one. Does it provide any UI widgets like you mentioned? It does provide the UI. So even without jQuery UI you can do some... Yes. Mobile web app, massage native app. Basic, if you see the most important difference it's better usability because of device specific. Because you know you can, I don't know maybe in your ear time there may be some JavaScript that can handle the camera, barcode, signature and so on. That's what I have been reading but I don't know if you guys have different opinion you can correct me. But the biggest difference is native apps you have access to the device capabilities like NFC, Bluetooth, camera, barcode. I'll have that list somewhere I will show you. One thing that I would support for mobile web application is it's very easy. Like you use some framework like jQuery mobile or jQuery mobile something like that and then that's it you have your application appearing on your mobile platform. Sorry, smart phone platform. But if you go with native apps you have to do some additional extra work to get things done and then platforms like phone app, mobile tries to reduce this pain and helps you to get things done quickly. When you download a mobile web application, a mobile web app which means you, I mean basically mobile web app is nothing but you use HTML, CSS, maybe HTML5, CSS3, JavaScript to show your web application on your mobile platform. Whereas with native apps you compile the application, create iPhone application or Android application and then you start it to get it viewed on your smart phone application. So that's the perspective I have on this. So basically why we would need a cross-platform mobile application? Like you might have like at least 10 years back or 8 years back the biggest reason why Java was very successful is right once and run everywhere. I think that's the, I was a Java architect but now I was lost with Java. So that line really took me to start loving Java and become kind of fanatic with it. So that same line made us to stick with mobile or phone type kind of cross-platform application. The reason is, the simple reason is let's say you are running eBay and you want to provide eBay application for iPhone, for Android, for BlackBerry and then for Windows phone, Windows mobile and then you want to make use of some native features like barcode or camera or something like that. Then you need to have at least five Android developers, five iPhone developers. Just an example, okay, eBay is a big team so five, I could be a very small number. So at the end you would need this many teams to manage that particular native application and then you can just think about the cost of handling all those things. So the idea is very simple, instead of me having five different set of teams that develop the application with one platform so that I don't need to worry about the maintenance. So that's the basic motivation and then the biggest selling point is single code base. So from the single code base means you don't need to have five set of developers to handle things. There are many developers or players in this field. You can see maybe some of them do native cross-platform, native application. Some just do the mobile web app alone, for example jQuery mobile framework, JQ touch phone gap, Accelerator, Corona, Kony. How anyone use the Kony? I would love to talk to you after this topic. I found they are very good probably at least not the website perspective doing trying to handle enterprise level of mobile application. And then there are many other stuff. So let's take RoMobile for today. Basically it's a cross-platform mobile application. You can use your web skills to write native mobile application, which means like I'll be telling you. And then it's a gem under Ruby. How many of you know Ruby or Ruby on Rails? Those who don't know Ruby or Ruby on Rails, it is PHP, then a library. Roads is a library. If it is like a Java, then Roads is like a Jot byte. For Python, like a library. So maybe my comparison is wrong. But for a Ruby, Roads is simply a gem to get started. And then it follows MVC architecture, which I will explain. Some of the nice things about Roads is like you can execute locally. You have access to almost all device capabilities based on the smartphone. And then you can store the data locally. Basically, if you take iPhone or Android or Blackberry kind of devices, they will be hiring a mini database, maybe SQLite. I'm not sure about Blackberry, but at least in iPhone they have mini SQLite database, so you can store the data locally and play with it. And then you can synchronize to enterprise system using Roads. So this is the most important thing, which I will explain. And then it got access to HTTP where you can consume some JSON or an external API of web services. It officially supports JQuery mobile from the user interface, from the UI perspective. Recently, we started exploring JQuery mobile and then we would be pushing JQuery mobile because it's really possible. The platform supported by RoMobile includes Blackberry, Windows Mobile, Android and iPhone. For Android, they even support 4.x, the Ice Cream Sandwich. And then for iPhone, latest iOS 5, Windows Mobile. This one is interesting. Windows Mobile, they have Windows Mobile 6.5 Professional and then the latest one is Windows 4 Mango. Windows 4 Mango. So they support Windows Mobile device capabilities to good extent but not Windows Mango or Windows Phone. They are still writing the code to support the device capability. For example, if you want to write an application that would access a camera on your Windows Phone, that is not done yet. Blackberry, I don't know, maybe there are some Blackberry lovers here but I really don't like Blackberry when it comes to development. Now my developer's perspective is really painful to match the user interface to get things done and so on but maybe Blackberry Playbook is good because it has an updated operating system and HDM rendering mechanism, if I am right. But to tell you this topic, Blackberry does support Blackberry. Before I go to the next topic, I want to show some demo. This screen, I started the iPhone device from the RoboBen platform and then it started up this iPhone simulator. And then you guys remember, I showed page transition on the RoboBen website. So let's see how it looks. So I click page transition and then click walking and then pop, slide up, slide down. So it's, and then theming effects like this one is, let's go E and so on. So when I click this E, you get to see a theme of yellow, which is gradient and all. It's just we have to change a letter, T, A to theme C, that's it and you get to see this effect. So that's the, basically we should worry about the business logic and forget about UI, but it's easy to say. It's not easy to assume. Most of the products these days are very crazy about UI. Like it's becoming equal maybe these days, ever since this iPhone and smartphones came. And then because of HTML, Pi and so on. List view. I just showed you this on the Take One Mobile website and you have the same thing. I wish I would run the same thing on Android. It's going to take at least one to two minutes even on your new Mac machine, which I feel very sad that I thought, okay, working on your Windows machine would be very slow. Let me buy a Mac and then Mac is again slow. So maybe there has something to do with the operating system line. Here is the thing. Some of you may feel that phone gap is much better. Some other remotes like Accelerator is much better than RoboFi because with phone gap, if you have JavaScript knowledge, HTML, CSS knowledge, you get the application done. And then the same goes with Accelerator. Allow instance or touch if I am right. What sets RoboFi apart from this framework is they are targeting enterprise applications. Let's say you are in a semi-app phone. Just watch what the device, the guy is using to scan a package or some of you might recently fly to Kingfisher. While you are waiting on the queue, they will issue the ticket by taking your machine, asking your boarding pass and bring and then the ticket comes out. Just watch what their device is. And then you also see what the device that most of the traffic police or the policeman is carrying. Mostly it would be Motorola. RoboFi was bought over by Motorola in order to target the enterprise level markets. So the policeman carrying the wireless device or the one that you see in the airport, that's a very small set. Let's take a better example. There is a company, this one, Schindler. How many of you know Schindler? It's a very famous company. Most of the lift in the buildings are from Schindler. So let's say, I mean, Schindler is using, they have been using Windows Mobile 6.5 devices to give it to their service engineer so that the service engineer would go do some work, scan something and then come back and so on. So that device is Motorola, the operating system behind that is Motorola, it is Windows Mobile 6.5. And then you take other industries like RFID, RFID or like the goods tracking or shipment tracking. Most of these devices were manufactured by Motorola and Motorola would be behind this. One of the reasons Google bought some part of Motorola is their domination in the retail industry, retail or manufacturing or enterprise-level industries. So this is very important. If you want to develop application that doesn't interact with camera, barcode or doesn't have to do with enterprise application, better go with phone cap. Faster and you have more control but if you are targeting enterprise-level companies then it is better to stick with mobile it's like this enterprise company is in turn fund Motorola and Motorola fund the developer team to get things going on and so on. So one example, this is the recent project we have done using RoboBuy. Basically it uses this device is not out in the market. This is an Android ET1 tablet with an inter-world operating system and then this is a cat dryer. I'm sure many of you have seen this. What it does is I have this device. I go to a shopping mall, let's say next and then I scan your washing machine and then obviously everyone likes Comparic. How can I compare Panasonic washing machine with the work pool and then what the cost different what the performance difference and so on. So you do that and then you make a choice like I want this washing machine, I want vacuum cleaner and then you say pay. There is some button over here. Either you can pay by swiping the pretty card on top of the device or you can pay using the cat dryer. If you press some button this cat dryer will automatically open. So this is one application that we have done using a RoboBuy platform. And this one is like a typical application The service engineer take this device with him goes and do some maintenance work via lift or for some equipment. Then he can some passcode. He get the signature from the customer saying okay the repair has been done or corrected something like that. So that we have done. As you can see this one is iPhone. No this is not iPhone. I don't know what is this. We took this screenshot from Instagram. We basically developed it for Android and Windows Mobile. So this here we learned a lesson while developing RoboBuy. The hell of maintaining the CSS for Android and for Windows Mobile. Windows Mobile 6.5 is a greatly operating system because it doesn't support the cool things that you would be enjoying already. So you have to write your JavaScript using document.getElement. And all these things basic JavaScript so that we have done. Came up with this application. Basically Android, iPhone and then Windows Mobile. There is another project we did. This one is a very simple application for an after-day company. WinCore, WinCore Mixed. You might have seen this. If you go to reliance these days you would see the device would be having the logo. WinCore Mixed is a retail industry where you buy some items, you enter the cash and the bill will come out. So we tried to automate the process. Reduce the time spent on this process by developing an application using RoboBuy. And this one is again Android. And you can see this is a Samsung tab. So we deployed it on that one as well as on Android 81. And then basically what it does is like if you buy some item you press about or total update we will talk with the services in Tranquire and I got the transaction and so on. So that's one example. Okay. So does it, so if you look at PhoneGap or any other similar framework. So it all supports those plugins and all other cool features where I can extend the basic functionality spread by that platform. So in RoboBuy also can we write plugins or extend the functionality which is provided by the basic framework. Yes. There is a gap hold or like a template generation that helps you to write your wanting functions. So let's say we face this problem for one of our applications we are ready to find the solution. The camera feature provided by RoboBuy is not so useful for us so we are trying to write our own extension where you would write Objective C code and write code C E E C plus plus code and so on. So how you install is basically you would install roads by saying you will install roads you would set it up like road setup what this does is it will create a link to your iPhone simulator link to your Android simulator or SDK sorry SDK, iPhone SDK Android SDK, Blackberry Windows and Windows 4 and then if you want to create a new application all you have to do is roads app a sample sprightly roads app something like that. It will create a template for the corresponding project. Yeah, that will be like this template. So you get to see a template like this which has been iconed public some of you who have used Ruby on Rails might relate this like a public folder app and so on and then you have this helpers and model, some settings which is again your model and things and so on it's basically based on MVC framework or pattern so this is how it is like. Let's say there is a product that product has a model called product.rb where you can go and define your own, if you wish you can write your own business logic here as well but it does not happen which is the best practice in Ruby on Rails platform but most of the logics are written in product controller. So this one is controller address or all it's like views. So here you can see something different like edit.erb and edit.pp.erb for blackberry and all it's preferred to have a different separate view because of the HTML, CSS compatibility issues so for one project we invented created edit.wm wm.erb because we thought it's better we create a separate view for Windows mobile as well so if you want to run let's say you have written a simple project and if you want to run that application basically you would say like rake.run.android rake.run.iphone run blackberry, windows mobile windows mode and so on so if you just do that then the emulator will pop up it will automatically install the application in your emulator and then you get to see the application running so for example for android development you would be creating the .apk file placing the .apk file so when you do this it will automatically does the process to get for testing maybe the screen is very small but I will try to explain some of the device capabilities includes like GPS which is very important and then you can access your phone, contact, calendar and then you have camera, barcode some of you who have used iPhone would see a different data integral like something like that those are available, menu, toolbar, signature most of them is available if you see this line which says android android they support NFC for android 3.0 operating system but they are also targeting something with the windows phone as well which is not public yet so that is something going on ok so actually if you see you are also pushing about extension so if you want there is some native capability of your mobile instead there is some shoulders that you have to follow and just develop it what sets apart your mobile from from phone cap this platform basically I will tell you one scenario where you can relate why your mobile is different from phone cap you are running a lift company lift service company you are having a heating system, a refrigerator lift and everything you are running a big company and you have at least 5000 service engineers who would be going around India to do some work and so on what they have to do is the moment they wake up in the morning they need to know what work they have to do if I am in Chennai I need to know whether I should go to Adayar or Vada Parani or something like that so the first thing I will do in the morning is I will take my mobile and then I will do like how you check your email you say either auto refresh or check email or something like that to take the mobile and press sync or like get my new jobs then what it does is it will go and talk to the packet and get all the data for you ok let's say you have 5000 users then 5000 users would be clicking the check button probably between 7 to 9 am in the morning so this backhand synchronization offline data access that's the main thing that sets your mobile apart from other other framework and then you can integrate basically you can integrate with almost all famous backhand systems like Oracle CRM Suga CRM Salesforce Microsoft.NET Java I mean they have a spring based Java adapter and so on so let's say most of the time if you talk to big companies they would be they would be very happy to run in their legacy system I mean if you see even Java is now some of the old Java is a JSP server based application they don't want to touch it but they would be saying like can you write some adapters that will just run on my system and provide a mobile interface that's the requirement that we always face so when you face like that this would be one option ok let's go with the demo so I already showed you this jQuery mobile FX let me try to show you the next demo because if I have to clean and run it it's going to take a lot of time these things are not available as demo software it's available and we we just modified it most of almost all demos are available on jQuery it's everything open source open source oh and this is the point row mobile, row connect it's all open source all available on jQuery let me try to show some code so basically if you see this I have it here barcode recognizer this is the model which is including some ROM and so on which I don't want to explain now basically this is a model and this is the controller and the controller got the code if you see this I will show the demo right now barcode dot barcode recognize something it's saying so it's the standard API that you have to just use in order to read the barcode so I'm running a simple application and here you can see some barcode and then I'm going to click this scan button which should alert me like 7181 867 so I do that and then you get to see the barcode over here and basically what that means what I'm trying to show here is maximum 3 or 4 lines to do this process same with phone gaps phone gap also may be like 1 or 2 lines and and then here what we have done is basically we kept the image we kept the image okay the image is over here and then we added like A picture URM for action scan2 scan so basically we are just this is scan1 scan2 scan3 like scan1 scan2 and then when I click the scan it goes and calls my controller similar to raise and then it does it does the recognition so that's what they know the next one just want to quickly show is so just to pull up the iPhone I'm saying like Ray Grant iPhone so while it build what I'm trying to show here is simply a Twitter consuming a Twitter 3D cloud that is an index method or an action that would take the URL call the take the URL on the Twitter like api.twitter.com if you have used URL JSON URL and then make an asynchronous HTTP request and just display the data so that's what that code is just 2 lines and then let's see here is the tweet basically it's listing all the tweets from tweets from the Spritely Twitter I want to show something else so let's look on dynamically testing it just it's showing what the latest tweet is okay there is one more application that we have done which is changeback2good.com I would be very happy if you guys contribute for this in this app open source in your week time what it basically does is this is the map of Chennai which got the Google map another example that you can integrate Google map in Rome mobile and things like that along with GPS capability so there is a map which got some pointers maybe so I forgot so if you select this damage in train and things like that so what it does is it shows you a map and then it shows you where the photo is, where the damage road is, where the lord page is left and so on okay so this is a web application as well as a mobile application so for a typical application you have a login registration and doing posting and issue and so on so to do this it took us only two weeks actually to develop this mobile application while we were learning as well so if you just see the code like you see you are writing a HTML input type equal to text and then you get form elements and so on okay and then so and then okay there is one more thing like post an issue if you say post an issue what it does is let's say you have your iPhone or Android you take a picture right so to post an issue so you can click post an issue and then what it does is it take picture like camera take picture and that's it the object is there and you start processing it so it's all like two three lines to get things done so that's the basic of mobile along with jQuery mobile why is that the yam open media Facebook or yam or Gmail authentication why do people need to register if you are making a open application you can have open ID access what we have been successful on using what Facebook and so which we just found a couple of days back this is like a side project for us but I take your point what's the what I'm confused about is how it rails what you showed me looks like and how that integrates with this in terms of it's like is your assets compiling on HTML which is shown on the thing or is it still very server dependent and you have to post the code on your server I'm not sure about your question but you write HTML javascript proving then it compiles to object you see in the package does that answer your question well what how how can you go with the ruby code it's how goes with the ruby code how deep can you go with the ruby code okay if you want to write your own ruby gem to consume a soap based web services then you write your own gem put it in the road's app folder and then you have it and you okay that's a good question just for rendering for showing some views and so on when you start writing your extension you have to write it in object you see on java or the native languages so the deepness of ruby is like for example is there any server dependency after I compile do I have to deploy the application somewhere or can I add my own server as this see do you have a server component which is good but what if I don't want to use your server component I'm not sure about your question on server basically okay I'm done with my presentation so what it works in what he's saying is when you have a development then you have a package yes okay the compile output if it is an iphone app the technical iphone app you cannot deploy it has to be an iphone store and that you download it has to run so is it going to be html5 js strictly css js5 component thing or does the let's say if you are deploying a dedicated enterprise deployment built on rohmobile okay will it run on any tomcat kind of stuff or that requires back in ruby no no I don't know mod php mod python mod ruby in the behavior no okay you you you create iphone app you create android app the final final compile file so like you said you put it on app store or your private okay logically a private app store or private android market no okay the main thing is 4gap is a very clear mistake once you generate a file you just put html5 there you don't have any compilation steps no there is no ruby compilation even with 4gap you generate a .18k file .18k file and that's the rohmobile you do the same that's it so there's no server defective no server defective I'm not sure why you are relating server defective maybe we can talk about what you would look like no ruby we are not talking about range right the code you showed looks a lot like this oh okay that's where we come okay fine it takes a picture right is it possible so in the future before we upload it or is it possible like dropping and things like that that's a very good question if you want to do this dropping or all this thing you go with native apps because rohmobile got 4gap that runs through address corporate level mobile applications okay because your requirement will keep on changing it's still a combined application I mean it's an application the camera capability everything comes through the application is it possible you can you can you can at the end you will write the object you've seen you won't be writing the rohmobile because rohmobile will just give the camera object okay how do you go about debugging your app like you have a winray or a webkit debugging system or a 4gap or the platform stuff how do you go about it okay there is something called roh simulator where you know firebox something equivalent to firebox is something actually it's a firebox sorry for that what about the database that you can use any rohmobile okay it uses something called rom or h4m which connect to the sql like database when it comes to iphone and android and then if you want to connect to sql server or oracle or something then you would be either using api or web services to do that operation could you use that mic if you don't mind it's does it support html5 that's your question no no i mean for iphone yes but not for iphone and for android yes but not fully not like phonecap yes it uses the browser for phonecap sorry for iphone and android it uses webkit browser i'm not sure about blackberry and so on but it does use the browser capability of the mobile what's the complete ecosystem application okay ruby and then that's it ruby yeah so i mean let's say you are targeting an application for ebay then other things will come around like database and so on ruby can you so how do you write this aspect or something and there is something called mspec for this one which is not so good like aspect aspect is really good but with mspec you can do you and integration plus controller testing but i'm not fully confident on that i'm trying to find a good example so that i can say if it does support unit testing how many they do you support unit testing how many applications have i done any yes i showed you for example one with wincon another with a company called max they are all real time applications yes is it possible to fix any install apps what i'm trying to do is i'm trying to make it possible i mean htc htc comes with a locations application basically what if i don't want to use google maps instead i want to use a native application because htc downloads your whole map i don't want to use bandwidth right now okay so your question is basically can i use some mobile pacific native future yes you can if the support is not already there you have to write your own for example microsoft is having their own map i mean it's not using google map so it does mobile does support that because again microsoft map is based on javascript so you have to just use that okay one point i want to say is if you've got some smart phone ideas please go and visit rightly.com slash community and post there is a link called community ideas for smart phone application we will develop it for free put it as an open source we will use mobile if you like the idea we will develop put it as an open source we have already received like at least eight install ideas we started with two we will be finishing it in a week why we are doing this honestly to share the knowledge we believe in open source like you are and we just want to spread the knowledge and so on that's all from my topic today maybe i have final minutes any question what does that change back to good does take a photo then it sends it to somewhere what does it does it displays the photo on the changebacktogood.com website and then it shows you like in chennai you can count one lakh photos and one lakh campaign roads and so on the next step we are going to take is talk to the local mayors like chennai mayors bangalore mayors rotary club lion's club and so on and try to take it as a next step this is a social initiative actually nothing to do with row mobile but just to show you an application that is basically row mobile converts into objectivity and native code are there any limitations this will work in Ruby but it won't work in Objective C or any features or any commands which we want to work in yes that's a good question for example chronic chronic is a gem right that can display some that is not supported so they have limited version of data object side data library so because they want to they don't want to take the complete ruby 1.9 they took a subset of ruby 1.9 and then they created this I have one question why do you want to go for using Objective C and native code because anyway we are going to use it in browser and just because we are going to type that you are right no no no it's not in browser it's an app it uses the browser actually for rendering the HTML it uses the browser packet so it's a native pure native see this is a website and this is there is a web application and there is a mobile application so you can access it okay I will move this slide so you use the mobile app to connect to it that's what it is alright that's time's up so let's thank you for your wonderful talk