We may earn an affiliate commission when you visit our partners.
Course image
Dr. Douglas C. Schmidt, Michael Walker, and Dr. Jules White

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps. Students will work on the appropriate automated unit quizzes, based on the material covered in the lecture videos. These lessons will demonstrate the benefits of good software engineering practices that are targeted at creating maintainable code for mobile apps.

Read more

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps. Students will work on the appropriate automated unit quizzes, based on the material covered in the lecture videos. These lessons will demonstrate the benefits of good software engineering practices that are targeted at creating maintainable code for mobile apps.

There will be roughly 3-4 hours of student engagement time per week, including video lectures, and quizzes. The ordering of the modules within the course is designed to be flexible. In particular, students can watch the videos in whatever order suits their experience and needs, e.g., they may want to watch the unit testing videos prior to the software pattern videos if they prefer to learn about unit testing first.

Enroll now

What's inside

Syllabus

MOOC Overview
Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by-example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.
Read more
Software Engineering & Testing I
Software Engineering & Testing II
Security & Sustainability I
Security & Sustainability II
This module provides an introduction to Unit Testing using the Junit 4.0 Framework in Android, as well as an introduction to Testing Frameworks using the Robotium open-source test framework for writing graybox testing cases to automate the testing of multi-Activity Android apps.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by well-established figures in the field, including Dr. Douglas C. Schmidt, Michael Walker, and Dr. Jules White
Develops engineering principles and test-driven development methods for building robust Android apps
Introduces students to common Java/Android software patterns for improving code extensibility and clarity
Focuses on providing practical, hands-on examples to illustrate maintainable development approaches
Emphasizes the importance of unit testing and provides guidelines for using JUnit and Robotium
Provides flexibility in learning order, allowing students to adjust to their needs and experience

Save this course

Save Engineering Maintainable Android Apps to your list so you can find it easily later:
Save

Reviews summary

Android app maintainability course

Learners say this course is a secure way to start testing Android apps and this course provides a safe way to make sure an Android app is flexible. Students appreciate that the course teaches the areas of security and reliability which are essential for building secure apps.
This course is for starting to test Android apps.
"Helped start testing my apps to make them secure, maintainable and flexible to changes."
This course offers a safe way to make sure your Android app is secure.
"Helped start testing my apps to make them secure, maintainable and flexible to changes."
"Made me aware of the security risks that an app has, how android tackles it and how a developer should protect and secure his apps from malware and other security flaws."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Engineering Maintainable Android Apps with these activities:
Join a Study Group for Android Development
Join a study group for Android development. This will give you the opportunity to ask questions, share knowledge, and learn from others.
Show steps
  • Find a study group for Android development
  • Attend the study group meetings regularly
  • Participate in discussions and ask questions
  • Share your knowledge and help others
Read Effective Java
Read Effective Java. This book will help you learn the best practices and guidelines for writing effective Java code.
Show steps
  • Purchase or borrow Effective Java
  • Read the book and take notes
  • Apply the principles you learn in your own Java code
Review Java syntax and Android lifecycle
Brush up on basic Java syntax and the Android lifecycle to strengthen your foundation for understanding unit testing and software patterns.
Browse courses on Java
Show steps
  • Review Java syntax fundamentals (data types, variables, operators, control flow).
  • Understand the different stages of the Android activity lifecycle (onCreate, onStart, onResume, onPause, onStop, onDestroy).
Eight other activities
Expand to see all activities and additional details
Show all 11 activities
Follow Android Development Tutorials
Follow Android development tutorials to supplement your understanding of the course material. This will help you learn new concepts and techniques.
Show steps
  • Search for Android development tutorials on websites like Udacity, Coursera, and Udemy
  • Select a tutorial that covers a topic you are interested in or struggling with
  • Follow the tutorial step-by-step
  • Try to implement the concepts you learned from the tutorial in your own projects
