Advertisement

Managing Concurrency in Mobile User Interfaces with Examples in Android

  • Konstantin LäuferEmail author
  • George K. Thiruvathukal
Chapter

Abstract

In this chapter, we explore various parallel and distributed computing topics from a user-centric software engineering perspective. Specifically, in the context of mobile application development, we study the basic building blocks of interactive applications in the form of events, timers, and asynchronous activities, along with related software modeling, architecture, and design topics.

Notes

Acknowledgements

We are grateful to our former graduate students Michael Dotson and Audrey Redovan for having contributed their countdown timer implementation, and to our colleague Dr. Robert Yacobellis for providing feedback on this chapter and trying these ideas in the classroom.

We are also grateful to the anonymous CDER reviewers for their helpful suggestions.

References

  1. 1.
    Kevin Ashton. That ’Internet of Things’ thing. RFID Journal, http://www.rfidjournal.com/articles/view?4986, July 2009. Accessed: 2016-12-09.
  2. 2.
    Kent Beck. Test Driven Development: By Example. Addison-Wesley Professional, 2002.Google Scholar
  3. 3.
    Google Webmaster Central Blog. Rolling out the mobile-friendly update. https://webmasters.googleblog.com/2015/04/rolling-out-mobile-friendly-update.html, April 2015. Accessed: 2016-12-12.
  4. 4.
    Stefano Borini. Understanding model-view-controller. https://www.gitbook.com/book/stefanoborini/modelviewcontroller, 2016. Accessed: 2016-12-09.
  5. 5.
    Jemma Brackebush. How mobile is overtaking desktop for global media consumption, in 5 charts. Digiday, http://digiday.com/publishers/mobile-overtaking-desktops-around-world-5-charts/, June 2016. Accessed: 2016-12-10.
  6. 6.
    Jason H. Christensen. Using restful web-services and cloud computing to create next generation mobile applications. In Proceedings of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications, OOPSLA ‘09, pages 627–634, New York, NY, USA, 2009. ACM.Google Scholar
  7. 7.
    Thomas W. Christopher and George K. Thiruvathukal. High Performance Java Platform Computing. Prentice Hall PTR, Upper Saddle Ridge, NJ, 2000.Google Scholar
  8. 8.
    Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995.zbMATHGoogle Scholar
  9. 9.
    Google. Android developer reference. http://developer.android.com/develop/, 2009–2018. Accessed: 2016-12-09.
  10. 10.
    Google. Memory consistency properties. https://developer.android.com/reference/java/util/concurrent/package-summary.html#MemoryVisibility, 2009–2018. Accessed: 2016-12-09.
  11. 11.
    Google. Processes and threads. http://developer.android.com/guide/components/processes-and-threads.html, 2009–2018. Accessed: 2016-12-09.
  12. 12.
    Google. SMP primer for Android. http://developer.android.com/training/articles/smp.html, 2009–2018. Accessed: 2016-12-09.
  13. 13.
    Google. Android Studio: Use Java 8 language features. https://developer.android.com/studio/write/java8-support.html#supported_features, 2017. Accessed: 2018-02-05.
  14. 14.
    The Guardian. Mobile web browsing overtakes desktop for the first time. https://www.theguardian.com/technology/2016/nov/02/mobile-web-browsing-desktop-smartphones-tablets/, November 2016. Accessed: 2016-12-10.
  15. 15.
    Graham Hamilton. JavaBeans specification. Technical report, Sun Microsystems, inc, 1997.Google Scholar
  16. 16.
    Per Brinch Hansen. Operating System Principles. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1973.Google Scholar
  17. 17.
    Konstantin Läufer, George K. Thiruvathukal, and Robert H. Yacobellis. Loyola University Chicago Computer Science COMP 313/413 course examples. https://github.com/lucoodevcourse/, 2012–2018.
  18. 18.
    Konstantin Läufer, George K. Thiruvathukal, and Robert H. Yacobellis. Loyola University Chicago Computer Science COMP 313/413 course examples: Click counter. https://github.com/lucoodevcourse/clickcounter-android-java, 2012–2018.
  19. 19.
    Konstantin Läufer, George K. Thiruvathukal, and Robert H. Yacobellis. Loyola University Chicago Computer Science COMP 313/413 course examples: Prime number checker. https://github.com/lucoodevcourse/primenumbers-android-java, 2012–2018.
  20. 20.
    Konstantin Läufer, George K. Thiruvathukal, and Robert H. Yacobellis. Loyola University Chicago Computer Science COMP 313/413 course examples: Simple threads. https://github.com/lucoodevcourse/simplethreads-java, 2012–2018.
  21. 21.
    Konstantin Läufer, George K. Thiruvathukal, and Robert H. Yacobellis. Loyola University Chicago Computer Science COMP 313/413 course examples: Stopwatch. https://github.com/lucoodevcourse/stopwatch-android-java, 2012–2018.
  22. 22.
    Doug Lea. Concurrent Programming in Java. Second Edition: Design Principles and Patterns. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2nd edition, 1999.Google Scholar
  23. 23.
    Jeff Magee and Jeff Kramer. Concurrency: State Models and Java Programs. John Wiley & Sons, Inc., New York, NY, USA, 1999.zbMATHGoogle Scholar
  24. 24.
    Robert C. Martin and Micah Martin. Agile Principles, Patterns, and Practices in C# (Robert C. Martin). Prentice Hall PTR, Upper Saddle River, NJ, USA, 2006.Google Scholar
  25. 25.
    Gerard Meszaros. XUnit Test Patterns: Refactoring Test Code. Prentice Hall PTR, Upper Saddle River, NJ, USA, 2006.Google Scholar
  26. 26.
    Brad A. Myers. A brief history of human-computer interaction technology. interactions, 5(2):44–54, March 1998.CrossRefGoogle Scholar
  27. 27.
    Oracle. Java platform, standard ed. 8 API specification: Class EventQueue. http://docs.oracle.com/javase/8/docs/api/java/awt/EventQueue.html, 1993–2018. Accessed: 2016-12-09.
  28. 28.
    Tim Peierls, Brian Goetz, Joshua Bloch, Joseph Bowbeer, Doug Lea, and David Holmes. Java Concurrency in Practice. Addison-Wesley Professional, 2005.Google Scholar
  29. 29.
    James Rumbaugh, Ivar Jacobson, and Grady Booch. Unified Modeling Language Reference Manual, The (2nd Edition). Pearson Higher Education, 2004.Google Scholar
  30. 30.
    Douglas C. Schmidt, Michael Stal, Hans Rohnert, and Frank Buschmann. Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects. John Wiley & Sons, Inc., New York, NY, USA, 2nd edition, 2000.Google Scholar
  31. 31.
    Hong Zhu, Patrick A. V. Hall, and John H. R. May. Software unit test coverage and adequacy. ACM Comput. Surv., 29(4):366–427, December 1997.CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Department of Computer ScienceLoyola University ChicagoChicagoUSA

Personalised recommendations