Difference between revisions of "Swift"

From Lost In Wonderlands
Jump to: navigation, search
(Created page with "= Swift = '''NeXT Steps''' ''here everything has yet to be done !'' ''coming soon'' : '''''Everything You Always Wanted to Know on Swift... (But Were Afraid to Ask)''''...")
 
(P)
 
(81 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
= Swift =
 
= Swift =
 
'''NeXT Steps'''
 
  ''here everything has yet to be done !''
 
 
''coming soon'' :
 
 
 
'''''Everything You Always Wanted to Know on Swift... (But Were Afraid to Ask)'''''
 
''a collection of links of interest''
 
  
 
== See also ==
 
== See also ==
Line 16: Line 7:
 
* [[TemplateHowTo]]
 
* [[TemplateHowTo]]
  
* [[item1]]
+
* [[AppleSwift]]
* [[item1]]
+
* [[Swift]]
 +
* [[SwiftUI]]
 +
 
 
* [[item1]]
 
* [[item1]]
 
* [[item1]]
 
* [[item1]]
  
 
== Swift ==
 
== 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 =====
 +
* https://developer.apple.com/documentation/foundation/object_runtime/classes_bridged_to_swift_standard_library_value_types
 +
 +
===== 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/
 +
* [https://swift.im/development/style/ Apple Official Swifty Style ]
 +
* [https://www.google.com/search?client=safari&rls=en&q=qwhich+indentation+and+coding+style+for+swift&ie=UTF-8&oe=UTF-8 google style]
 +
* [https://www.jetbrains.com/help/objc/code-style-swift.html, Jet Brain AppCode Style ]
 +
* [https://nshipster.com/swift-format/ NSHipster Style ]
 +
* [https://ericasadun.com/2016/03/31/swift-style-are-you-a-4-denter/ Erica Sadun Style, are you a 4 denter ?]
 +
* [https://github.com/raywenderlich/swift-style-guide raywenderlich style ]
 +
* [https://www.vadimbulavin.com/swift-code-style/ a Missing Guide on Swift Code Style? ]
 +
 +
* [https://forums.swift.org/t/pitch-an-official-style-guide-and-formatter-for-swift/21025 Indenting Swift code]
 +
 +
== Swift API design ==
 +
* [https://swift.org/documentation/api-design-guidelines/ Apple Swiftify API Design guideline]
 +
 +
== Swift Standard Library ==
 +
* https://developer.apple.com/documentation/swift/swift_standard_library
 +
 +
== Swift protocols ==
 +
* https://docs.swift.org/swift-book/LanguageGuide/Protocols.html
 +
 +
=== protocols conformance ===
 +
* https://developer.apple.com/documentation/swift/adopting_common_protocols
 +
 +
=== 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 ==
 +
 +
* https://developer.apple.com/videos/play/wwdc2018/406
 +
 +
 +
== 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 ===
 +
* https://github.com/raywenderlich/swift-algorithm-club
 +
 +
in python
 +
* https://docs.python.org/3/library/itertools.html
 +
 +
in C++
 +
* https://en.cppreference.com/w/cpp/algorithm
 +
 +
 +
=== 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 ===
 +
* https://forums.swift.org/c/related-projects/algorithms/70
 +
 +
=== books ===
 +
* https://www.raywenderlich.com/books/data-structures-algorithms-in-swift/v3.0
 +
 +
 +
== 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 ===
 +
* https://stackoverflow.com/questions/30720497/swift-do-try-catch-syntax
 +
 +
== E ==
 +
== F ==
 +
== G ==
 +
== H ==
 +
 +
=== HTTPCookieStorage ===
 +
* https://developer.apple.com/documentation/foundation/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 ===
 +
* https://developer.apple.com/documentation/foundation/jsondecoder
 +
 +
=== JSONEncoder ===
 +
* https://developer.apple.com/documentation/foundation/jsonencoder
 +
 +
=== JSONSerialisation ===
 +
* https://developer.apple.com/documentation/foundation/jsonserialization
 +
 +
== 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 ===
 +
* https://developer.apple.com/documentation/foundation/nsurlconnection
 +
 +
== O ==
 +
== P ==
 +
 +
* print
 +
* debugPrint
 +
 +
special print keywords
 +
 +
* https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID390
 +
 +
Literal        Type    Value
 +
{| class="wikitable" border="1"
 +
|-
 +
! 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 ===
 +
* https://www.univ-orleans.fr/iut-orleans/informatique/intra/tuto/php/rest-api-tests-curl.html
 +
 +
==== sample code ====
 +
* https://github.com/Alamofire/Alamofire
 +
 +
== S ==
 +
== T ==
 +
 +
=== try /catch ===
 +
* https://www.hackingwithswift.com/example-code/language/how-to-use-try-catch-in-swift-to-handle-exceptions
 +
 +
== U ==
 +
 +
=== URl Cache ===
 +
* https://developer.apple.com/documentation/foundation/urlcache
 +
 +
=== 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 ====
 +
* https://github.com/PerfectExamples/Perfect-URL-Shortener
 +
* https://github.com/swisspol/GCDWebServer
 +
 +
=== URLCredentielStorage ===
 +
* https://developer.apple.com/documentation/foundation/urlcredentialstorage
 +
 +
=== 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 ===
 +
* https://developer.apple.com/documentation/foundation/archives_and_serialization/using_json_with_custom_types
 +
 +
== V ==
 +
== W ==
 +
== X ==
 +
== Y ==
 +
== Z ==
 +
 +
== swift versions ==
 +
 +
=== WWDC 2020 ===
 +
* https://developer.apple.com/videos/play/wwdc2020/10170/
 +
 +
=== WWDC2019 ===
 +
* https://developer.apple.com/videos/play/wwdc2019/402/
 +
 +
=== WWDC 2018 ===
 +
* https://developer.apple.com/videos/play/wwdc2018/401
 +
 +
=== WWDC 2017 ===
 +
* https://developer.apple.com/videos/play/wwdc2017/402/
 +
 +
=== WWDC 2016 ===
 +
* https://developer.apple.com/videos/play/wwdc2016/402/
  
 
== Sample codes ==
 
== Sample codes ==
 +
 +
=== Apple on GitHub for swift ===
 +
* https://github.com/apple
 +
 +
=== Rest API  ===
 +
* https://github.com/jocull/SharpProxy
 +
* https://github.com/depoon/SwiftLocalhost
 +
* https://github.com/Alamofire/Alamofire
 +
 +
 +
=== samples ===
 +
* https://www.appsdeveloperblog.com/swift-code-examples/
  
 
== Articles==
 
== Articles==
  
 
== Blogs ==
 
== Blogs ==
 +
* https://www.appsdeveloperblog.com/
  
 
== Tools link ==
 
== Tools link ==
  
 
== Books ==
 
== Books ==
 +
 +
== Trainings ==

Latest revision as of 10:53, 3 May 2022

Contents

Swift

See also

Swift

Swift Topics

Data Flow and Control Flow

Data Modeling

Language Interoperability

Class Bridging
Swift and Objective C and C


Cocoa Design Patterns and Swift

Swift with Style

Swift API design

Swift Standard Library

Swift protocols

protocols conformance

protocols

Swift Generics


Swift Patterns

 https://github.com/ochococo/Design-Patterns-In-Swift


Swift Algorithms

more algorithms

in python

in C++


tutorials

forums

books


Topics

A

Application Transport Security

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

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/"


NSURLConnection

O

P

  • print
  • 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

testing it using curl

sample code

S

T

try /catch

U

URl Cache

URLSessionConfiguration

URLComponents, how to build a safe escaped url /uri

sample code

URLCredentielStorage

URLRequest

URLSession

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


samples

Articles

Blogs

Tools link

Books

Trainings