Please enable JavaScript.
Coggle requires JavaScript to display documents.
What is Swift programming language? - Coggle Diagram
What is Swift programming language?
Useful links
Tour of Swift
https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html
Swift Development Resources
https://developer.apple.com/swift/resources/
Swift Tutorial
https://www.tutorialspoint.com/swift/index.html
Learning to code with Swift
https://www.altexsoft.com/blog/engineering/the-good-and-the-bad-of-swift-programming-language/
Getting Started with Swift
https://swift.org/getting-started/#installing-swift
What is it?
An intuitive programming language created by Apple in 2014 for their products. It is said to be concise, fast, easy to understand and use, and safe (its syntax encourages clean and consistent code and Swift includes safeguards to stop errors and increase readability).
Features
Variables are always initialised before use.
Array indices are checked for out-of-bounds errors.
Integers are checked for overflow.
Options ensure that nil values are handed explicitly.
Memory is managed automatically.
Error handling allows controlled recovery from unexpected failures.
Generics that are easy to use.
Protocol extensions that male writing generic code easier.
First class functions and a lightweight closure syntax.
Fast and concise iteration over a range or collection.
Tuples and multiple return values.
Structs that support methods, extensions and protocols.
Enums that have payloads and support pattern matching.
Functional programming patterns like filter and map.
Native error handling using try/catch/throw.
Open source, so it's available to everyone.
Pros and cons
Pros
Rapid development process.
Easier to scale the product and the team.
Improved safety and performance.
Decreased memory footprint.
Interoperability with Objective-C.
Automatic memory management.
Full stack potential and cross-device support.
Large open source community and high learnability.
Cons
Still young, so it's limited to naive libraries, tools and will be unstable after each release.
Limited talent pool.
Poor interoperability with third-party tools and IDEs.
Lack of support for earlier iOS versions, can only use in apps that target iOS7 and later.