Practice Unit Testing with JUnit
Practice writing unit tests for Android apps using JUnit. This will improve your understanding of unit testing concepts and techniques.
Browse courses on Unit Testing
Show steps
  • Create a new Android project
  • Add JUnit dependency to the project
  • Write a simple unit test for a method
  • Run the unit test and verify the results
  • Practice writing more complex unit tests
Explore Android testing frameworks
Enhance your understanding of the JUnit testing framework and discover additional testing frameworks to broaden your testing capabilities.
Browse courses on JUnit
Show steps
  • Follow Android testing tutorials using JUnit and Robotium.
  • Explore other testing frameworks such as Espresso, Mockito, and Robolectric (optional).
Practice Automated Testing with Robotium
Practice writing automated tests for Android apps using Robotium. This will improve your understanding of automated testing concepts and techniques.
Browse courses on Automated Testing
Show steps
  • Create a new Android project
  • Add Robotium dependency to the project
  • Write a simple automated test for a simple activity
  • Run the automated test and verify the results
  • Practice writing more complex automated tests
Write unit tests for Android components
Solidify your understanding of unit testing by practicing writing tests for various Android components, such as activities, fragments, and services.
Browse courses on Unit Testing
Show steps
  • Create Android unit tests using JUnit.
  • Test the functionality of Android activities, fragments, and services.
  • Use mocking and dependency injection techniques to improve test quality (optional).
Contribute to Open Source Android Projects
Contribute to open source Android projects. This will give you hands-on experience and help you learn from others.
Browse courses on Open Source
Show steps
  • Find open source Android projects to contribute to
  • Choose a project that you are interested in and have the skills to contribute to
  • Follow the project's contribution guidelines
  • Make your contributions and submit pull requests
Develop an automated testing script
Apply your testing knowledge by creating an automated testing script using the Robotium framework to simulate user interactions and validate the functionality of your Android app.
Show steps
  • Design and implement an automated testing script using Robotium.
  • Use the script to test the UI and functionality of an Android app.
  • Refine the script to improve its efficiency and accuracy (optional).
Build a Sample Android App with Good Software Patterns
Build a sample Android app from scratch and apply the software patterns discussed in the course. This will help you understand how to use these patterns in practice.
Browse courses on Software Patterns
Show steps
  • Choose an Android app idea
  • Design the app architecture
  • Implement the app using software patterns
  • Test and debug the app
  • Share your app on the Google Play Store

Career center

Learners who complete Engineering Maintainable Android Apps will develop knowledge and skills that may be useful to these careers:
Mobile Quality Assurance Engineer
Mobile Quality Assurance Engineers are responsible for ensuring the quality of mobile software applications. This course may be useful for those who are experienced Mobile Quality Assurance Engineers.
Android Developer
Android Developers are responsible for the design, development, and maintenance of Android applications. This course may be useful for those who are experienced Android Developers.
Java Developer
Java Developers are responsible for the design, development, and maintenance of Java applications. This course may be useful for those who are experienced Java Developers.
Software Test Engineer
Software Test Engineers are responsible for testing software applications to ensure that they are working correctly. This course may be useful for those who are experienced Software Test Engineers.
Software Quality Assurance Engineer
Software Quality Assurance Engineers are responsible for ensuring the quality of software applications. This course may be useful for those who are experienced Software Quality Assurance Engineers.
Mobile Software Engineer
Mobile Software Engineers are responsible for the design, development, and maintenance of mobile software applications. This course may be useful for those who are experienced Mobile Software Engineers.
Android Software Engineer
Android Software Engineers are responsible for the design, development, and maintenance of Android software applications. This course may be useful for those who are experienced Android Software Engineers.
Java Software Engineer
Java Software Engineers are responsible for the design, development, and maintenance of Java software applications. This course may be useful for those who are experienced Java Software Engineers.
Software Engineer
Software Engineers design, develop, and maintain software systems. This course may be useful for those looking to enter this field as it provides an introduction to software engineering and testing, which are essential skills for software engineers. The course also covers topics such as unit testing and test-driven development, which are important for ensuring the quality and reliability of software systems.
Technical Writer
Technical Writers are responsible for creating documentation for software products. This course may be useful for those looking to enter this field as it provides an introduction to software engineering and testing, which are essential skills for technical writers. The course also covers topics such as unit testing and test-driven development, which are important for ensuring the quality and reliability of software documentation.
Mobile Application Developer
Mobile Application Developers are responsible for the design, development, and maintenance of mobile applications. This course may be useful for those looking to enter this field as it provides an introduction to software engineering and testing, which are essential skills for mobile app developers. The course also covers topics such as unit testing and test-driven development, which are important for ensuring the quality and reliability of mobile apps.
Technical Lead
Technical Leads are responsible for leading teams of software engineers. This course may be useful for those looking to enter this field as it provides an introduction to software engineering and testing, which are essential skills for technical leads. The course also covers topics such as unit testing and test-driven development, which are important for ensuring the quality and reliability of software systems.
Software Architect
Software Architects design and develop software systems. This course may be useful for those looking to enter this field as it provides an introduction to software engineering and testing, which are essential skills for software architects. The course also covers topics such as unit testing and test-driven development, which are important for ensuring the quality and reliability of software systems.
Test Engineer
Test Engineers are responsible for testing software systems to ensure that they are working correctly and meeting the requirements of the users. This course may be useful for those looking to enter this field as it provides an introduction to software engineering and testing, which are essential skills for test engineers. The course also covers topics such as unit testing and test-driven development, which are important for ensuring the quality and reliability of software systems.
Project Manager
Project Managers are responsible for planning and managing software development projects. This course may be useful for those looking to enter this field as it provides an introduction to software engineering and testing, which are essential skills for project managers. The course also covers topics such as unit testing and test-driven development, which are important for ensuring the quality and reliability of software systems.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Engineering Maintainable Android Apps.
This comprehensive guide provides in-depth coverage of Android development, from basic concepts to advanced topics such as networking, security, and performance optimization. It valuable resource for both beginners and experienced developers.
Provides a practical guide to Android development, covering the fundamentals of Android programming, including activities, intents, fragments, and layouts. Concepts are explained with simple examples and clear illustrations, making it suitable for beginners and intermediate learners.
Provides an in-depth guide to Android security, covering topics such as application sandboxing, permissions, cryptography, and malware analysis. It valuable resource for developers who want to build secure Android applications.
Hands-on guide to Android Studio 3.0, covering the essential tools and techniques for developing Android apps. It includes step-by-step instructions and practical examples, making it suitable for beginners and experienced developers.
Provides a comprehensive overview of the Android operating system, covering topics such as the Dalvik virtual machine, the Linux kernel, and Android's core libraries. It valuable resource for developers who want to understand the inner workings of Android.
Although this book focuses on test-driven development with Python, it provides valuable insights and principles that can be applied to Android development. It covers topics such as writing testable code, refactoring, and working with a continuous integration pipeline.
Provides insights into the software engineering practices at Google, including their approach to testing, code review, and continuous integration. It offers valuable lessons and best practices that can be applied to Android development.
Provides a comprehensive guide to software architecture, including principles for designing maintainable and scalable software systems. Although it does not specifically focus on Android development, it offers valuable insights that can be applied to any software project.
Although this book focuses on social engineering and security, it offers valuable insights into human behavior and psychology. This knowledge can be applied to Android development by understanding how users interact with apps and how to mitigate potential vulnerabilities and security risks.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Engineering Maintainable Android Apps.
Android Apps with Kotlin: Tools and Testing
Most relevant
ICAgile (ICP-PRG): Automated Testing
Most relevant
Working with Android Tools and Testing
Most relevant
Getting Started with TestNG 6
Most relevant
Testing and Debugging with Android Studio and Gradle
Most relevant
Adapting CLEAN Architecture in Android Apps
Most relevant
Android App Components - Services, Local IPC, and Content...
Most relevant
Architecting an ASP.NET Core MVC Application for Unit...
Most relevant
Java for Android
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser