woensdag 10 november 2010

The Google developers day in Munich

It was pretty awsome. The day started for me around 3:30 with getting out of bed and driving to Munster/Osnabruck Airport. Catching a flight in to Munich. A bit early but if you don't know what to expect then it's all worth it. So I grabbed a cab to take me to the exhibition centre. I was a bit late actually I must say my boss was a bit to late. I could get a ticket to get in so my boss said you can have mine. What a nice guy he is. So when I finally arrived everyone was already in the keynote room and it was busy. I haven't seen so many people watching at four screens in my life.

The keynote
There were 2000 signups for this event and they could house only half of them. So the event probably will be bigger next year. But I think that won't help. If there were 2000 signups this year there will be 4000 next year. The history of developing apps. Most of the apps before 04/05 were desktop apps. The biggest desktop app that has been developed after 05 is Skype. So the internet gets a bigger share with apps and it will get bigger with the usage of HTML5. The only thing is the support of HTML5 by the webbrowsers. Somewhere at the beginning of this year the support for HTML5 by webbrowsers was very low but in the last couple of months all the free and multi platform browsers are supporting HTML5. So with the possibility to use the local resource of the device like for instance using the device's accelerometer to play a game in a webpage. Or using the build-in mic for a speech to text webapp. But you can also create 3D graphics and games by using WebGL. WebGL doesn't require a lot of CPU power but it uses hardware acceleration. Which is pretty cool so my Mac's CPU won't be maxed out because it also uses the GPU. Then there was a presentation about something the GWT team and VMWare have been working on: GWT + Roo. This makes it possible to develop applications with Roo and then adding a GWT webpage to it. But it doesn't stop there, it is also possible to use the app engine for data storage and launch it in the Google Cloud. To see this was pretty amazing it opens new possibilities for fast app developing and for multi-cloud development so your not stuck in the Google cloud. The reason of that we're working so much with the internet is not only it's possibilities but also that it's possible for us to access the internet on almost every device you can imagine. The real big change happened when iOS was introduced. The iPhone together with iOS made it possible for many people to get on the internet. It was possible before but the iPhone was so designed that many people wanted one. With Android there is still a long way to go but in the first few months it already beat the iPhone by small numbers. So yes Google is still thinking big about their mobile devision. You could see that by looking at where the Android sessions were being held. They had a complete hall reserved for those sessions.

Google Web Toolkit + VMWare.
I didn't know what to expect from this session at first but it looked promising. After the keynote it became clear that it was about the integration of Spring Roo with GWT. So walking to the first floor I saw that there was some food lying there and I hadn't eaten since 4am so taking a pretzel to the session. Why don't they have these thing in the Netherlands I love them. So after the t-shirt that was handed out at the entrance here was the second t-shirt of the day. A Google Chrome shirt at a Cloud Session hmm. So about Spring Roo. It's basically a program that can do a lot for you. When you say Roo make me an entry it make a class with automatically added the toString function. When you use the SpringSource Tool Suite (STS) to manage the project it's even a lot easier. For instance you have a entity and add a variable to it Roo thinks: "Hey you might want getters and setters with this" So it adds the getters and setters for this variable. You can still do this your self when you want to modify it or something but this way it's a lot quicker. The only thing I personally missed was some more info about using GWT with Roo. So I'll be figuring this out by myself. Still it's a program I want to start using to see what it can do. That's also because it uses some new techniques I want to learn like AspectJ that could simplify my code a lot. AspectJ is used in this case to house all the getters and setters and the toString methods. And did I mention that is was Cloud independent?

Excellence in the Android User Experience
The first question is where does the User Experience start? Does it start at running the App? Nope it start when the user first hears about the app. This can be in a number of ways, for example on a blog, webpage or in the marketplace. So it's important to provide that experience in the best possible way. So make an icon that is not yelling "pick me pick me" but try to make one that says "i'm part of the system". And make the description of the app as clear as possible. Another big no no is copying the interface of other devices. That's one I can understand who wants an app that looks the same on every devices but the layout of that app only preforms the best on Android. No one wants that. One surprising thing was that the speaker said don't use the hardware buttons. More or less user them for the thing they are designed for. So the menu button to show a small menu. That's what I think he meant. Another thing the speaker was pointing out is that you might want to first think of designing the lay-out and then building it. Instead of right away building the layout of the app. This is really a good point to consider, I know that I'm a developer but yeah I probably should reconsider some interfaces. Also the loading screen don't make them stop your app. What I mean is that the user wants to do something while the app is loading the information. So don't lock the app while it's loading some stuff.

Lunch!!
When 1000 people want to lunch it's busy. And I mean really busy. 1000 hungry developers what do you offer. A well different kinds of stuff. Like wraps, hamburgers, hot dogs and salads. And when everyone is eating you can quietly walk around a bit to see what is going on else where in the building.


Practical HTML5
For the ones thinking HTML5 is not popular you're wrong, and when you saw this session you probably know why. Like lunch it was busy there weren't enough chairs so the people were sitting on the ground or standing. I think this was one of the best sessions out there that day. It was showing you how to preform some need stuff with HTML5 and CSS3.The most important thing for me was to understand how some of the effects work. But also how to create my own effects. The presentation was made with HTML so that they could use all the effects within the presentation. Especially seeing how some of the games work and of course seeing the effects made it worth it. But the drag and drop from files to the webpage is super 'cause I could see that working in at least on of my one apps. Blowing up the SVG is just cool seeing that put to work.

Close to the metal: Building with the Android NDK.
When I at first heard that it was about playing with C or C++ on Android I went like yes another good show. It went not quite as I expected but still it was pretty interesting. It was more about developing games for the Android and how to make use of the NDK and OpenGL. That last part I would have liked to hear more about but still it was interesting. So one of the cons of using the NDK is catching all the events that are triggert but then again you can make use of the OpenGL libraries. The one thing I did hear before is the part of selling extra's or add-ons in the marketplace. That could be interesting. Another thing was about installation on removable memory, I didn't think that this was a big issue but apparently some users won't install the app if it is not installable on a SD card. But the widgets and live wallpapers need to be installable on the device and not on the SD or funny things will happen.

TUM presents: Visual Localization and Fast Mobile Media Search
This was a presentation about a project of two Ph.D. student whereby the app provides the user with information about what he's looking at. Something like Augmented reality. The presentation was more about how the app works. And sure it looks great and preforms well. The app provides the user with information about his location and orientation. To do this in the field there is a connection with the Google Streetview database with this information they can see what the user is actually looking at. the biggest problem they had to coop with was the fact that the GPS information in urban canyons most of the times not accurate is. Another interesting problem was the fact of different camera's with different resolution. A one on one comparison wasn't possible. What they do is create a kind of heath map of the interesting point and comparing them with the points in an image. The orientation of the user or device is being calculated on the rating of the images in the Google Streetview database. But the database is to large to send via gprs or 3g and it takes time to look at all the pictures. They have created a decision tree to solve this. First of all they fill the decision tree with a training set and then they feed the image to the tree to see which panorama has the most resemblance. They had a cool example with CD covers to show that it works.

HTML5 or Native for mobile development
I've really looked forward to this session because a couple of weeks ago I've had an argument with to of my teachers about this. Honestly I'm a pro native guy who sees that HTML5 could be nice but never can replace native. So hopefully next week I will get some questions about this discussion. One of the statement about using native for a webapp was: "if you can't improve your app by using the SDK you're not trying hard enough". It offers more features for example widgets and live wallpapers. It's faster then HTML. If you need to wait for the stuff to be come standard for all platforms then it sometimes is a long wait. Because hardware evolves faster than the standards can coop with it. It is possible to exchange data between the apps. So that was in short the pros for native. HTML5 works on all the phones not just on one therefore it also works on all the OSs. It with stay working for the next decades, that is always a con with native. You can target with CSS for specific queries. Now with HTML5 it's also possible to receive input from native stuff for instance using the GPS for geolocation in a webapp. You can make it look nice with CSS3. So the bottomline is that there isn't something like you need to do this or you need to do that.

What did I forgot?
Some stuff was interesting but I don't have enough info about was the presentation of Capgemini. Although Clojure is a thing I would like to try. Still I'm like I would have loved to see more but had to choose and it was a difficult choice to make. And I've made some pictures.
GDDDE

Websites
html5rocks.com
diveintohtml5.org
chromeexperiments.com/

Geen opmerkingen:

Een reactie posten