05. Mai 2015
Mobile Tech Conference 2015
Mobile Tech Conference 2015 Munich: My summary in 5 chapters
From March 23th to March 26th the Mobile Tech Conference in Munich offered a lot of interesting workshops and talks about mobile development and everything regarding the „Internet of Things“.
I decided to summarize the meeting to the (in my opinion) 5 most important topics that were covered.
Before Christian Höfle joined XITASO in 2012
he was Web Developer for alphasystems
Christian Höfle, Teamlead mobile Applications
1. Smart objects / Internet of Things
This is a very trending topic for the last few years, since the amout of connected devices got a lot more and will increase even faster. In the last 15 years devices got smaller and smaller, from big desktop computers to heavy laptops to very light laptops to smartphones to smartwatches. Nearly every device can somehow be connected to other devices, via Bluetooth, Wifi or similar technologies.
There are several risks in having too much smart objects that can send and receive data, including security issues and an overload of network communication, but the real problem is how to build a shared platform to establish connection between all these different things.
Imagine having 100+ of these objects at home and using a different app to control every one of them. I bet you will drive crazy at some point, at least I would.
Several big companies presented their approaches to build a platform for communication, including Deutsche Telekom (QIVICON) and Intel, but they are all in the early stages of development, and I bet a lot of providers will try to establish their solutions on the market
2. Native or cross-platform mobile development
Since the beginnings of mobile development and the fact that you have to develop for at least two platforms (iOS and Android), people tried to reduce the pain of having to write the same application two times with cross-platform tools. The best known examples are Apache Cordova/PhoneGap and Xamarin. While Cordova follows the approach to show a web page inside a native WebView control (meaning that you won’t have the native UI looks on either iOS or Android besides using frameworks that do so) , Xamarin uses the .NET framework and provides the possibility to use native looking controls.
Both solutions have their right to exist, but from what I experience and what most of the people talking at the MTC 2015 said, native development is still the best solution.
3. Web API Design
A very important subject, since you won’t find many applications without network communication. To make everyone’s live easier, there are some basic rules you should follow when designing a web API:
- Make it RESTful: Your requests will be readable much better.
- Use JSON: XML may be good for some situations, but most of the time JSON is much better to read/understand and less data.
- Secured communication: You should not pass data without a SSL-secured connection.
- Authenticate via HTTP-Headers: Basically everyone who knows your call URIs can use them if you don’t add additional security.
- Use HTTP status codes as they were intended: Use the correct status code for the correct situation. When an error occurs, don’t return 200 and your own error code implementation, return a 500 error and add a description.
- Version your API for later use: No web services will stay unchanged, in order to be able to have different app and API versions out there, version the API.
Most mobile apps will be used by a lot of users, and especially building Android Apps can be a lot of pain, because the best you can to is testing on some real devices with different screen resolutions and different processor speeds. But since there are a lot of different devices out there with sometimes different behaviours, you need to reproduce certain errors on certain devices.
One possible solution for this problem is to use a service like TestObject where you can test remotely in your browser on real devices. Another solution is a company called Applause that lets real users/testers test your app. Both of them don’t offer discount prices, but for apps with a lot of functionality or a lot of users it could definitely be worth the money.
5. User Experience
When someone uses software, what’s the only thing he will see: Correct, the user interface.
A lot of software developers and companies focus on trying to build robust products with a lot of unit testing and great error handling while forgetting that there is one point with at least the same importance: The user experience. Of course it’s important to follow software design patterns and coding guidelines, but you will never hear something like „Oh, great that they used the Singleton pattern there!“ or „Using a relational database is not a good solution in this case.“.
Try to think about how people will use your software, what they want to achieve with your product and how to make things obvious. Follow guidelines, use common UI patterns and remember that that’s everything the user will ever see.