Skip to content

crazymanish/what-matters-most

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Combine framework


Books


Section1: Introduction

  • Publisher

    • Read about publisher #58
    • Built-in publishers
    • Custom publisher
      • DefaultValue #65
      • DefaultError #66
    • Practices
      • NotificationCenter #67
      • URLSession #68
      • UserDefaults #69
      • JSON parsing #70
      • assign(to:on:) #71
  • Subscriber

    • Read about subscriber #72
    • Built-in subscribers
      • sink(receiveCompletion:receiveValue:) #59
      • assign(to:on:) #71
    • Custom subscribers
      • IntSubscriber #74
    • Practices
      • sink(receiveCompletion:receiveValue:) #59
      • assign(to:on:) #71
      • IntSubscriber #74
  • Subject (Publisher & Subscriber)

    • Read about subject #75
    • Built-in subjects
      • PassthroughSubject #76
      • CurrentValueSubject #77
    • Custom subjects? #76, #77
    • Practices #76, #77

Section2: Operators

  • Transforming Operators

    • Collecting values #78
    • Mapping values
      • map value #79
      • map keypath value #80
      • tryMap value #81
    • Flattening publishers #82
    • Replacing/transforming upstream output
      • replaceNil(with:) #83
      • replaceEmpty(with:) #84
      • scan(initialResult, with:) #85
    • Practices #78, #79, #80, #81, #82, #83, #84, #85
  • Filtering Operators

    • Compacting and ignoring
      • filter(_:) tryFilter(_:) #87
      • removeDuplicates(by:) tryRemoveDuplicates(by:) #88
      • compactMap(_:) tryCompactMap(_:) #89
      • ignoreOutput() #90
    • Finding values
      • first() first(where:) tryFirst(where:) #91
      • last() last(where:) tryLast(where:) #91
    • Droping values
      • dropFirst(_:) #92
      • drop(while:) tryDrop(while:) #92
      • drop(untilOutputFrom:) #92
    • Limiting values
      • prefix(_:) #93
      • prefix(while:) tryPrefix(while:) #93
      • prefix(untilOutputFrom:) #93
    • Practices #87, #88, #89, #90, #91, #92, #93, #94
  • Combining Operators

  • Time manipulation Operators

  • Sequence Operators


Section3: Combine in action

  • Networking

  • Debugging

  • Error Handling

    • Never #134
    • Dealing with failure #135
      • try-prefixed operators i.e tryMap
      • mapError(_:)
      • replaceError(with:)
    • Practices #134, #135, #136
  • Schedulers

    • Operators for scheduling #137
      • subscribe(on:) and subscribe(on:options:)
      • receive(on:) and receive(on:options:)
    • Scheduler implementations
      • ImmediateScheduler #138
      • RunLoop DispatchQueue OperationQueue #139
    • Practices #137, #138, #139, #140
  • Timers

  • Key-value Observing


Section4: Production code

  • Complete app
    • Build app #148
    • Unit testing

Start SwiftUI framework

About

learning & practice

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages