Swift
From Lost In Wonderlands
Contents
- 1 Swift
- 1.1 See also
- 1.2 Swift
- 1.3 Swift with Style
- 1.4 Swift API design
- 1.5 Swift Standard Library
- 1.6 Swift protocols
- 1.7 Swift Generics
- 1.8 Swift Patterns
- 1.9 Swift Algorithms
- 1.10 Topics
- 1.11 A
- 1.12 B
- 1.13 C
- 1.14 D
- 1.15 E
- 1.16 F
- 1.17 G
- 1.18 H
- 1.19 I
- 1.20 J
- 1.21 K
- 1.22 L
- 1.23 M
- 1.24 N
- 1.25 O
- 1.26 P
- 1.27 Q
- 1.28 R
- 1.29 S
- 1.30 T
- 1.31 U
- 1.32 V
- 1.33 W
- 1.34 X
- 1.35 Y
- 1.36 Z
- 1.37 swift versions
- 1.38 Sample codes
- 1.39 Articles
- 1.40 Blogs
- 1.41 Tools link
- 1.42 Books
- 1.43 Trainings
Swift
See also
- AppleSwift
- Swift
- SwiftUI
Swift
Swift Topics
Data Flow and Control Flow
- https://developer.apple.com/documentation/swift/maintaining_state_in_your_apps
- https://developer.apple.com/documentation/swift/preventing_timing_problems_when_using_closures
Data Modeling
- https://developer.apple.com/documentation/swift/choosing_between_structures_and_classes
- https://developer.apple.com/documentation/swift/adopting_common_protocols
Language Interoperability
Class Bridging
Swift and Objective C and C
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/improving_objective-c_api_declarations_for_swift
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/making_objective-c_apis_unavailable_in_swift
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/designating_nullability_in_objective-c_apis
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/renaming_objective-c_apis_for_swift
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/improving_objective-c_api_declarations_for_swift
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/grouping_related_objective-c_constants
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/marking_api_availability_in_objective-c
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/making_objective-c_apis_unavailable_in_swift
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization/customizing_your_c_code_for_swift
- https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis
- https://developer.apple.com/documentation/swift/migrating_your_objective-c_code_to_swift
- https://developer.apple.com/documentation/swift/objective-c_and_c_code_customization
- https://developer.apple.com/documentation/swift/handling_dynamically_typed_methods_and_objects_in_swift
- https://developer.apple.com/documentation/swift/using_objective-c_runtime_features_in_swift
Cocoa Design Patterns and Swift
- https://developer.apple.com/documentation/swift/cocoa_design_patterns
- https://developer.apple.com/documentation/swift/cocoa_design_patterns/using_key-value_observing_in_swift
- https://developer.apple.com/documentation/swift/cocoa_design_patterns/using_delegates_to_customize_object_behavior
- https://developer.apple.com/documentation/swift/cocoa_design_patterns/managing_a_shared_resource_using_a_singleton
- https://developer.apple.com/documentation/swift/cocoa_design_patterns/about_imported_cocoa_error_parameters
- https://developer.apple.com/documentation/swift/cocoa_design_patterns/handling_cocoa_errors_in_swift
Swift with Style
- https://docs.swift.org/swift-book/
- Apple Official Swifty Style
- google style
- Jet Brain AppCode Style
- NSHipster Style
- Erica Sadun Style, are you a 4 denter ?
- raywenderlich style
- a Missing Guide on Swift Code Style?
Swift API design
Swift Standard Library
Swift protocols
protocols conformance
protocols
- https://developer.apple.com/documentation/swift/identifiable
- https://developer.apple.com/documentation/swift/comparable
- https://developer.apple.com/documentation/swift/equatable
- https://developer.apple.com/documentation/swift/hashable
- https://developer.apple.com/documentation/swift/caseiterable
- https://developer.apple.com/documentation/swift/rawrepresentable
- https://developer.apple.com/documentation/swift/codable
- https://developer.apple.com/documentation/swift/encodable
- https://developer.apple.com/documentation/swift/decodable
- https://developer.apple.com/documentation/swift/codingkey
- https://developer.apple.com/documentation/swift/keyedencodingcontainerprotocol
- https://developer.apple.com/documentation/swift/keyeddecodingcontainerprotocol
- https://developer.apple.com/documentation/swift/singlevaluedecodingcontainer
- https://developer.apple.com/documentation/swift/unkeyedencodingcontainer
- https://developer.apple.com/documentation/swift/unkeyeddecodingcontainer
- https://developer.apple.com/documentation/swift/swift_standard_library/initialization_with_literals
- https://developer.apple.com/documentation/swift/expressiblebyarrayliteral
- https://developer.apple.com/documentation/swift/expressiblebydictionaryliteral
- https://developer.apple.com/documentation/swift/expressiblebyintegerliteral
- https://developer.apple.com/documentation/swift/expressiblebyfloatliteral
- https://developer.apple.com/documentation/swift/expressiblebybooleanliteral
- https://developer.apple.com/documentation/swift/expressiblebynilliteral
- https://developer.apple.com/documentation/swift/expressiblebystringliteral
- https://developer.apple.com/documentation/swift/expressiblebystringinterpolation
- https://developer.apple.com/documentation/swift/expressiblebyextendedgraphemeclusterliteral
- https://developer.apple.com/documentation/swift/expressiblebyunicodescalarliteral
- https://developer.apple.com/documentation/swift/stringinterpolationprotocol`
- https://developer.apple.com/documentation/swift/defaultstringinterpolation
- https://developer.apple.com/documentation/swift/customstringconvertible
- https://developer.apple.com/documentation/swift/customdebugstringconvertible
- https://developer.apple.com/documentation/swift/losslessstringconvertible
Swift Generics
Swift Patterns
https://github.com/ochococo/Design-Patterns-In-Swift
Swift Algorithms
- https://swift.org/blog/swift-algorithms/
- https://github.com/apple/swift-algorithms
- https://developer.apple.com/videos/play/wwdc2018/223/
more algorithms
in python
in C++
tutorials
- https://www.raywenderlich.com/18517868-swift-algorithms-getting-started
- https://medium.com/swift-algorithms-data-structures/building-generic-algorithms-with-swift-64e20499309
- https://medium.com/swift-algorithms-data-structures
- https://www.programmez.com/actualites/swift-dispose-dune-nouvelle-bibliotheque-swift-algorithms-30992
- https://www.infoq.com/news/2020/10/swift-algorithms-open-sourced/
forums
books
Topics
A
Application Transport Security
- http://www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/
- http://www.neglectedpotential.com/2016/06/network-security-changes-for-ios/
- https://developer.apple.com/documentation/security/preventing_insecure_network_connections
- https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity
- https://stackoverflow.com/questions/43257249/disable-app-transport-security-for-simulator-only
- https://developers.google.com/admob/ios/app-transport-security
- https://cocoacasts.com/how-to-add-app-transport-security-exception-domains
- https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33
B
C
Compiler Directives
- constants for Apple Platforms OS
iOS , tvOS, macOS, watchOS, iPadOS (should be this for iPad)
- directive model
#if os(iOS) || os(tvOS) ... #elseif (os(macOS) ... #endif
- In #if compiler directive in Swift, you need to enclosed valid statements.
You may need to write something like this:
#if os(iOS) var body: some View { NavigationView{ ... } .navigationViewStyle(StackNavigationViewStyle()) } #else var body: some View { NavigationView{ ... } .navigationViewStyle(DoubleColumnNavigationViewStyle()) } #endif
Or this:
var body: some View { let navView = NavigationView{ ... } #if os(iOS) return navView .navigationViewStyle(StackNavigationViewStyle()) #else return navView .navigationViewStyle(DoubleColumnNavigationViewStyle()) #endif }
but not this: As you can see, .navigationViewStyle(StackNavigationViewStyle()) is not a valid statement.
NavigationView { ... } #if os(iOS) .navigationViewStyle(StackNavigationViewStyle()) #endif
D
Do, Try /Catch
E
F
G
H
HTTPCookieStorage
I
issues with REST and URLSession
- https://stackoverflow.com/questions/66492789/swift-httprequest-works-on-simulator-but-not-on-device-iphone-11
- https://stackoverflow.com/questions/42705278/swift-url-session-and-url-request-not-working
- https://stackoverflow.com/questions/39860879/swift-3-urlsession-urlrequest-not-working
- https://stackoverflow.com/questions/28352674/http-request-in-swift-not-working
- https://developer.apple.com/forums/thread/67085
J
JSONDecoder
JSONEncoder
JSONSerialisation
K
L
M
N
NSAppTransportSecurity
https://stackoverflow.com/questions/8023126/how-can-i-test-https-connections-with-django-as-easily-as-i-can-non-https-connec https://gist.github.com/claudiosanches/7012524 https://www.google.com/search?client=safari&rls=en&q=ios++swift+url+maker+and+localhost++plus+port+number&ie=UTF-8&oe=UTF-8 https://github.com/depoon/SwiftLocalhost
- mostly on a simulator to access a http://localhost:portnum/service hosted on the same host
- IOS reinforce the access to HTTPS only since ioS 7
- for sometime it was possible to grant htpp access in the info plist but now we have to grant more things
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
- local host or 127.0.0.1
var rest_url = "http://127.0.0.1:8000/rest/users/"
- https://docs.microsoft.com/fr-fr/xamarin/cross-platform/deploy-test/connect-to-local-web-services
- https://stackoverflow.com/questions/25702354/ios-simulator-access-localhost-server/55686530
- http://adaptivejs.mobify.com/v2.0/docs/debug-on-ios-devices-and-the-ios-simulator/
- https://www.browserstack.com/question/663
- https://learnappmaking.com/urlsession-swift-networking-how-to/
- https://www.appsdeveloperblog.com/http-get-request-example-in-swift/
NSURLConnection
O
P
- debugPrint
special print keywords
Literal Type Value
Tag | Type | Description |
---|---|---|
#file | String | The name of the file in which it appears. |
#fileID | String | The name of the file and module in which it appears. |
#filePath | String | The path to the file in which it appears. |
#line | int | The line number on which it appears. |
#column | Int | The column number in which it begins. |
#function | String | The name of the declaration in which it appears. |
#dsohandle | UnsafeMutablePointer | The dso handle. |
Q
R
REST API call
- https://stackoverflow.com/questions/24321165/make-rest-api-call-in-swift
- https://www.appcoda.com/restful-api-library-swift/
- https://abhimuralidharan.medium.com/universal-links-in-ios-79c4ee038272
testing it using curl
sample code
S
T
try /catch
U
URl Cache
URLSessionConfiguration
- https://developer.apple.com/documentation/foundation/urlsessionconfiguration/
- https://useyourloaf.com/blog/urlsessionconfiguration-quick-guide/
- https://stackoverflow.com/questions/45785458/swift-urlsessionconfiguration
URLComponents, how to build a safe escaped url /uri
- https://www.swiftbysundell.com/articles/constructing-urls-in-swift/
- https://developer.apple.com/documentation/foundation/url_loading_system
- https://developer.apple.com/documentation/xcode/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app
- https://www.appcoda.com/working-url-schemes-ios/
- https://medium.com/swift2go/building-safe-url-in-swift-using-urlcomponents-and-urlqueryitem-alfian-losari-510a7b1f3c7e
- https://www.avanderlee.com/swift/url-components/
- https://www.raywenderlich.com/7565482-visually-rich-links-tutorial-for-ios-image-thumbnails
- https://developer.apple.com/forums/thread/666662
sample code
URLCredentielStorage
URLRequest
- https://developer.apple.com/documentation/foundation/urlrequest
- https://cocoacasts.com/networking-fundamentals-how-to-make-an-http-request-in-swift
- https://stackoverflow.com/questions/24016142/how-do-i-make-an-http-request-in-swift
URLSession
- https://developer.apple.com/documentation/foundation/urlsession
- https://developer.apple.com/documentation/foundation/urlsession/1409000-shared
- https://www.raywenderlich.com/3244963-urlsession-tutorial-getting-started
- https://learnappmaking.com/urlsession-swift-networking-how-to/
- ttps://medium.com/@bachur.nicolas/urlsession-vs-alamofire-reflexion-autour-des-requetes-reseaux-a0c199da540c
- hhttps://cocoacasts.com/networking-in-swift-meet-the-urlsession-family
- https://stackoverflow.com/questions/41600446/urlsession-best-practice-multiple-requests
- https://www.appsdeveloperblog.com/http-get-request-example-in-swift/
Using JSON with custom Type
V
W
X
Y
Z
swift versions
WWDC 2020
WWDC2019
WWDC 2018
WWDC 2017
WWDC 2016
Sample codes
Apple on GitHub for swift
Rest API
- https://github.com/jocull/SharpProxy
- https://github.com/depoon/SwiftLocalhost
- https://github.com/Alamofire/Alamofire