Danny Dig and his colleagues discovered widespread problems in mobile app development that can cause applications to be unresponsive and “freeze.” After looking at over 1,000 open-source mobile apps, they found two main problems — underuse and misuse of asynchronous programming.
“It’s very easy, if you are not careful, to write a mobile app that is unresponsive,” Dig says. “The number one culprit for a frozen app is that a programmer has written a blocking call, such as accessing the cloud, on the main thread that processes other user-interface events and actions.”
The solution is to move the blocking calls into the background with asynchronous programming. Dig’s team has sent out hundreds of patches to developers to fix the problems in their code, and they have created tools that developers can use to find and fix asynchrony errors. Their webpages LearnAsync.NET and refactoring.info/tools give many examples of asynchronous programming and access to the tools.
“Now what I want to do is help people avoid making those mistakes in the first place,” Dig said.
As part of his educational efforts, Dig will be presenting in Portland, Oregon for the Technology Association of Oregon in June. The cost is $25 for members and $45 for non-members.
The presentation will be a technical overview of why asynchrony is important, it will include descriptions of the common pitfalls and best practices, and he will also demonstrate the tools he has developed.
“I see this as a way of transferring knowledge from research into practice, but it’s also important for me to have a dialog with programmers. I bring back their feedback to the research,” Dig said. “So, this is a fabulous event for me to establish those connections.”
Story by Rachel Robertson