Complete Swift Language Learning Roadmap

Phase 1

Foundation and Prerequisites

Programming Fundamentals

  • Understanding compilation vs interpretation
  • Program execution flow
  • Memory management concepts
  • Static vs dynamic typing
  • Object-oriented programming principles
  • Protocol-oriented programming introduction
  • Functional programming basics
  • Understanding runtime environments

Development Environment Setup

  • Installing Xcode
  • Xcode interface navigation
  • Playground exploration
  • Swift REPL usage
  • Command line tools installation
  • Package manager understanding
  • Version control with Git
  • Setting up repositories

Computer Science Basics

  • Data structures fundamentals
  • Algorithm complexity analysis
  • Big O notation
  • Time and space complexity
  • Basic problem-solving approaches
  • Logical thinking development
  • Debugging mindset
Phase 2

Swift Language Core Concepts

Basic Syntax and Data Types

  • Variables and constants
  • Type inference and type annotation
  • Integer types and their ranges
  • Floating-point numbers
  • Boolean values
  • String and character types
  • Tuples and their usage
  • Optionals concept
  • Type aliases
  • Type safety mechanisms
  • Type conversion and casting

Operators and Expressions

  • Arithmetic operators
  • Comparison operators
  • Logical operators
  • Range operators
  • Nil-coalescing operator
  • Ternary conditional operator
  • Operator precedence
  • Operator overloading
  • Custom operators
  • Bitwise operators
  • Overflow operators
  • Assignment operators

Control Flow

  • Conditional statements if-else
  • Guard statements
  • Switch statements
  • Pattern matching in switch
  • Value binding
  • Where clauses
  • For-in loops
  • While loops
  • Repeat-while loops
  • Break and continue
  • Fallthrough in switch
  • Labeled statements
  • Early exit strategies

Collections

  • Arrays declaration and initialization
  • Array operations and methods
  • Dictionaries fundamentals
  • Dictionary operations
  • Sets and their operations
  • Collection mutability
  • Iterating collections
  • Higher-order functions on collections
  • Collection slicing
  • Collection protocols
  • Lazy collections
  • Collection performance characteristics

Functions

  • Function declaration and calling
  • Parameters and return values
  • Function types
  • Argument labels
  • Default parameter values
  • Variadic parameters
  • In-out parameters
  • Function overloading
  • Nested functions
  • First-class functions
  • Function as return types
  • Capturing values
  • Autoclosures

Closures

  • Closure expressions
  • Trailing closures
  • Capturing values from context
  • Closure reference cycles
  • Escaping and non-escaping closures
  • Shorthand argument names
  • Implicit returns
  • Operator methods as closures
  • Closure optimization
  • Weak and unowned references in closures

Enumerations

  • Basic enumeration syntax
  • Associated values
  • Raw values
  • Iterating over cases
  • Recursive enumerations
  • Enumeration methods
  • Computed properties in enums
  • Pattern matching with enums
  • Generic enumerations
  • Result type enumeration

Structures and Classes

  • Structure definition and initialization
  • Class definition and initialization
  • Properties stored and computed
  • Property observers
  • Type properties
  • Instance methods
  • Type methods
  • Value types vs reference types
  • Identity operators
  • Choosing between structures and classes
  • Mutating methods
  • Self keyword usage

Properties and Methods

  • Stored properties
  • Computed properties with getters and setters
  • Read-only computed properties
  • Property observers willSet and didSet
  • Lazy stored properties
  • Type properties static and class
  • Instance methods
  • Type methods
  • Method parameters and return values
  • External and internal parameter names
  • Modifying value types with mutating
  • Self in methods

Initialization and Deinitialization

  • Initializer syntax
  • Default initializers
  • Memberwise initializers
  • Initialization parameters
  • Optional property initialization
  • Constant property assignment
  • Default property values
  • Customizing initialization
  • Initializer delegation for value types
  • Class inheritance and initialization
  • Designated and convenience initializers
  • Two-phase initialization
  • Initializer inheritance and overriding
  • Failable initializers
  • Required initializers
  • Deinitialization process
  • Deinitializer implementation

Inheritance

  • Defining base classes
  • Subclassing syntax
  • Overriding methods
  • Overriding properties
  • Overriding property observers
  • Preventing overrides with final
  • Accessing superclass methods
  • Class hierarchy design
  • Abstract base patterns
  • Polymorphism concepts
  • Dynamic dispatch
  • Method resolution order

