Thursday May 22 2014 I visited dev:mobile, a conference in Göteborg Sweden held at Folkets Hus that focuses on apps and mobile technologies. This year was the second time it was held and the following are my notes from the visit.
Keynote – Getting People To Do What They Really Want But Can Not Be Bothered
by Ola Janson, Creative Director, Awesome Group
- Over time we have moved towards thinking more about complex organic systems.
- A school of fish manages to move coordinated in a complex system without a leader.
- Games have made these types of systems more obvious with each advancement. As games themselves are complex systems.
- The term gamification started appearing sometime around 2010.
- The concept of a game is doing something separate from reality.
- Gamification is about applying game elements on top of different tasks. But the feeling usually remains that you are still performing a task rather than playing a game.
- It is a branch from user experience where the point is to improve the experience by using a combination of seven different factors.
- Context: how does this work?, Relations: who is playing?, Autonomy: what choices do I have?, Activity: what is my challenge? Feedback:how do I know how to reach my goals? Learning: how do I become better?, Purpose: why am I doing this? This is partially explained by the other factors.
- It is important to consider how these factors play into your product and how they can apply to your users behavior.
- A game can be divided into three areas. System and Rules, Content and Stories, Humans and Behavior.
- Many who have applied game elements in their products have focused on feedback but missed the importance of learning.
- A successful gamification should include a learning element which allows the users to progressively improve on their own.
- Gamification doesn’t require competition and sometimes it should be avoided.
Boost Your Android Development!
by Richard Davison, Developer Mobility, CGI
- IDE & Emulator
- Make sure to use the latest version of Eclipse, use Java 7, configure eclipse.ini and allow more memory usage.
- Resource management
- Manages resources automagically.
- Uses DP (Density Pixel) instead of regular pixels.
- Put values in res/values/dimens.xml
- Refs, point to references depending on configuration.
- Deeply nested layouts decreases performance.
- Design Principals
- Different OS’s have their own design language, which makes it impossible to directly port an applications design to a different system.
- Avoid splash screens – they are unecessary and even impair the user experience.
- Make use of the ActionBar component.
- List Optimizations
- Expensive operations are: inflate(), findViewById(), convertView()
- ViewHolder pattern solves some of these issues.
- Picasso solves a lot of problems with remote images.
- Mini activities, have their own lifecycle
- Makes it easier to optimize for tablets.
- Don’t use constructor.
- Implement a static factory method instead.
- Thread Handling
- Async task
- There are other alternatives, which are better for lifecycle events.
- Complicated with configChanges between fragments.
- EventBus from greenrobot solves many of these problems.
- Link to presentation
Build, Run And Manage Cross Platform Apps With A Mobile Application Platform
by Lars-Olof Allerhed, IBM Worldwide Mobile Evangelist and CTO for IBM MobileFirst in Europe
- Fun note: IBM has developed an AI called Watson which they tested by playing Jeopardy against humans, which ended with it winning big time. As it’s next challenge it will play World of WarCraft.
- IBM Worklight platform, integrated mobile app development with continuous delivery
- Worklight lets you use the tools that you prefer.
- The API simplifies interaction between HTML and native
- The tools comes with a browser emulator.
- Testing is simplified by allowing you to record functional tests and running them.
- Built in security
- E.g. if you input your password while the device is lying still you will get a lower security scoring and be prompted to pick it up and re-input the password. This will use the accelerometer and deduce that it’s more likely that you are a human.
- Another example is in an hospital environment where geolocation is used with security. If you are inside the facility you will be prompted with a single pass authentization. When you leave the building you will be required to use two pass authentication. While a third case would be a surgeon who has entered the operation room. In this case there has already been a physical security check and the surgeon will not be required to sign on.
- Allows you to push updated code to applications.
- Multiple versions can run at the same time and service windows can be managed from the admin interface as well pushing service messages to users applications.
- Comes with adapters for different protocols
- Full cloud management of applications.
- A specific users app can be logged to aid in user support.
- Unified client and server analysis
- Worklight comes with a range of license types. For development/trial purposes it is free. Commerce let’s you choose between pay per app (where different OS ports of the app are still consider one app) or users per app.
by Johan Lindfors, Founder Coderox
- WinJS is added to the application stack.
- Works with different Windows plattforms, except for Windows Phone which uses a different version of WinJS.
- This makes it possible to create Universal Apps which can use a common code base but also use platform specific code.
- WinJS includes UI controls that have Windows 8 look and feel. It also includes XHR and data bindning.
- Can also be combined with Angular or Knockout.
- Microsoft Azure Mobile Services can be used to create REST based services.
Developing On The Chromecast From Streaming To Gaming
by Erik Lupander, Senior Consultant at Squeed
- Google Cast is the SDK that Chromecast uses.
- DIAL Discovery and Launch.
- Communicates using web socket.
- The sender broadcasts the media. Once a receiver replies it is connected to the sender and the sender can then act as a remote control for the receiver.
- For Chromecast to digest the media it is required to be web based and accessible from a browser.
- Allows browser games.
- GUI user experience guidelines.
- Sender guidelines
- Sender should focus on actions.