Index
A
- associated types
- with protocols / Associated types with protocols
B
- behavioral design patterns
- about / Behavioral design patterns
- chain of responsibility pattern / Behavioral design patterns
- command pattern / Behavioral design patterns
- iterator pattern / Behavioral design patterns
- mediator pattern / Behavioral design patterns
- momento pattern / Behavioral design patterns
- observer pattern / Behavioral design patterns, The observer pattern
- strategy pattern / Behavioral design patterns, The strategy pattern
- visitor pattern / Behavioral design patterns
- command design pattern / The command design pattern
- bridge pattern
- about / The bridge pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the bridge pattern
- builder design pattern
- about / The builder design pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the builder pattern
- built in data types
C
- calculator application
- about / Calculator application
- requisites / Requirements
- design / The design
- conclusion / Conclusion
- class
- using, in Swift / The class
- command design pattern
- about / The command design pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the command pattern
- connection layer / Connection layer
- creational patterns
- about / Creational patterns
- abstract factory pattern / Creational patterns
- builder pattern / Creational patterns
- factory method pattern / Creational patterns, The factory method pattern
- prototype pattern / Creational patterns
- singleton pattern / Creational patterns
- singleton design pattern / The singleton design pattern
- builder design pattern / The builder design pattern
D
- data access layer
- with SQLite.swift / Data access layer with SQLite.swift
- requisites / Requirements
- design / The design
- connection layer / Connection layer
- data model layer / Data model layer
- data helper layer / Data helper layer
- conclusion / Conclusion
- data helper layer / Data helper layer
- data model layer / Data model layer
- data structures
- delegation
- about / Delegation
- design patterns
- about / What are design patterns?
- creational patterns / What are design patterns?, Creational patterns
- structural patterns / What are design patterns?
- behavioral patterns / What are design patterns?
- drink types
- implementing / Implementing drink types
E
- elements / The enumerations
- enumerations
- about / The enumerations
- error handling
- about / Error handling
- with return values / Error handling with return values
- with NSError / Error handling with NSError
- with Swift 2 / Error handling with Swift 2
- using / When to use error handling
- extension
- defining / Defining an extension
- protocol / Protocol extensions
F
- factory method pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the factory method pattern
- façade pattern
- about / The façade pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the façade pattern
G
- guard statement
- using / Using the guard statement
I
- inheritance
L
- LoggerProtocol protocol
- methods / The design
- logging service
- about / Logging service
- requisites / Requirements
- design / The design
- conclusion / Conclusion
N
- NSError
- error handling with / Error handling with NSError
O
- object-oriented programming language
- Swift as / Swift as an object-oriented programming language
- vs protocol-oriented programming language / Object-oriented programming versus protocol-oriented programming
- drink types, implementing / Implementing drink types
- observer pattern
- about / The observer pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the observer pattern
P
- pattern / Text validation
- polymorphism / Swift as an object-oriented programming language
- with protocols / Polymorphism with protocols
- protocol
- and protocol extensions, superclasses / Protocol and protocol extensions versus superclasses
- syntax / Protocol syntax
- defining / Defining a protocol
- property, requisites / Property requirements
- method, requisites / Method requirements
- optional, requisites / Optional requirements
- inheritance / Protocol inheritance
- composition / Protocol composition
- using, as type / Using protocols as a type
- polymorphism with / Polymorphism with protocols
- type casting with / Type casting with protocols
- associated types with / Associated types with protocols
- designing with / Designing and developing with protocols
- developing with / Designing and developing with protocols
- about / Protocol extensions
- protocol-oriented programming language
- Swift as / Swift as a protocol-oriented programming language
- vs object-oriented programming language / Summarizing protocol-oriented programming and object-oriented programming
- drink types, implementing / Implementing drink types
- protocols
- about / Protocols
- proxy design pattern
- about / The proxy design pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the proxy pattern
R
- recursive data type
- reference class types
- versus value structure / Value versus class types
- reference types
- vs value types / Value types vs reference types
- regex / Text validation
- return values
- error handling with / Error handling with return values
S
- singleton design pattern
- about / The singleton design pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the singleton pattern
- SQLite
- SQLite.swift
- data access layer with / Data access layer with SQLite.swift
- URL / Data access layer with SQLite.swift, Data helper layer
- strategy pattern
- about / The strategy pattern
- issues / Understanding the problem
- solution / Understanding the solution
- implementing / Implementing the strategy pattern
- structural design patterns
- about / Structural design patterns
- adapter pattern / Structural design patterns
- bridge pattern / Structural design patterns, The bridge pattern
- composite pattern / Structural design patterns
- decorator pattern / Structural design patterns
- façade pattern / Structural design patterns, The façade pattern
- flyweight pattern / Structural design patterns
- proxy pattern / Structural design patterns
- proxy design pattern / The proxy design pattern
- structure
- about / The structure
- superclasses
- vs protocol and protocol extensions / Protocol and protocol extensions versus superclasses
- Swift
- as object-oriented programming language / Swift as an object-oriented programming language
- as protocol-oriented programming language / Swift as a protocol-oriented programming language
- class, using / The class
- standard library, URL / The structure, Swift built-in data types and data structures
- Swift 2, error handling with
- about / Error handling with Swift 2
- errors, representing / Representing errors
- errors, throwing / Throwing errors
- errors, catching / Catching errors
- Swift standard library
- URL / Protocol extensions
T
- text
- validating / Text validation
- TextValidationProtocol protocol
- regExMatchingString / Text validation
- regExFindMatchString / Text validation
- validationMessage / Text validation
- validateString method / Text validation
- getMatchingString method / Text validation
- throwing the error / Throwing errors
- tuple
- about / The tuple
- type casting
- with protocols / Type casting with protocols
V
- value structure
- versus reference class types / Value versus class types
- value types
- vs reference types / Value types vs reference types
W
- winner is
- about / The winner is...