Chapter 1: Introduction to Objective-C
- Lesson 1: What is Objective-C?
- Lesson 2: History of Objective-C and Its Relationship with C and Smalltalk
- Lesson 3: Objective-C Applications and Use Cases
- Lesson 4: Setting Up the Objective-C Development Environment (Xcode, Clang, GCC)
- Lesson 5: Writing Your First Objective-C Program
- Lesson 6: Introduction to Objective-C Syntax
- Lesson 7: Compiling and Running Objective-C Code
Chapter 2: Variables, Data Types, and Constants
- Lesson 1: Understanding Variables in Objective-C
- Lesson 2: Data Types: int, float, double, char, NSString, BOOL, etc.
- Lesson 3: Declaring and Initializing Variables
- Lesson 4: The const Keyword and Preprocessor Macros
- Lesson 5: The static Keyword and Scope Rules
- Lesson 6: Type Inference with auto
Chapter 3: Operators in Objective-C
- Lesson 1: Arithmetic Operators
- Lesson 2: Relational and Comparison Operators
- Lesson 3: Logical Operators
- Lesson 4: Bitwise and Shift Operators
- Lesson 5: Assignment Operators
- Lesson 6: Ternary Operator and Compound Assignment
- Lesson 7: Using @() for NSNumber Wrapping
Chapter 4: Control Structures
- Lesson 1: Introduction to Control Flow
- Lesson 2: if, else, and else-if Statements
- Lesson 3: switch-case Statement
- Lesson 4: Loops: for, while, and do-while
- Lesson 5: The foreach Loop in Objective-C
- Lesson 6: Break, Continue, and Goto Statements
Chapter 5: Functions and Methods
- Lesson 1: Introduction to Functions in Objective-C
- Lesson 2: Function Declaration and Invocation
- Lesson 3: Passing Parameters: By Value, By Reference (Pointers)
- Lesson 4: Default Arguments
- Lesson 5: Method Overloading (Conceptual)
- Lesson 6: Using Blocks (Anonymous Functions)
- Lesson 7: Functions Returning Pointers
Chapter 6: Enumerations and Structures
- Lesson 1: Introduction to Enumerations
- Lesson 2: Declaring and Using Enums
- Lesson 3: Enum vs. Enum Class (NS_ENUM and NS_OPTIONS)
- Lesson 4: Understanding and Declaring Structures (struct)
- Lesson 5: Differences Between typedef and #define for Enums
Chapter 7: Arrays and Collections
- Lesson 1: Declaring and Initializing Arrays
- Lesson 2: Multidimensional Arrays
- Lesson 3: Pointers and Arrays Relationship
- Lesson 4: Dynamic Arrays with NSMutableArray
- Lesson 5: Dictionary and Hash Table with NSDictionary and NSMutableDictionary
- Lesson 6: Set and Ordered Collections with NSSet and NSOrderedSet
Chapter 8: Working with Strings
- Lesson 1: Introduction to NSString and NSMutableString
- Lesson 2: String Manipulation and Common Methods
- Lesson 3: Working with C-Style Strings (char *)
- Lesson 4: String Formatting and Interpolation
- Lesson 5: Regular Expressions in Objective-C
Chapter 9: Object-Oriented Programming in Objective-C
- Lesson 1: Introduction to OOP Concepts
- Lesson 2: Defining and Using Classes
- Lesson 3: Object Allocation and Initialization (alloc and init)
- Lesson 4: Instance Variables and Access Control
- Lesson 5: Properties and Synthesized Methods
- Lesson 6: Understanding @property and @synthesize
- Lesson 7: Category and Extensions
Chapter 10: Inheritance and Polymorphism
- Lesson 1: Understanding Inheritance in Objective-C
- Lesson 2: Base and Derived Classes
- Lesson 3: Overriding Methods (super Keyword)
- Lesson 4: Abstract Classes and Protocols (Objective-C Interfaces)
- Lesson 5: Dynamic Typing with id
Chapter 11: Exception Handling
- Lesson 1: Basics of Exception Handling in Objective-C
- Lesson 2: Using @try, @catch, and @finally
- Lesson 3: Custom Exception Classes
- Lesson 4: Handling NSError Effectively
Chapter 12: Working with Dates and Time
- Lesson 1: Basics of NSDate and NSDateFormatter
- Lesson 2: Time Zones and Locale Formatting
- Lesson 3: Working with Timers (NSTimer)
Chapter 1: Modern Objective-C Features
- Lesson 1: Overview of Objective-C Enhancements (ARC, Property Attributes, etc.)
- Lesson 2: Automatic Reference Counting (ARC) and Memory Management
- Lesson 3: Weak and Strong References
- Lesson 4: Objective-C Generics and Lightweight Syntax
- Lesson 5: Nullability Annotations (nonnull, nullable)
Chapter 2: File I/O and Serialization
- Lesson 1: File Handling Basics with NSFileManager
- Lesson 2: Working with Streams and File Descriptors
- Lesson 3: JSON and XML Parsing
- Lesson 4: Property List (Plist) Serialization
- Lesson 5: Writing and Reading Binary Data
Chapter 3: Performance Optimization
- Lesson 1: Profiling and Benchmarking Code
- Lesson 2: Using Instruments for Debugging
- Lesson 3: Efficient Memory Management Strategies
Chapter 4: Asynchronous and Multithreading
- Lesson 1: Introduction to Grand Central Dispatch (GCD)
- Lesson 2: NSOperationQueue for Concurrent Programming
- Lesson 3: Asynchronous Programming with Blocks and Closures
Chapter 5: Preprocessor Directives
- Lesson 1: Overview of Preprocessor Directives in Objective-C
- Lesson 2: Using #define, #if, #elif, and #pragma
- Lesson 3: Conditional Compilation and Debugging
Chapter 6: Signal Handling in Objective-C
- Lesson 1: What Are Signals?
- Lesson 2: Handling POSIX Signals in Objective-C
- Lesson 3: Graceful Error Handling Using Signals
Chapter 7: Objective-C Design Patterns
- Lesson 1: Introduction to Design Patterns
- Lesson 2: Creational Patterns | Singleton, Factory Method, Abstract Factory, Builder, Prototype
- Lesson 3: Structural Patterns | Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
- Lesson 4: Behavioral Patterns | Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
- Lesson 5: MVC (Model-View-Controller) in Objective-C
Chapter 8: Networking and Socket Programming
- Lesson 1: Introduction to Networking in Objective-C
- Lesson 2: HTTP Requests with NSURLSession
- Lesson 3: TCP and UDP Socket Programming with BSD Sockets
Chapter 9: Security and Cryptography
- Lesson 1: Introduction to Cryptography and Secure Data Handling
- Lesson 2: Using Keychain Services for Secure Storage
- Lesson 3: Encrypting and Decrypting Data
Chapter 10: Creating Objective-C Libraries
- Lesson 1: Creating a Static Library (.a)
- Lesson 2: Creating a Dynamic Framework (.framework)
- Lesson 3: Distributing and Versioning Libraries
- Lesson 4: Integrating Objective-C Libraries with Swift