We may earn an affiliate commission when you visit our partners.
Don Patterson and Sam Kaufman

An introduction to the Objective-C programming language. This will prepare you for more extensive iOS app development and build a foundation for advanced iOS development topics.

Objective-C programming requires a Mac laptop or desktop computer. An iOS device is optional if the learner is willing to working exclusively with the simulator. Some learners have been able to work with an OS X virtual machine on Windows, but explaining how to do that is beyond the scope of this course.

Upon completing this course, you will be able to:

1. Read and write Objective-C

Read more

An introduction to the Objective-C programming language. This will prepare you for more extensive iOS app development and build a foundation for advanced iOS development topics.

Objective-C programming requires a Mac laptop or desktop computer. An iOS device is optional if the learner is willing to working exclusively with the simulator. Some learners have been able to work with an OS X virtual machine on Windows, but explaining how to do that is beyond the scope of this course.

Upon completing this course, you will be able to:

1. Read and write Objective-C

2. Have a strong grasp of Objective-C objects

3. Organize their code professionally using objects and blocks

4. Prototype several entry-level apps

Enroll now

What's inside

Syllabus

Get Ready. Get Set. Go!
Welcome to Week 1! This week we will be discussing a variety of topics including the tools that we will be using, a basic orientation to the programming environment and the very basic programming syntax that Objective-C inherits from the C language.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
This course teaches skills, knowledge, and tools that are core skills for iOS app development
Builds a strong foundation for beginners in iOS app development and Objective-C programming
Taught by experienced instructors in Objective-C programming and iOS app development

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Foundations of objective-c app development

According to students, this course provides a solid foundation in the Objective-C language, covering core concepts like objects and memory management effectively. Many appreciate the clear explanations and find the instructor knowledgeable. However, a frequent point raised is the current relevance of Objective-C itself, as Swift is now the primary language for modern iOS development, making the course best suited for those needing to understand legacy code. The requirement for a Mac computer is also noted as a significant barrier to entry for some learners. While it offers a good intro to Objective-C, students report it doesn't cover modern app development frameworks.
Suitable for learners with some C background.
"As someone with a C background, this course was a perfect next step to understand Objective-C."
"It moves quickly, so having some prior programming knowledge, especially in C, is very helpful."
"I found the pace manageable as a beginner who had already completed a basic C course."
Explains core Objective-C concepts well.
"This course does a great job of explaining the fundamentals of Objective-C, particularly objects and memory management."
"I gained a clear understanding of how Objective-C objects work and how to send messages between them."
"It really helped me solidify my grasp of the basic syntax and structure needed to start working with Objective-C code."
Doesn't cover building modern apps/UI.
"It teaches the language, but doesn't show how to actually build a user interface or a complete modern app."
"I was hoping for more practical examples of building app components, not just language concepts."
"This focuses purely on the language itself, not on using frameworks like UIKit or SwiftUI, which is what you need for apps."
Requires a Mac, which is a barrier.
"Be aware, you absolutely need a Mac for this course. That requirement isn't clearly highlighted upfront and can be an issue."
"The Mac-only requirement made it inaccessible for me initially, though I eventually found a workaround."
"Wish there was a way to do this on Windows without a VM; the hardware requirement is tough."
Language is less relevant for new development.
"While the course content is good, it's important to know that Objective-C is not widely used for new app development anymore; Swift is the standard."
"It's a useful course if you need to work with older codebases, but don't expect to build a modern app solely with this."
"Learned the language basics, but the practical application seems limited now that Swift is dominant."

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 Foundations of Objective-C App Development with these activities:
Practice programming logic
Strengthen your problem-solving skills by practicing programming logic, which will benefit your understanding of Objective-C.
Browse courses on Programming Logic
Show steps
  • Solve logic puzzles or brainteasers.
  • Participate in online coding challenges.
  • Implement simple algorithms in Objective-C.
Review Objective-C basics
Refresh your memory on the fundamental concepts of Objective-C programming, such as data types and control structures.
Browse courses on Programming Fundamentals
Show steps
  • Review your notes or textbook from previous programming courses.
  • Take practice quizzes or exercises on basic Objective-C concepts.