Protocols

  • Protocol syntax and definition
  • Property requirements
  • Method requirements
  • Mutating method requirements
  • Initializer requirements
  • Protocol as types
  • Protocol composition
  • Protocol conformance checking
  • Optional protocol requirements
  • Protocol extensions
  • Default implementations
  • Conditional conformance
  • Associated types in protocols
  • Generic where clauses with protocols
  • Protocol-oriented design patterns

Extensions

  • Extension syntax
  • Computed property extensions
  • Initializer extensions
  • Method extensions
  • Nested type extensions
  • Protocol conformance via extensions
  • Extending generic types
  • Organizing code with extensions
  • Extension constraints
  • Retroactive modeling

Generics

  • Generic functions
  • Type parameters
  • Generic types
  • Generic constraints
  • Associated types
  • Where clauses
  • Generic subscripts
  • Extending generic types
  • Phantom types
  • Type erasure concepts
  • Conditional conformance
  • Recursive constraints
  • Generic type aliases

Memory Management

  • Automatic Reference Counting principles
  • Strong references
  • Weak references
  • Unowned references
  • Reference cycles detection
  • Resolving strong reference cycles
  • Closure capture lists
  • Memory graphs
  • Retain cycles in closures
  • Value semantics benefits
  • Copy-on-write optimization
  • Memory layout understanding

Error Handling

  • Error protocol
  • Throwing functions
  • Do-catch syntax
  • Try expressions
  • Try optional
  • Try forced
  • Propagating errors
  • Converting errors to optionals
  • Custom error types
  • Error handling patterns
  • Result type usage
  • Cleanup actions with defer
  • Assertions and preconditions
  • Fatal errors

Type Casting and Introspection

  • Type checking with is
  • Downcasting with as
  • Type casting for any and anyobject
  • Type introspection
  • Checking protocol conformance
  • Dynamic type checking
  • Mirror API for reflection
  • Type metadata
  • Runtime type information

Access Control

  • Open access level
  • Public access level
  • Internal access level
  • File-private access level
  • Private access level
  • Access control for protocols
  • Access control for extensions
  • Access control for properties
  • Access control for initializers
  • Subclassing with access control
  • Module organization

Advanced Operators

  • Bitwise NOT operator
  • Bitwise AND operator
  • Bitwise OR operator
  • Bitwise XOR operator
  • Bitwise left shift
  • Bitwise right shift
  • Overflow addition operator
  • Overflow subtraction operator
  • Overflow multiplication operator
  • Compound assignment operators
  • Equivalence operators
  • Custom operator definition
  • Operator precedence groups

Opaque Types and Boxed Protocol Types

  • Opaque return types
  • Some keyword usage
  • Differences from protocol types
  • Boxed protocol types with any
  • Type identity preservation
  • Generic constraints with opaque types
  • Combining opaque and generic code
  • Performance implications
Phase 3

Swift Standard Library

String Manipulation

  • String creation and initialization
  • String interpolation
  • Unicode scalar representation
  • Character iteration
  • String indices
  • Substring types
  • String comparison
  • String searching
  • Regular expressions
  • String performance considerations
  • AttributedString
  • LocalizedStringKey
  • String formatting options

Numeric Types and Operations

  • Integer type variations
  • Floating-point precision
  • Numeric conversions
  • Math operations
  • Rounding behaviors
  • Random number generation
  • Numeric protocols
  • SIMD types
  • Complex number handling
  • Decimal type usage

Collection Algorithms

  • Map transformation
  • Filter selection
  • Reduce aggregation
  • FlatMap flattening
  • CompactMap unwrapping
  • ForEach iteration
  • Sorted ordering
  • Reversed reversal
  • Shuffled randomization
  • Partition division
  • First and last element access
  • Drop and prefix operations
  • Contains checking
  • AllSatisfy validation
  • Zip combination
  • Enumerated indexing

Sequence and Iterator Protocols

  • Sequence protocol conformance
  • Iterator protocol implementation
  • Custom sequence creation
  • Lazy sequences
  • UnfoldSequence generation
  • Infinite sequences
  • Sequence algorithms
  • Iterator patterns
  • Async sequences
  • AsyncIteratorProtocol

Optional Handling Techniques

  • Optional binding
  • Optional chaining
  • Nil-coalescing defaults
  • Force unwrapping considerations
  • Implicitly unwrapped optionals
  • Optional map and flatMap
  • Optional pattern matching
  • Guard let usage patterns
  • Multiple optional binding
  • Optional comparison

Result Type

  • Result type definition
  • Success and failure cases
  • Error transformation
  • Result map operations
  • Result flatMap chaining
  • Converting throwing to Result
  • Converting Result to throwing
  • Result in asynchronous code
  • Result builders compatibility

Range Types

  • Closed range
  • Half-open range
  • One-sided ranges
  • Range expressions
  • Countable ranges
  • Range subscripting
  • Range iteration
  • Range contains checking
  • Range overlaps detection
  • Partial range operations

Key Paths

  • Key path syntax
  • Key path types
  • Writable key paths
  • Reference writable key paths
  • Key path composition
  • Key path as functions
  • Key path member lookup
  • Key path performance
Phase 4

Foundation Framework

Date and Time Handling

  • Date structures
  • DateComponents usage
  • Calendar operations
  • TimeZone handling
  • DateFormatter customization
  • ISO8601DateFormatter
  • Relative date formatting
  • Date arithmetic
  • Date comparison
  • Timer scheduling
  • Duration measurement
  • Clock protocol

URL and Networking Basics

  • URL structure and components
  • URLComponents manipulation
  • URL encoding and decoding
  • URLRequest configuration
  • HTTP methods
  • Request headers
  • URLSession fundamentals
  • Data tasks
  • Download tasks
  • Upload tasks
  • Background sessions
  • Session configuration
  • Cookie management
  • Cache policies
  • Authentication challenges

File System Operations

  • FileManager usage
  • File paths and URLs
  • Directory enumeration
  • File attributes
  • File creation and deletion
  • Directory creation
  • File copying and moving
  • File existence checking
  • Temporary directories
  • Bundle resources
  • Document directory access
  • File permissions
  • File system notifications

Data Serialization

  • Codable protocol
  • Encoder and Decoder
  • JSON encoding
  • JSON decoding
  • Property list encoding
  • Custom coding keys
  • Nested types encoding
  • Date encoding strategies
  • Data encoding strategies
  • Handling null values
  • Polymorphic decoding
  • Archive and unarchive
  • NSCoding protocol

User Defaults and Persistence

  • UserDefaults storage
  • Standard UserDefaults
  • Storing primitive types
  • Storing collections
  • Custom object storage
  • UserDefaults synchronization
  • Observation patterns
  • Migration strategies
  • Security considerations

Notifications and Observers

  • NotificationCenter usage
  • Adding observers
  • Posting notifications
  • Notification object and userInfo
  • Removing observers
  • Block-based observation
  • Notification queues
  • Distributed notifications
  • KVO key-value observing
  • Property observation
  • Combine framework integration

String Localization

  • NSLocalizedString
  • Localization files
  • String catalogs
  • Pluralization rules
  • String formatting
  • Region-specific content
  • RTL language support
  • Locale handling
  • Number formatting
  • Currency formatting
  • Measurement formatting

Data Structures

  • NSArray and NSMutableArray
  • NSDictionary and NSMutableDictionary
  • NSSet and NSMutableSet
  • NSOrderedSet
  • NSCache usage
  • IndexSet operations
  • NSCountedSet
  • Bridging with Swift collections

Operation and OperationQueue

  • Operation class
  • BlockOperation usage
  • Custom operation subclasses
  • Operation dependencies
  • OperationQueue management
  • Queue priority
  • Concurrent operations
  • Operation cancellation
  • Quality of service
  • Asynchronous operation patterns

RunLoop and Threading

  • RunLoop fundamentals
  • Main run loop
  • Run loop modes
  • Timer scheduling
  • Input sources
  • Perform selector methods
  • Thread creation
  • Thread synchronization
  • Thread-safe patterns
  • GCD relationship
Phase 5

Concurrency

Grand Central Dispatch Fundamentals

  • Dispatch queues concept
  • Serial queues
  • Concurrent queues
  • Global queues
  • Main queue usage
  • Custom queue creation
  • Queue attributes
  • Quality of service classes
  • Queue priorities
  • Target queues

Asynchronous Programming with GCD

  • Dispatch async
  • Dispatch sync
  • Dispatch after delayed execution
  • Dispatch once
  • Barrier tasks
  • Work items
  • Dispatch groups
  • Dispatch semaphores
  • Dispatch sources
  • IO operations

Swift Concurrency Model

  • Async functions
  • Await keyword
  • Async let bindings
  • Structured concurrency
  • Task creation
  • Task priorities
  • Task cancellation
  • Task groups
  • Task local values
  • Unstructured tasks
  • Detached tasks

Actors

  • Actor isolation
  • Actor types definition
  • Actor state management
  • Nonisolated members
  • Global actors
  • MainActor usage
  • Custom global actors
  • Actor reentrancy
  • Actor executor
  • Sendable protocol

Sendable and Data Races

  • Sendable protocol conformance
  • Value type sendability
  • Reference type sendability
  • Non-sendable types
  • Sendable closures
  • Unchecked sendable
  • Data race detection
  • Thread sanitizer
  • Atomic operations
  • Synchronization primitives

AsyncSequence and AsyncStream

  • AsyncSequence protocol
  • Async iteration
  • AsyncStream creation
  • AsyncThrowingStream
  • Custom async sequences
  • Async sequence algorithms
  • Back pressure handling
  • Cancellation support
  • Buffer strategies

Continuations

  • Checked continuations
  • Unsafe continuations
  • Throwing continuations
  • Bridging callback-based APIs
  • Continuation resume
  • Continuation lifecycle
  • Error handling in continuations
  • Multiple resume protection
Phase 6

User Interface Development

UIKit Framework Core

  • UIView hierarchy
  • View lifecycle
  • UIViewController basics
  • View controller lifecycle
  • Navigation patterns
  • Presentation styles
  • Container view controllers
  • Auto Layout fundamentals
  • Constraint creation
  • Layout anchors
  • Stack views
  • Size classes
  • Trait collections
  • Safe area layout

SwiftUI Fundamentals

  • Declarative syntax
  • View protocol
  • Body property
  • View modifiers
  • View composition
  • State management basics
  • View updates
  • Environment values
  • Preference keys
  • View builder
  • Custom views
  • View identity

SwiftUI State Management

  • State property wrapper
  • Binding creation
  • ObservableObject protocol
  • Published properties
  • StateObject lifecycle
  • ObservedObject usage
  • EnvironmentObject injection
  • Bindable protocol
  • Observable macro
  • Data flow patterns
  • Single source of truth

SwiftUI Layout System

  • VStack vertical stacking
  • HStack horizontal stacking
  • ZStack layering
  • Spacer usage
  • Divider placement
  • GeometryReader
  • Layout protocol
  • Custom layouts
  • Alignment guides
  • Frame modifiers
  • Padding and spacing
  • Grid layouts
  • Lazy stacks

SwiftUI Navigation

  • NavigationStack
  • NavigationSplitView
  • NavigationPath
  • NavigationLink
  • Programmatic navigation
  • Deep linking
  • Tab views
  • Sheet presentation
  • Full screen cover
  • Popover presentation
  • Alert dialogs
  • Confirmation dialogs
  • Navigation state management

SwiftUI Lists and Forms

  • List creation
  • List styling
  • Section grouping
  • ForEach iteration
  • Dynamic lists
  • List selection
  • Swipe actions
  • List editing
  • Form creation
  • Form sections
  • Picker views
  • Toggle controls
  • TextField input
  • TextEditor multiline

SwiftUI Animations

  • Implicit animations
  • Explicit animations
  • Animation curves
  • Spring animations
  • Custom animations
  • Animation modifiers
  • Transition effects
  • Combined transitions
  • Asymmetric transitions
  • Matched geometry effect
  • Animation timing
  • Gesture-driven animations

SwiftUI Graphics and Drawing

    • Shape protocol
    • Path creation
    • Custom shapes
    • Canvas drawing
    • TimelineView
    • Color gradients
    • Image rendering
    • SF Symbols
    • Graphics context
    • Blend modes
    • Mask effects
    • Clipping shapes

    UIKit Advanced Patterns

    • MVC architecture
    • MVVM architecture
    • Coordinator pattern
    • Delegate patterns
    • Target-action
    • Responder chain
    • Custom controls
    • Custom transitions
    • Interactive transitions
    • View controller containment

    Interface Builder and Storyboards

    • Storyboard structure
    • Scene management
    • Segues configuration
    • IBOutlet connections
    • IBAction connections
    • Size classes in IB
    • Adaptive layouts
    • Localization in IB
    • Custom view in IB
    • IBDesignable
    • IBInspectable

    Collection Views

    • UICollectionView basics
    • Collection view layouts
    • Compositional layouts
    • Diffable data sources
    • Cell registration
    • Supplementary views
    • Decoration views
    • Custom layouts
    • Interactive layouts
    • Self-sizing cells
    • Prefetching

    Table Views

    • UITableView fundamentals
    • Table view styles
    • Cell reuse
    • Custom cells
    • Section headers and footers
    • Editing mode
    • Row insertion and deletion
    • Row reordering
    • Swipe actions
    • Diffable data sources for tables
    • Self-sizing table cells

    Gesture Recognizers

    • Tap gestures
    • Long press gestures
    • Pan gestures
    • Swipe gestures
    • Pinch gestures
    • Rotation gestures
    • Custom gesture recognizers
    • Gesture dependencies
    • Simultaneous gestures
    • Gesture delegate methods

    Core Animation

    • CALayer basics
    • Layer properties
    • Implicit animations
    • Explicit animations
    • Animation groups
    • Keyframe animations
    • Timing functions
    • Animation delegates
    • Layer masking
    • Shape layers
    • Gradient layers
    • Replicator layers
    • Transform animations
  • Phase 7

    Data Persistence

    Core Data Fundamentals

    • Managed object model
    • Entity definitions
    • Attribute types
    • Relationship configuration
    • Persistent container
    • Managed object context
    • Fetch requests
    • Predicates
    • Sort descriptors
    • Fetched results controller
    • Batch operations
    • Migrations

    Core Data Advanced Concepts

    • Context hierarchies
    • Background contexts
    • Context merging
    • Batch insert requests
    • Batch update requests
    • Batch delete requests
    • Persistent history tracking
    • CloudKit integration
    • Derived attributes
    • Transient properties
    • Indexed attributes
    • Unique constraints
    • Fetched properties

    SwiftData Framework

    • Model macro
    • Schema definition
    • Model container
    • Model context
    • Query macro
    • Relationship definitions
    • Migration strategies
    • CloudKit synchronization
    • Undo management
    • Model customization

    SQLite Integration

    • SQLite library usage
    • Database connection
    • SQL statement execution
    • Prepared statements
    • Parameter binding
    • Transaction management
    • Result set handling
    • Schema creation
    • Indexing strategies
    • Full-text search
    • BLOB handling
    • Wrapper libraries comparison

    Realm Database

    • Realm object definition
    • Primary keys
    • Relationships in Realm
    • Realm queries
    • Realm transactions
    • Notifications
    • Migration procedures
    • Thread safety
    • Realm Studio
    • Sync capabilities

    File-Based Storage

    • Document-based apps
    • File wrapper usage
    • Package format
    • XML processing
    • CSV parsing
    • Binary file handling
    • Compression techniques
    • File encryption
    • Atomic writing
    • File coordinators

    Keychain Services

    • Keychain item storage
    • Password storage
    • Certificate storage
    • Generic password items
    • Internet password items
    • Access control lists
    • Keychain sharing
    • Background access
    • Security frameworks
    • Biometric authentication

    Cloud Storage Integration

    • CloudKit containers
    • Record types
    • Public database
    • Private database
    • Shared database
    • CKRecord operations
    • CKQuery execution
    • Subscriptions
    • Push notifications
    • Asset handling
    • Zone-based architecture
    Phase 8

    Networking and APIs

    RESTful API Communication

    • HTTP protocol understanding
    • GET request patterns
    • POST request patterns
    • PUT and PATCH requests
    • DELETE requests
    • Request headers configuration
    • Response handling
    • Status code interpretation
    • Query parameters
    • Path parameters
    • Request body formatting
    • Multipart form data
    • Authentication tokens

    URLSession Advanced

    • Session delegates
    • Task delegates
    • Custom protocol handling
    • Certificate pinning
    • SSL/TLS configuration
    • Proxy configuration
    • Cookie handling
    • Redirect policies
    • Timeout configuration
    • Progress tracking
    • Metrics collection
    • Network conditions simulation

    JSON Processing

    • JSONDecoder configuration
    • JSONEncoder configuration
    • Decoding strategies
    • Encoding strategies
    • Nested structures
    • Optional handling
    • Array decoding
    • Dictionary decoding
    • Custom date formats
    • Snake case conversion
    • Error handling in decoding
    • Pretty printing JSON

    WebSocket Communication

    • WebSocket protocol
    • URLSessionWebSocketTask
    • Connection establishment
    • Message sending
    • Message receiving
    • Ping-pong frames
    • Close handshake
    • Reconnection strategies
    • Binary message handling
    • Third-party libraries

    GraphQL Integration

    • GraphQL query structure
    • Mutations
    • Subscriptions
    • Apollo client
    • Code generation
    • Cache management
    • Optimistic updates
    • Error handling
    • Pagination
    • Fragment usage
    • Schema introspection

    API Architecture Patterns

    • Repository pattern
    • Service layer pattern
    • Network layer abstraction
    • Response mapping
    • Error mapping
    • Request building
    • Endpoint configuration
    • API versioning
    • Mock services
    • Dependency injection for networking

    Image Loading and Caching

    • Asynchronous image loading
    • Image cache implementation
    • Memory cache
    • Disk cache
    • Cache eviction policies
    • Image downloading
    • Image resizing
    • Format conversion
    • Third-party SDKs
    • Progressive loading

    Real-time Communication

    • Server-sent events
    • Long polling
    • Push notifications setup
    • Remote notification handling
    • Silent notifications
    • Notification categories
    • Custom actions
    • Rich notifications
    • Firebase Cloud Messaging
    • Socket-based communication
    Phase 9

    Testing and Quality Assurance

    Unit Testing Fundamentals

    • XCTest framework
    • Test case structure
    • Test methods
    • Assertions
    • Test lifecycle
    • Setup and teardown
    • Asynchronous testing
    • Performance testing
    • Test organization
    • Test naming conventions
    • Code coverage

    Test-Driven Development

    • Red-green-refactor cycle
    • Writing failing tests
    • Minimal implementation
    • Refactoring techniques
    • Test isolation
    • Dependency management in tests
    • Mocking strategies
    • Test doubles
    • Behavior verification
    • State verification

    UI Testing

    • XCUITest framework
    • UI element queries
    • Accessibility identifiers
    • User interaction simulation
    • Tap and swipe gestures
    • Text input
    • Waiting for elements
    • Screenshots in tests
    • Test recording
    • Cross-platform testing
    • Continuous integration setup

    Mocking and Stubbing

    • Protocol-based mocking
    • Mock object creation
    • Stub responses
    • Spy objects
    • Fake implementations
    • Dependency injection
    • Mock frameworks
    • Network mocking
    • Time mocking
    • Verification of calls

    Code Quality Tools

    • SwiftLint integration
    • Custom lint rules
    • Code formatting
    • Static analysis
    • Cyclomatic complexity
    • Code smells detection
    • Documentation coverage
    • Deprecation warnings
    • Compiler warnings management

    Debugging Techniques

    • Breakpoints usage
    • Conditional breakpoints
    • Symbolic breakpoints
    • Exception breakpoints
    • Print debugging
    • LLDB commands
    • View hierarchy debugging
    • Memory graph debugging
    • Network debugging
    • Instruments profiling

    Performance Testing

    • Time profiler
    • Allocations instrument
    • Leaks detection
    • Energy diagnostics
    • Network profiling
    • Core Data profiling
    • Animation performance
    • Rendering performance
    • Launch time optimization
    • Battery usage analysis
    Phase 10

    Advanced Swift Concepts

    Property Wrappers

    • Property wrapper definition
    • Wrapped value
    • Projected value
    • Composition of wrappers
    • Generic property wrappers
    • Property wrapper on functions
    • SwiftUI property wrappers
    • Custom wrapper creation
    • Initialization requirements
    • Static properties in wrappers

    Result Builders

    • Result builder attribute
    • Build block methods
    • Build expression
    • Build optional
    • Build either
    • Build array
    • Build limited availability
    • Custom DSL creation
    • SwiftUI view builder
    • Attributed string builder

    Macros System

    • Freestanding macros
    • Attached macros
    • Expression macros
    • Declaration macros
    • Accessor macros
    • Member macros
    • MemberAttribute macros
    • Peer macros
    • Conformance macros
    • Extension macros
    • Macro implementation