On Saturday October 19th, Tim, Remco and I went to GDG DevFest NL.
DevFest is an event held by: The GDG Dutch Android User Group & GDG Netherlands sponsored by Google and many other companies. It started with a quick introduction about the organization and a little bit about Android. We really liked their ideas about being open source, because we also agree about the fact that you can help someone with your code. However, being helped is possible as well, when you for example get a comment about a security issue. Something you would have missed if your app wasn’t open source. Fun fact: the first internet connection in Europe was established in The Netherlands, which happened in the same building where the event was being held (Science Park, Amsterdam).
The program consisted of workshops/code labs and talks. Our schedule was as follows:
- App Strategy Workshop
- Location Services in Android
- How to do network image loading
- Android performance quick wins
App Strategy Workshop
The idea behind this workshop was how to create a strategy for an app, which focusses mainly on everything that happens before actually creating the app. The idea about creating different and very detailed personas was pretty new for most of us. Doing this will help you understand your app user which will help you create an app that your targeted personas will enjoy using, with your idea behind it. You’ll need to make sure that your app (for a mobile phone in this case) is being made so that it uses the functionality of your phone while taking advantage of it at the same time. For example, when comparing a phone with a laptop, you’ll come to the conclusion that a phone is easier to bring with, has GPS (so you can get quick direction), a camera (scan a barcode) and much more things that will help your users/costumers understand how important this app is for their mobile phone. The code of your app is very important, as we all know. But having a fully functional app won’t help you at all when having little to no strategy prior to creating the app.
Location Services in Android
After a lunch break we attended our first talk. After a short talk about the workings of GPS, we got some very interesting and practical examples on how to implement location services in a way that your app functions properly, but respecting your user as well. There’s for example no need to request a location every 10 seconds when it’s unnecessary (I’m looking at you, Facebook), which will lead to something that every mobile user fears: low battery life. We discussed about a lot of ways to avoid this kind of behavior, such as using the last know position in location in LocationManager. I hadn’t heard of it before, but to simply put it, it just means that instead of asking for a new location, you lookup if another app requested the users location in a timeframe that’s usable for your app. If the location meets your specific needs than you can go ahead and use that location.
How to do network image loading
This talk was pretty specific, but Tim has been busy with an app called Gizmooi, which does pretty much the same thing. The talk was very structured and named the following 3 methods to load images in your Android application.
The first way to do this, is actually the oldest and most difficult way to load images. You’ll have to take care of your images, caching, updating etc., which is very time consuming.
Picasso will take of everything, just by doing Picasso.with(context).load("YourImageLink").into(imageView);
. It’s the must-have library, and I highly recommend it.
Volley goes further than Picasso, and does everything networking related, but very fast (in some cases faster than Picasso, with for example big images). Putting Volley somewhere easy to access will be better, because of the big variety of supported features. You can access it when you need to load an image and then access it from somewhere else to load your JSON.
Android performance quick wins
This talk was actually about everything that should be done to ensure performance in your app. So things like the smoothness of your app, responsiveness etc. which all will hopefully lead to that 5 star review. Many aspects, mainly related to debugging (like the hierarchy of your app), came up, but their section about the GPU Overdraw tool was the most interesting. Here’s an article written by Romain Guy discussing exactly this. Not many developers will look in to the performance part of their app, as long it just works. But I’m even more convinced now, that by just spending a reasonable amount of time, that you’re able to win a few more millisecond, making your app even better.
Conclusion
We had a really fun and informative day. We learned about everything that should go before making an app, implementing features in an efficient way and at the end making sure that everything works smoothly when being used by the user. It was very structured and setup very nicely, especially because it was the first DevFest in the Netherlands. It’ll hopefully continue to grow in the future, but I’m pretty positive of this because of the people behind it. The part I really appreciated about the event, was the fact how informal everything was, yet presented in a very informative way. I’m pretty sure that we’ll attend DevFest NL again next year, and maybe sponsoring or giving a talk as Nubis.