Organize your course materials
Keep your course materials organized and accessible by compiling them into a single location, making it easier to review and reference information.
Show steps
  • Gather all your course notes, assignments, and quizzes.
  • Create a system for organizing and filing your materials.
  • Use digital or physical tools to keep your materials organized.
Three other activities
Expand to see all activities and additional details
Show all six activities
Solve Objective-C coding problems
Strengthen your understanding of Objective-C syntax and problem-solving skills by working through coding exercises.
Show steps
  • Find practice problems online or in books.
  • Set a timer and try to solve the problems within the allotted time.
  • Check your solutions against the provided answers or consult with a mentor or tutor.
Join an Objective-C study group
Enhance your learning by collaborating with peers in a study group, where you can discuss concepts, share ideas, and work on projects together.
Browse courses on Collaborative Learning
Show steps
  • Find or start an Objective-C study group online or in your local area.
  • Meet regularly with your study group to discuss course materials and work on assignments.
  • Share your knowledge and experiences, and learn from others in the group.
Contribute to an Objective-C open source project
Deepen your understanding of Objective-C by contributing to an open source project, where you can work with others and learn from their code.
Browse courses on Collaborative Development
Show steps
  • Find an Objective-C open source project that aligns with your interests.
  • Read the project's documentation and codebase.
  • Identify an area where you can contribute.
  • Submit a pull request with your proposed changes.
  • Collaborate with the project maintainers to refine and merge your contributions.

Career center

Learners who complete Foundations of Objective-C App Development will develop knowledge and skills that may be useful to these careers:
Mobile Application Developer
A Mobile Application Developer is responsible for designing, developing, and maintaining mobile applications. This course provides a strong foundation for aspiring Mobile Application Developers as it covers the basics of Objective-C programming, which is the primary programming language used for iOS development. The course also covers topics such as object-oriented programming, memory management, and data structures, which are all essential concepts for mobile application developers.
iOS Developer
An iOS Developer is responsible for designing, developing, and maintaining iOS applications. This course provides a strong foundation for aspiring iOS Developers as it covers the basics of Objective-C programming, which is the primary programming language used for iOS development. The course also covers topics such as object-oriented programming, memory management, and data structures, which are all essential concepts for iOS developers.
Software Engineer
A Software Engineer is responsible for designing, developing, and maintaining software applications. This course may be useful for aspiring Software Engineers as it provides a foundation in Objective-C programming, which is a popular language for iOS and Mac development. The course also covers topics such as object-oriented programming, memory management, and data structures, which are all essential concepts for software engineers.
Software Development Manager
A Software Development Manager is responsible for leading a team of software developers and ensuring that software development projects are completed on time, within budget, and to the required quality standards. This course may be useful for aspiring Software Development Managers as it provides a foundation in Objective-C programming, which is a popular language for iOS app development. The course also covers topics such as object-oriented programming, memory management, and data structures, which are all essential concepts for software developers.
Project Manager
A Project Manager is responsible for planning, executing, and closing projects. This course may be useful for aspiring Project Managers as it provides a foundation in Objective-C programming, which can be helpful for developing software solutions for project management. However, it is important to note that Objective-C is not as commonly used for project management as other languages such as Java and C#.
Technical Writer
A Technical Writer is responsible for creating and maintaining technical documentation. This course may be useful for aspiring Technical Writers as it provides a foundation in Objective-C programming, which can be helpful for understanding the technical details of software products. However, it is important to note that Objective-C is not as commonly used for technical writing as other languages such as English and French.
User Experience Designer
A User Experience Designer is responsible for designing and evaluating the user experience of products and services. This course may be useful for aspiring User Experience Designers as it provides a foundation in Objective-C programming, which can be helpful for understanding the technical aspects of user interfaces. However, it is important to note that Objective-C is not as commonly used for user experience design as other languages such as HTML and CSS.
Quality Assurance Analyst
A Quality Assurance Analyst is responsible for testing and evaluating software products to ensure that they meet quality standards. This course may be useful for aspiring Quality Assurance Analysts as it provides a foundation in Objective-C programming, which can be helpful for understanding the technical details of software products. However, it is important to note that Objective-C is not as commonly used for quality assurance as other languages such as Java and C#.
Database Administrator
A Database Administrator is responsible for managing and maintaining databases. This course may be useful for aspiring Database Administrators as it provides a foundation in Objective-C programming, which can be helpful for understanding the technical aspects of databases. However, it is important to note that Objective-C is not as commonly used for database administration as other languages such as SQL and NoSQL.
Network Administrator
A Network Administrator is responsible for managing and maintaining computer networks. This course may be useful for aspiring Network Administrators as it provides a foundation in Objective-C programming, which can be helpful for understanding the technical aspects of computer networks. However, it is important to note that Objective-C is not as commonly used for network administration as other languages such as Python and Bash.
Systems Administrator
A Systems Administrator is responsible for managing and maintaining computer systems. This course may be useful for aspiring Systems Administrators as it provides a foundation in Objective-C programming, which can be helpful for understanding the technical aspects of computer systems. However, it is important to note that Objective-C is not as commonly used for systems administration as other languages such as Linux and Windows.
IT Support Specialist
An IT Support Specialist is responsible for providing technical support to users of computer systems and software. This course may be useful for aspiring IT Support Specialists as it provides a foundation in Objective-C programming, which can be helpful for understanding the technical aspects of computer systems and software. However, it is important to note that Objective-C is not as commonly used for IT support as other languages such as Windows and Mac.
Web Developer
A Web Developer is responsible for designing, developing, and maintaining websites. This course may be useful for aspiring Web Developers as it provides a foundation in Objective-C programming, which is a popular language for iOS development. However, it is important to note that Objective-C is not as commonly used for web development as other languages such as JavaScript, HTML, and CSS.
Data Scientist
A Data Scientist is responsible for collecting, analyzing, and interpreting data to extract meaningful insights. This course may be useful for aspiring Data Scientists as it provides a foundation in Objective-C programming, which can be helpful for working with data. However, it is important to note that Objective-C is not as commonly used for data science as other languages such as Python and R.
Business Analyst
A Business Analyst is responsible for analyzing business processes and identifying areas for improvement. This course may be useful for aspiring Business Analysts as it provides a foundation in Objective-C programming, which can be helpful for developing software solutions to business problems. However, it is important to note that Objective-C is not as commonly used for business analysis as other languages such as Java and C#.

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 Foundations of Objective-C App Development.
Is the official documentation for the Objective-C programming language, providing a comprehensive reference for all aspects of the language. It is an essential resource for any serious Objective-C programmer.
Covers advanced topics in Objective-C programming, such as memory management, concurrency, and design patterns. It valuable resource for experienced programmers who want to take their Objective-C skills to the next level.
Provides a comprehensive introduction to the Objective-C programming language. It covers the basics of the language, as well as more advanced topics such as object-oriented programming, memory management, and concurrency.
Comprehensive guide to Cocoa programming for Mac OS X. It covers all the basics of Cocoa, as well as more advanced topics such as object-oriented programming, memory management, and concurrency.
Covers all the basics of iOS development with Swift, as well as more advanced topics such as object-oriented programming, memory management, and concurrency.
Comprehensive guide to software development for experienced programmers. It covers a wide range of topics, including object-oriented programming, memory management, and concurrency.
Classic guide to computer science for experienced programmers. It covers a wide range of topics, including object-oriented programming, memory management, and concurrency.
Classic guide to algorithms for experienced programmers. It covers a wide range of topics, including object-oriented programming, memory management, and concurrency.
Classic guide to algorithms for experienced programmers. It covers a wide range of topics, including object-oriented programming, memory management, and concurrency.
Classic guide to data structures and algorithms for experienced programmers. It covers a wide range of topics, including object-oriented programming, memory management, and concurrency.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser