What people are saying about Notes for Professionals books
These free programming reference books are pretty nice http://books.goalkicker.com
This is perfect for me who's learning to code!
I just download PDF from GoalKicker.com and i look documentation so good and simple.
Whoah, this is awesome! Thanks!!!!!!
Thanks, Great Collection.
Wow! Awesome resource. Thanks a lot!
The Swift™ Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified
Book created for educational purposes and is not affiliated with Swift™ group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners
291 pages, published on May 2018
Author(s): GoalKicker Books
Series: Programming Notes for Professionals
Publisher: GoalKicker Books
Year: 2018
Language: English
Pages: 291
Tags: Programming, Notes, Swift, Professionals
Content list
About
Chapter 1: Getting started with Swift Language
Section 1.1: Your first Swift program
Section 1.2: Your first program in Swift on a Mac (using a Playground)
Section 1.3: Your first program in Swift Playgrounds app on iPad
Section 1.4: Installing Swift
Section 1.5: Optional Value and Optional enum
Chapter 2: Variables & Properties
Section 2.1: Creating a Variable
Section 2.2: Property Observers
Section 2.3: Lazy Stored Properties
Section 2.4: Property Basics
Section 2.5: Computed Properties
Section 2.6: Local and Global Variables
Section 2.7: Type Properties
Chapter 3: Numbers
Section 3.1: Number types and literals
Section 3.2: Convert numbers to/from strings
Section 3.3: Rounding
Section 3.4: Random number generation
Section 3.5: Convert one numeric type to another
Section 3.6: Exponentiation
Chapter 4: Strings and Characters
Section 4.1: String & Character Literals
Section 4.2: Concatenate strings
Section 4.3: String Encoding and Decomposition
Section 4.4: Examine and compare strings
Section 4.5: Reversing Strings
Section 4.6: Check if String contains Characters from a Defined Set
Section 4.7: String Iteration
Section 4.8: Splitting a String into an Array
Section 4.9: Unicode
Section 4.10: Converting Swift string to a number type
Section 4.11: Convert String to and from Data / NSData
Section 4.12: Formatting Strings
Section 4.13: Uppercase and Lowercase Strings
Section 4.14: Remove characters from a string not defined in Set
Section 4.15: Count occurrences of a Character into a String
Section 4.16: Remove leading and trailing WhiteSpace and NewLine
Chapter 5: Booleans
Section 5.1: What is Bool?
Section 5.2: Booleans and Inline Conditionals
Section 5.3: Boolean Logical Operators
Section 5.4: Negate a Bool with the prefix ! operator
Chapter 6: Arrays
Section 6.1: Basics of Arrays
Section 6.2: Extracting values of a given type from an Array with flatMap(_:)
Section 6.3: Combining an Array's elements with reduce(_:combine:)
Section 6.4: Flattening the result of an Array transformation with flatMap(_:)
Section 6.5: Lazily flattening a multidimensional Array with flatten()
Section 6.6: Filtering out nil from an Array transformation with flatMap(_:)
Section 6.7: Subscripting an Array with a Range
Section 6.8: Removing element from an array without knowing it's index
Section 6.9: Sorting an Array of Strings
Section 6.10: Accessing indices safely
Section 6.11: Filtering an Array
Section 6.12: Transforming the elements of an Array with map(_:)
Section 6.13: Useful Methods
Section 6.14: Sorting an Array
Section 6.15: Finding the minimum or maximum element of an Array
Section 6.16: Modifying values in an array
Section 6.17: Comparing 2 Arrays with zip
Section 6.18: Grouping Array values
Section 6.19: Value Semantics
Section 6.20: Accessing Array Values
Chapter 7: Tuples
Section 7.1: What are Tuples?
Section 7.2: Decomposing into individual variables
Section 7.3: Tuples as the Return Value of Functions
Section 7.4: Using a typealias to name your tuple type
Section 7.5: Swapping values
Section 7.6: Tuples as Case in Switch
Chapter 8: Enums
Section 8.1: Basic enumerations
Section 8.2: Enums with associated values
Section 8.3: Indirect payloads
Section 8.4: Raw and Hash values
Section 8.5: Initializers
Section 8.6: Enumerations share many features with classes and structures
Section 8.7: Nested Enumerations
Chapter 9: Structs
Section 9.1: Structs are value types
Section 9.2: Accessing members of struct
Section 9.3: Basics of Structs
Section 9.4: Mutating a Struct
Section 9.5: Structs cannot inherit
Chapter 10: Sets
Section 10.1: Declaring Sets
Section 10.2: Performing operations on sets
Section 10.3: CountedSet
Section 10.4: Modifying values in a set
Section 10.5: Checking whether a set contains a value
Section 10.6: Adding values of my own type to a Set
Chapter 11: Dictionaries
Section 11.1: Declaring Dictionaries
Section 11.2: Accessing Values
Section 11.3: Change Value of Dictionary using Key
Section 11.4: Get all keys in Dictionary
Section 11.5: Modifying Dictionaries
Section 11.6: Merge two dictionaries
Chapter 12: Switch
Section 12.1: Switch and Optionals
Section 12.2: Basic Use
Section 12.3: Matching a Range
Section 12.4: Partial matching
Section 12.5: Using the where statement in a switch
Section 12.6: Matching Multiple Values
Section 12.7: Switch and Enums
Section 12.8: Switches and tuples
Section 12.9: Satisfy one of multiple constraints using switch
Section 12.10: Matching based on class - great for prepareForSegue
Section 12.11: Switch fallthroughs
Chapter 13: Optionals
Section 13.1: Types of Optionals
Section 13.2: Unwrapping an Optional
Section 13.3: Nil Coalescing Operator
Section 13.4: Optional Chaining
Section 13.5: Overview - Why Optionals?
Chapter 14: Conditionals
Section 14.1: Optional binding and "where" clauses
Section 14.2: Using Guard
Section 14.3: Basic conditionals: if-statements
Section 14.4: Ternary operator
Section 14.5: Nil-Coalescing Operator
Chapter 15: Error Handling
Section 15.1: Error handling basics
Section 15.2: Catching dierent error types
Section 15.3: Catch and Switch Pattern for Explicit Error Handling
Section 15.4: Disabling Error Propagation
Section 15.5: Create custom Error with localized description
Chapter 16: Loops
Section 16.1: For-in loop
Section 16.2: Repeat-while loop
Section 16.3: For-in loop with filtering
Section 16.4: Sequence Type forEach block
Section 16.5: while loop
Section 16.6: Breaking a loop
Chapter 17: Protocols
Section 17.1: Protocol Basics
Section 17.2: Delegate pattern
Section 17.3: Associated type requirements
Section 17.4: Class-Only Protocols
Section 17.5: Protocol extension for a specific conforming class
Section 17.6: Using the RawRepresentable protocol (Extensible Enum)
Section 17.7: Implementing Hashable protocol
Chapter 18: Functions
Section 18.1: Basic Use
Section 18.2: Functions with Parameters
Section 18.3: Subscripts
Section 18.4: Methods
Section 18.5: Variadic Parameters
Section 18.6: Operators are Functions
Section 18.7: Passing and returning functions
Section 18.8: Function types
Section 18.9: Inout Parameters
Section 18.10: Throwing Errors
Section 18.11: Returning Values
Section 18.12: Trailing Closure Syntax
Section 18.13: Functions With Closures
Chapter 19: Extensions
Section 19.1: What are Extensions?
Section 19.2: Variables and functions
Section 19.3: Initializers in Extensions
Section 19.4: Subscripts
Section 19.5: Protocol extensions
Section 19.6: Restrictions
Section 19.7: What are extensions and when to use them
Chapter 20: Classes
Section 20.1: Defining a Class
Section 20.2: Properties and Methods
Section 20.3: Reference Semantics
Section 20.4: Classes and Multiple Inheritance
Section 20.5: deinit
Chapter 21: Type Casting
Section 21.1: Downcasting
Section 21.2: Type casting in Swift Language
Section 21.3: Upcasting
Section 21.4: Example of using a downcast on a function parameter involving subclassing
Section 21.5: Casting with switch
Chapter 22: Generics
Section 22.1: The Basics of Generics
Section 22.2: Constraining Generic Placeholder Types
Section 22.3: Generic Class Examples
Section 22.4: Using Generics to Simplify Array Functions
Section 22.5: Advanced Type Constraints
Section 22.6: Generic Class Inheritance
Section 22.7: Use generics to enhance type-safety
Chapter 23: OptionSet
Section 23.1: OptionSet Protocol
Chapter 24: Reading & Writing JSON
Section 24.1: JSON Serialization, Encoding, and Decoding with Apple Foundation and the Swift Standard Library
Section 24.2: SwiftyJSON
Section 24.3: Freddy
Section 24.4: JSON Parsing Swift 3
Section 24.5: Simple JSON parsing into custom objects
Section 24.6: Arrow
Chapter 25: Advanced Operators
Section 25.1: Bitwise Operators
Section 25.2: Custom Operators
Section 25.3: Overflow Operators
Section 25.4: Commutative Operators
Section 25.5: Overloading + for Dictionaries
Section 25.6: Precedence of standard Swift operators
Chapter 26: Method Swizzling
Section 26.1: Extending UIViewController and Swizzling viewDidLoad
Section 26.2: Basics of Swift Swizzling
Section 26.3: Basics of Swizzling - Objective-C
Chapter 27: Reflection
Section 27.1: Basic Usage for Mirror
Section 27.2: Getting type and names of properties for a class without having to instantiate it
Chapter 28: Access Control
Section 28.1: Basic Example using a Struct
Section 28.2: Subclassing Example
Section 28.3: Getters and Setters Example
Chapter 29: Closures
Section 29.1: Closure basics
Section 29.2: Syntax variations
Section 29.3: Passing closures into functions
Section 29.4: Captures, strong/weak references, and retain cycles
Section 29.5: Using closures for asynchronous coding
Section 29.6: Closures and Type Alias
Chapter 30: Initializers
Section 30.1: Convenience init
Section 30.2: Setting default property values
Section 30.3: Customizing initialization with parameters
Section 30.4: Throwable Initilizer
Chapter 31: Associated Objects
Section 31.1: Property, in a protocol extension, achieved using associated object
Chapter 32: Concurrency
Section 32.1: Obtaining a Grand Central Dispatch (GCD) queue
Section 32.2: Concurrent Loops
Section 32.3: Running tasks in a Grand Central Dispatch (GCD) queue
Section 32.4: Running Tasks in an OperationQueue
Section 32.5: Creating High-Level Operations
Chapter 33: Getting Started with Protocol Oriented Programming
Section 33.1: Using protocols as first class types
Section 33.2: Leveraging Protocol Oriented Programming for Unit Testing
Chapter 34: Functional Programming in Swift
Section 34.1: Extracting a list of names from a list of Person(s)
Section 34.2: Traversing
Section 34.3: Filtering
Section 34.4: Using Filter with Structs
Section 34.5: Projecting
Chapter 35: Function as first class citizens in Swift
Section 35.1: Assigning function to a variable
Section 35.2: Passing function as an argument to another function, thus creating a Higher-Order Function
Section 35.3: Function as return type from another function
Chapter 36: Blocks
Section 36.1: Non-escaping closure
Section 36.2: Escaping closure
Chapter 37: The Defer Statement
Section 37.1: When to use a defer statement
Section 37.2: When NOT to use a defer statement
Chapter 38: Style Conventions
Section 38.1: Fluent Usage
Section 38.2: Clear Usage
Section 38.3: Capitalization
Chapter 39: NSRegularExpression in Swift
Section 39.1: Extending String to do simple pattern matching
Section 39.2: Basic Usage
Section 39.3: Replacing Substrings
Section 39.4: Special Characters
Section 39.5: Validation
Section 39.6: NSRegularExpression for mail validation
Chapter 40: RxSwift
Section 40.1: Disposing
Section 40.2: RxSwift basics
Section 40.3: Creating observables
Section 40.4: Bindings
Section 40.5: RxCocoa and ControlEvents
Chapter 41: Swift Package Manager
Section 41.1: Creation and usage of a simple Swift package
Chapter 42: Working with C and Objective-C
Section 42.1: Use a module map to import C headers
Section 42.2: Using Objective-C classes from Swift code
Section 42.3: Specify a bridging header to swiftc
Section 42.4: Use the C standard library
Section 42.5: Fine-grained interoperation between Objective-C and Swift
Section 42.6: Using Swift classes from Objective-C code
Chapter 43: Documentation markup
Section 43.1: Class documentation
Section 43.2: Documentation styles
Chapter 44: Typealias
Section 44.1: typealias for closures with parameters
Section 44.2: typealias for empty closures
Section 44.3: typealias for other types
Chapter 45: Dependency Injection
Section 45.1: Dependency Injection with View Controllers
Section 45.2: Dependency Injection Types
Chapter 46: Caching on disk space
Section 46.1: Reading
Section 46.2: Saving
Chapter 47: Algorithms with Swift
Section 47.1: Sorting
Section 47.2: Insertion Sort
Section 47.3: Selection sort
Section 47.4: Asymptotic analysis
Section 47.5: Quick Sort - O(n log n) complexity time
Section 47.6: Graph, Trie, Stack
Chapter 48: Swift Advance functions
Section 48.1: Flatten multidimensional array
Section 48.2: Introduction with advance functions
Chapter 49: Completion Handler
Section 49.1: Completion handler with no input argument
Section 49.2: Completion handler with input argument
Chapter 50: Swift HTTP server by Kitura
Section 50.1: Hello world application
Chapter 51: Generate UIImage of Initials from String
Section 51.1: InitialsImageFactory
Chapter 52: Design Patterns - Creational
Section 52.1: Singleton
Section 52.2: Builder Pattern
Section 52.3: Factory Method
Section 52.4: Observer
Section 52.5: Chain of responsibility
Section 52.6: Iterator
Chapter 53: Design Patterns - Structural
Section 53.1: Adapter
Section 53.2: Facade
Chapter 54: (Unsafe) Buer Pointers
Section 54.1: UnsafeMutablePointer
Section 54.2: Practical Use-Case for Buer Pointers
Chapter 55: Cryptographic Hashing
Section 55.1: HMAC with MD5, SHA1, SHA224, SHA256, SHA384, SHA512 (Swift 3)
Section 55.2: MD2, MD4, MD5, SHA1, SHA224, SHA256, SHA384, SHA512 (Swift 3)
Chapter 56: AES encryption
Section 56.1: AES encryption in CBC mode with a random IV (Swift 3.0)
Section 56.2: AES encryption in CBC mode with a random IV (Swift 2.3)
Section 56.3: AES encryption in ECB mode with PKCS7 padding
Chapter 57: PBKDF2 Key Derivation
Section 57.1: Password Based Key Derivation 2 (Swift 3)
Section 57.2: Password Based Key Derivation 2 (Swift 2.3)
Section 57.3: Password Based Key Derivation Calibration (Swift 2.3)
Section 57.4: Password Based Key Derivation Calibration (Swift 3)
Chapter 58: Logging in Swift
Section 58.1: dump
Section 58.2: Debug Print
Section 58.3: print() vs dump()
Section 58.4: print vs NSLog
Chapter 59: Memory Management
Section 59.1: Reference Cycles and Weak References
Section 59.2: Manual Memory Management
Chapter 60: Performance
Section 60.1: Allocation Performance
Credits
You may also like