Compatibility
Swift | works with iOS 7+ |
iOS 7 | iPhone 4 |
iOS 9 | iPhone 4S, iPad Mini, iPad 2&3, touch 5 |
iOS 10+ | iPhone 5+, iPad Mini 2+, iPad 4, touch 6 |
- 95%+ devices are on iOS 10/11
- iOS 10+ only requires 2x and 3x images (no need to include 1x images)
REPL – Read Evaluate Print Loop
- command line input for quick testing
- open terminal:
- sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- xcrun swift
Naming Style Guide
- use camel case
- Class names are capitalized
- don’t use all caps nor _’s
- name parameters for functions/inits
- spaces matter → do not put numbers right next to operation stmts
- (ie.
i>=4
should bei >= 4
)
Playground
- not attached to a file
- more of a scratch pad for testing
- cannot be used to test memory management
Scope
- can access variables only in the portion of the program in which they are declared
- can be limited to: if stmts, for loops, functions, classes, global
- global is the default if declared in an area that isn’t scoped
Data Types
Named
- type that can be given a particular name when it is defined
- includes arrays, dictionaries, optionals, classes, structures, enumerations, and protocols
Compound
- type without a name, defined in the Swift language itself
- includes tuples, closures, & functions
Declaration
var
– used to create a variablelet
– used to create a constant
- use
let
whenever possible → performance improvements (fixed memory size) - when the type is obvious, let Swift infer it
- types cannot be changed once set