We may earn an affiliate commission when you visit our partners.
Course image
Fernando Rodriguez

Take Udacity's free iOS Design Patterns course and explore iOS design patterns — the practical and battle-tested solutions to common problems that are used every day by developers.

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

Learn the core principles and tenets of software design. For full access to this course (and much more!), enroll in our [iOS Developer Nanodegree](http://bit.ly/udacity-ud1029).
Read more
An introduction to creational design patterns. For full access to this course (and much more!), enroll in our [iOS Developer Nanodegree](http://bit.ly/udacity-ud1029).
An introduction to structural design patterns. For full access to this course (and much more!), enroll in our [iOS Developer Nanodegree](http://bit.ly/udacity-ud1029).
An introduction to behavioral design patterns. For full access to this course (and much more!), enroll in our [iOS Developer Nanodegree](http://bit.ly/udacity-ud1029).
An introduction to software anti-patterns. For full access to this course (and much more!), enroll in our [iOS Developer Nanodegree](http://bit.ly/udacity-ud1029).

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Suitable for intermediate iOS Developers who wish to explore design patterns
Taught by expert instructor Fernando Rodriguez in the field of iOS development
Provides a comprehensive introduction to core principles of software design

Save this course

Save Mobile Design Patterns to your list so you can find it easily later:
Save

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 Mobile Design Patterns with these activities:
Organize and review course materials
Stay organized and reinforce your learning by actively reviewing course materials.
Browse courses on Assignments
Show steps
  • Gather all course materials, including notes, assignments, and assessments
  • Organize the materials in a way that makes sense to you
  • Regularly review the materials to refresh your knowledge
Read "Head First Design Patterns"
Gain a deeper understanding of design patterns by reading a comprehensive book.
Show steps
  • Go through each chapter and understand the concepts
  • Work through the examples and exercises
Follow iOS design pattern tutorials
Supplement your understanding of design patterns by following hands-on tutorials.
Show steps
  • Find online tutorials on iOS design patterns
  • Follow the instructions and implement the patterns in your projects
One other activity
Expand to see all activities and additional details
Show all four activities
Create a simple iOS app
Get hands-on experience with iOS development and apply the concepts you learn in the course.
Show steps
  • Set up a new Xcode project
  • Design the user interface
  • Implement basic functionality
  • Debug and test your app

Career center

Learners who complete Mobile Design Patterns will develop knowledge and skills that may be useful to these careers:
Software Engineer
A Software Engineer is a highly skilled professional who designs, develops, and maintains software systems. This course provides a solid foundation in software design patterns, which are essential for building robust, scalable, and maintainable software applications. By learning these patterns, Software Engineers can improve the quality and efficiency of their code.
iOS Developer
An iOS Developer specializes in developing mobile applications for Apple's iOS operating system. This course is specifically tailored for iOS Developers, providing them with a comprehensive understanding of iOS design patterns. By mastering these patterns, iOS Developers can create high-quality, user-friendly, and efficient mobile applications.
Software Architect
A Software Architect designs and oversees the development of complex software systems. This course provides a solid foundation in software design patterns, which are essential for creating high-quality, reliable, and maintainable software architectures. By understanding design patterns, Software Architects can make informed decisions and guide development teams towards building robust software systems.
Mobile Application Developer
A Mobile Application Developer designs, develops, and maintains mobile applications for various platforms, including iOS and Android. This course provides a strong foundation in mobile design patterns, enabling Mobile Application Developers to create user-centric, engaging, and effective mobile applications.
Software Consultant
A Software Consultant provides expert advice and guidance to organizations on software development best practices and technologies. This course provides a deep understanding of software design patterns, which are essential for designing and implementing effective software solutions. By becoming proficient in design patterns, Software Consultants can provide valuable insights and recommendations to their clients.
Technical Lead
A Technical Lead is responsible for leading and mentoring software development teams. This course provides a comprehensive understanding of software design patterns, which are essential for building high-performing and scalable software systems. By mastering these patterns, Technical Leads can effectively guide their teams and ensure the delivery of high-quality software products.
Android Developer
An Android Developer creates mobile applications for Android devices. While this course is focused on iOS design patterns, the concepts and principles taught can be applied to Android development as well. By understanding design patterns, Android Developers can improve the architecture and performance of their applications.
Software Quality Assurance Analyst
A Software Quality Assurance Analyst tests and evaluates software to ensure it meets quality standards. This course provides a foundation in software design patterns, which are essential for understanding how software is structured and organized. By learning design patterns, Software Quality Assurance Analysts can more effectively identify and resolve software defects.
Computer Science Professor
A Computer Science Professor teaches and conducts research in computer science. This course may be useful for Computer Science Professors who are interested in incorporating software design patterns into their teaching and research. By understanding design patterns, Computer Science Professors can prepare their students for successful careers in software development.
User Experience Designer
A User Experience Designer focuses on designing and improving the user experience of software products. This course may be useful for User Experience Designers who are interested in understanding the technical aspects of software development. By learning design patterns, User Experience Designers can create user interfaces that are intuitive, user-friendly, and efficient.
Product Manager
A Product Manager is responsible for the development and management of software products. This course may be useful for Product Managers who are interested in understanding the technical aspects of software development. By learning design patterns, Product Managers can better communicate with their engineering teams and make informed decisions about product development.
Web Developer
A Web Developer designs, develops, and maintains websites and web applications. While this course focuses on mobile design patterns, the principles of software design are applicable to web development as well. By understanding design patterns, Web Developers can improve the structure, organization, and maintainability of their web applications.
Technical Writer
A Technical Writer creates and maintains technical documentation for software products and technologies. This course may be useful for Technical Writers who are interested in understanding the technical concepts behind software development. By learning design patterns, Technical Writers can write more accurate and informative documentation.
Game Developer
A Game Developer designs, develops, and maintains video games. This course may be useful for Game Developers who are interested in creating mobile games. By learning design patterns, Game Developers can improve the performance, scalability, and user experience of their games.
Data Scientist
A Data Scientist analyzes and interprets data to extract insights and make predictions. This course may be useful for Data Scientists who are interested in understanding the technical aspects of software development. By learning design patterns, Data Scientists can develop more efficient and effective data processing and analysis algorithms.

Reading list

We've selected six 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 Mobile Design Patterns.
This classic book that provides the foundation for many modern object-oriented design patterns. While it is more theoretical than Udacity's course, it valuable resource for those who want to understand the underlying principles of design patterns.
Is another classic in the field of software development. It provides a set of principles for writing clean and maintainable code. While it does not cover design patterns explicitly, it valuable resource for those who want to learn more about software design in general.
Covers design patterns in the context of modern C++. It good choice for those who want to learn more about design patterns in the context of C++ development.
Covers many of the same design patterns as Udacity's course, but uses a more practical and example-driven approach. It good introduction to the topic for those with little to no experience with design patterns.
Covers design patterns in the context of JavaScript. It good choice for those who want to learn more about design patterns in the context of web development or JavaScript development.

Share

Help others find this course page by sharing it with your friends and followers:
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