├── 2021 ├── 1. Objective-C. Fundamentals │ ├── Demos │ │ ├── Demo 1 - Basic_C │ │ │ ├── Basic_C Final │ │ │ │ └── main.c │ │ │ └── Basic_C Starter │ │ │ │ └── main.c │ │ ├── Demo 2 - Basic_Objective-C │ │ │ ├── Basic_Objective-C FInal │ │ │ │ ├── RSPerson.h │ │ │ │ ├── RSPerson.m │ │ │ │ ├── main.m │ │ │ │ └── makefile │ │ │ └── Basic_Objective-C Starter │ │ │ │ └── main.m │ │ └── Demo 3 - Medium_Objective-C │ │ │ ├── Objective-C_Fundamentals_Final_Demo │ │ │ ├── Objective-C Fundamentals.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── Objective-C Fundamentals │ │ │ │ ├── Model │ │ │ │ ├── Car │ │ │ │ │ ├── RSCar.h │ │ │ │ │ └── RSCar.m │ │ │ │ ├── Passenger │ │ │ │ │ ├── Category │ │ │ │ │ │ ├── RSPassenger+RandomGeneratable.h │ │ │ │ │ │ └── RSPassenger+RandomGeneratable.m │ │ │ │ │ ├── RSPassenger.h │ │ │ │ │ └── RSPassenger.m │ │ │ │ ├── Port │ │ │ │ │ └── CarPort │ │ │ │ │ │ ├── RSCarPort.h │ │ │ │ │ │ ├── RSCarPort.m │ │ │ │ │ │ └── RSEnterable.h │ │ │ │ └── Vehicle │ │ │ │ │ ├── RSVehicle.h │ │ │ │ │ └── RSVehicle.m │ │ │ │ └── main.m │ │ │ ├── Objective-C_Fundamentals_Self_Learning │ │ │ ├── Objective-C Fundamentals.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── Objective-C Fundamentals │ │ │ │ ├── Model │ │ │ │ ├── Passenger │ │ │ │ │ ├── Category │ │ │ │ │ │ ├── RSPassenger+Identifiable.h │ │ │ │ │ │ └── RSPassenger+Identifiable.m │ │ │ │ │ ├── RSPassenger.h │ │ │ │ │ └── RSPassenger.m │ │ │ │ ├── Port │ │ │ │ │ ├── RSPort.h │ │ │ │ │ ├── RSPort.m │ │ │ │ │ └── RSPortEnterable.h │ │ │ │ └── Vehicle │ │ │ │ │ ├── Car │ │ │ │ │ ├── RSCar.h │ │ │ │ │ └── RSCar.m │ │ │ │ │ ├── RSVehicle.h │ │ │ │ │ ├── RSVehicle.m │ │ │ │ │ └── Spaceship │ │ │ │ │ ├── RSSpaceship.h │ │ │ │ │ └── RSSpaceship.m │ │ │ │ └── main.m │ │ │ └── Objective-C_Fundamentals_Starter │ │ │ ├── Objective-C Fundamentals.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── Objective-C Fundamentals │ │ │ └── main.m │ └── Tasks │ │ └── lecture_task_1.md ├── 12. Swift. Type casting, Nesting types, Opaque types │ └── Demos │ │ ├── Demo1_Type casting.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ ├── Demo2_NestedTypes.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── Demo3_OpaqueTypes.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata ├── 13. Swift. Generics │ └── Tasks │ │ └── Generics-playground.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata ├── 14. Swift. ARC, Error handling │ └── Demos │ │ ├── Demo 1 │ │ ├── ARC_Final.playground │ │ │ ├── Contents.swift │ │ │ ├── contents.xcplayground │ │ │ └── playground.xcworkspace │ │ │ │ └── contents.xcworkspacedata │ │ └── ARС_Starter.playground │ │ │ ├── Contents.swift │ │ │ ├── contents.xcplayground │ │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── Demo 2 │ │ ├── ErrorHandling_Final.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── ErrorHandling_Starter.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata ├── 15. UI. UIView, CALayer, UIWindow │ └── Demos │ │ ├── Demo 1 │ │ ├── Demo.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Demo │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ │ ├── Info.plist │ │ │ ├── RSView.h │ │ │ ├── RSView.m │ │ │ ├── RSViewController.h │ │ │ ├── RSViewController.m │ │ │ └── main.m │ │ └── Demo 2 │ │ ├── Demo 2.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Demo 2 │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ │ ├── Info.plist │ │ ├── RSViewController.h │ │ ├── RSViewController.m │ │ └── main.m ├── 16. UI. UILabel, UIButton, UITextField, UITextView │ └── Demos │ │ ├── UIElements.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── UIElements │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── user-16px.imageset │ │ │ ├── Contents.json │ │ │ └── user-2.png │ │ └── user-512px.imageset │ │ │ ├── Contents.json │ │ │ ├── user-1.png │ │ │ ├── user-2.png │ │ │ └── user.png │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m ├── 17. UI. View Controllers │ └── Demos │ │ ├── Demo1 │ │ ├── Demo1.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Demo1 │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ │ ├── Info.plist │ │ │ ├── RSViewController.h │ │ │ ├── RSViewController.m │ │ │ └── main.m │ │ ├── Demo2 │ │ ├── Demo2.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Demo2 │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ │ ├── Info.plist │ │ │ ├── RSViewController.h │ │ │ ├── RSViewController.m │ │ │ ├── RSViewControllerSecond.h │ │ │ ├── RSViewControllerSecond.m │ │ │ └── main.m │ │ ├── Demo3 │ │ ├── Demo3.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Demo3 │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── RSChildViewController.h │ │ │ ├── RSChildViewController.m │ │ │ ├── RSRootViewController.h │ │ │ ├── RSRootViewController.m │ │ │ ├── ViewController.h │ │ │ └── main.m │ │ └── Xcode11_Entry │ │ ├── Xcode11_Entry.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Xcode11_Entry │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ │ ├── Info.plist │ │ ├── RSViewController.h │ │ ├── RSViewController.m │ │ ├── XIBViewController.h │ │ ├── XIBViewController.m │ │ ├── XIBViewController.xib │ │ └── main.m ├── 2. Objective-C. Memory management │ ├── Demos │ │ ├── .gitkeep │ │ └── Demo 1-5 - MRC │ │ │ ├── RSSchool-iOS-MRC.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── RSSchool-iOS-MRC.xcscheme │ │ │ └── RSSchool-iOS-MRC │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ │ ├── Demo │ │ │ ├── Autorelease pool │ │ │ │ ├── AutoreleasePoolDemo.h │ │ │ │ └── AutoreleasePoolDemo.m │ │ │ ├── Demo.h │ │ │ ├── Demo.m │ │ │ ├── Property attributes │ │ │ │ ├── PropertyDemo.h │ │ │ │ └── PropertyDemo.m │ │ │ ├── Retain count │ │ │ │ ├── RetainCountDemo.h │ │ │ │ └── RetainCountDemo.m │ │ │ ├── Retain cycle │ │ │ │ ├── RetainCycleDemo.h │ │ │ │ └── RetainCycleDemo.m │ │ │ └── Test objects │ │ │ │ ├── Passport.h │ │ │ │ ├── Passport.m │ │ │ │ ├── Person.h │ │ │ │ └── Person.m │ │ │ ├── Entry points │ │ │ ├── AppDelegate.h │ │ │ └── AppDelegate.m │ │ │ ├── Info.plist │ │ │ └── main.m │ └── Tasks │ │ ├── Task - MRC │ │ ├── RSSchool-iOS-Task-MRC.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── RSSchool-iOS-Task-MRC.xcscheme │ │ └── RSSchool-iOS-Task-MRC │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ │ ├── Entry points │ │ │ ├── AppDelegate.h │ │ │ └── AppDelegate.m │ │ │ ├── Info.plist │ │ │ ├── Task │ │ │ ├── Task.h │ │ │ ├── Task.m │ │ │ └── Test objects │ │ │ │ ├── Document │ │ │ │ ├── Document.h │ │ │ │ └── Document.m │ │ │ │ ├── Page │ │ │ │ ├── Page.h │ │ │ │ └── Page.m │ │ │ │ ├── Printer │ │ │ │ ├── Printable.h │ │ │ │ ├── Printer.h │ │ │ │ └── Printer.m │ │ │ │ └── Text │ │ │ │ ├── Text.h │ │ │ │ └── Text.m │ │ │ └── main.m │ │ └── lecture_task_2_memory_mngmt.md ├── 20. Container View Controllers │ └── Demos │ │ ├── ContainerViewControllersDemo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── ContainerViewControllersDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── Star.imageset │ │ │ ├── Contents.json │ │ │ ├── Star.png │ │ │ ├── Star@2x.png │ │ │ └── Star@3x.png │ │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ │ ├── DetailsViewController.h │ │ ├── DetailsViewController.m │ │ ├── Info.plist │ │ ├── MasterTableViewController.h │ │ ├── MasterTableViewController.m │ │ ├── NavigationDemoViewController.h │ │ ├── NavigationDemoViewController.m │ │ ├── SceneDelegate.h │ │ ├── SceneDelegate.m │ │ └── main.m ├── 22. UIScrollView, Keyboard interactions │ └── Demos │ │ ├── ScrollView.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── ScrollView │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── forest.imageset │ │ │ ├── Contents.json │ │ │ └── green-forest-1684909.jpg │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m ├── 23. UITableView, UITableViewController │ └── Demos │ │ ├── TableViewDemo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── TableViewDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── SceneDelegate.h │ │ ├── SceneDelegate.m │ │ ├── ShoppingItem.h │ │ ├── ShoppingItem.m │ │ ├── ShoppingItemTableViewCell.h │ │ ├── ShoppingItemTableViewCell.m │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ └── main.m ├── 26. Multithreading. Overview, GCD │ └── Demos │ │ ├── DispatchGroupDemo │ │ ├── DispatchGroupDemo.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── DispatchGroupDemo │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── Placeholder.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Placeholder.png │ │ │ ├── img1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── img3.png │ │ │ ├── img2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── img4.png │ │ │ ├── img3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── img8.png │ │ │ └── img4.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── img10.png │ │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ │ ├── Downloader.h │ │ │ ├── Downloader.m │ │ │ ├── Info.plist │ │ │ ├── RSViewController.h │ │ │ ├── RSViewController.m │ │ │ └── Support │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ │ ├── SceneDelegate.h │ │ │ ├── SceneDelegate.m │ │ │ └── main.m │ │ └── TaskAddingDemo │ │ ├── TaskAddingDemo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── TaskAddingDemo │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── Placeholder.imageset │ │ │ ├── Contents.json │ │ │ └── Placeholder.png │ │ ├── img1.imageset │ │ │ ├── Contents.json │ │ │ └── img1.png │ │ ├── img10.imageset │ │ │ ├── Contents.json │ │ │ └── img10.png │ │ ├── img2.imageset │ │ │ ├── Contents.json │ │ │ └── img2.png │ │ ├── img3.imageset │ │ │ ├── Contents.json │ │ │ └── img3.png │ │ ├── img4.imageset │ │ │ ├── Contents.json │ │ │ └── img4.png │ │ ├── img5.imageset │ │ │ ├── Contents.json │ │ │ └── img5.png │ │ ├── img6.imageset │ │ │ ├── Contents.json │ │ │ └── img6.png │ │ ├── img7.imageset │ │ │ ├── Contents.json │ │ │ └── img7.png │ │ ├── img8.imageset │ │ │ ├── Contents.json │ │ │ └── img8.png │ │ └── img9.imageset │ │ │ ├── Contents.json │ │ │ └── img9.png │ │ ├── Base.lproj │ │ └── Main.storyboard │ │ ├── DataSourceItem.h │ │ ├── DataSourceItem.m │ │ ├── Downloader.h │ │ ├── Downloader.m │ │ ├── Info.plist │ │ ├── RSImageGalleryViewController.h │ │ ├── RSImageGalleryViewController.m │ │ ├── RSPhotoCollectionViewCell.h │ │ ├── RSPhotoCollectionViewCell.m │ │ └── Support │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ │ ├── SceneDelegate.h │ │ ├── SceneDelegate.m │ │ └── main.m ├── 27. Multithreading. Operation queues │ └── Demos │ │ ├── AsyncOperationDemo │ │ ├── AsyncOperationDemo.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── AsyncOperationDemo │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── Placeholder.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Placeholder.png │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── RSOperation.h │ │ │ ├── RSOperation.m │ │ │ ├── RSViewController.h │ │ │ ├── RSViewController.m │ │ │ ├── SceneDelegate.h │ │ │ ├── SceneDelegate.m │ │ │ ├── ViewController.h │ │ │ └── main.m │ │ └── OperationsDemo │ │ ├── TaskAddingDemo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── TaskAddingDemo │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── Placeholder.imageset │ │ │ ├── Contents.json │ │ │ └── Placeholder.png │ │ ├── img1.imageset │ │ │ ├── Contents.json │ │ │ └── img1.png │ │ ├── img10.imageset │ │ │ ├── Contents.json │ │ │ └── img10.png │ │ ├── img2.imageset │ │ │ ├── Contents.json │ │ │ └── img2.png │ │ ├── img3.imageset │ │ │ ├── Contents.json │ │ │ └── img3.png │ │ ├── img4.imageset │ │ │ ├── Contents.json │ │ │ └── img4.png │ │ ├── img5.imageset │ │ │ ├── Contents.json │ │ │ └── img5.png │ │ ├── img6.imageset │ │ │ ├── Contents.json │ │ │ └── img6.png │ │ ├── img7.imageset │ │ │ ├── Contents.json │ │ │ └── img7.png │ │ ├── img8.imageset │ │ │ ├── Contents.json │ │ │ └── img8.png │ │ └── img9.imageset │ │ │ ├── Contents.json │ │ │ └── img9.png │ │ ├── Base.lproj │ │ └── Main.storyboard │ │ ├── DataSourceItem.h │ │ ├── DataSourceItem.m │ │ ├── Downloader.h │ │ ├── Downloader.m │ │ ├── Info.plist │ │ ├── RSFilterOperation.h │ │ ├── RSFilterOperation.m │ │ ├── RSImageGalleryViewController.h │ │ ├── RSImageGalleryViewController.m │ │ ├── RSOperation.h │ │ ├── RSOperation.m │ │ ├── RSPhotoCollectionViewCell.h │ │ ├── RSPhotoCollectionViewCell.m │ │ └── Support │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ │ ├── SceneDelegate.h │ │ ├── SceneDelegate.m │ │ └── main.m ├── 29. Networking │ └── Demos │ │ ├── Demo1_Networking │ │ ├── Demo1_Networking.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Demo1_Networking │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── CONSOLE.imageset │ │ │ │ ├── CONSOLE.png │ │ │ │ ├── CONSOLE@2x.png │ │ │ │ ├── CONSOLE@3x.png │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── RS_School_Logo.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── RS_School_Logo.png │ │ │ │ ├── RS_School_Logo@2x.png │ │ │ │ └── RS_School_Logo@3x.png │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── RSLoader.h │ │ │ ├── RSLoader.m │ │ │ ├── RSViewController.h │ │ │ ├── RSViewController.m │ │ │ ├── SceneDelegate.h │ │ │ ├── SceneDelegate.m │ │ │ └── main.m │ │ ├── Demo2_Networking │ │ ├── Demo2_Networking.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── Demo2_Networking │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ ├── BottomShadow.imageset │ │ │ │ ├── BottomShadow.png │ │ │ │ ├── BottomShadow@2x.png │ │ │ │ ├── BottomShadow@3x.png │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── Placeholder.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Placeholder.png │ │ │ │ ├── Placeholder@2x.png │ │ │ │ └── Placeholder@3x.png │ │ │ ├── Info.plist │ │ │ ├── Models │ │ │ ├── RSUser.h │ │ │ └── RSUser.m │ │ │ ├── Parsers │ │ │ ├── RSJSONParser.h │ │ │ ├── RSJSONParser.m │ │ │ ├── RSParserProtocol.h │ │ │ ├── RSXMLParser.h │ │ │ └── RSXMLParser.m │ │ │ ├── Services │ │ │ ├── RSImageDownloadOperation.h │ │ │ ├── RSImageDownloadOperation.m │ │ │ ├── RSUserService.h │ │ │ └── RSUserService.m │ │ │ ├── Support │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Base.lproj │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── SceneDelegate.h │ │ │ ├── SceneDelegate.m │ │ │ └── main.m │ │ │ ├── UI │ │ │ ├── Base.lproj │ │ │ │ └── Main.storyboard │ │ │ ├── RSPhotoCollectionViewCell.h │ │ │ ├── RSPhotoCollectionViewCell.m │ │ │ ├── RSPhotoCollectionViewCell.xib │ │ │ ├── RSViewController.h │ │ │ └── RSViewController.m │ │ │ └── ViewController.h │ │ └── Mocks │ │ ├── Mock_JSON │ │ └── Mock_XML ├── 3. Objective-C. Foundation KVC │ ├── Demos │ │ └── Demo │ │ │ ├── Final │ │ │ ├── RSSchool.Foundation.KVC.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── RSSchool.Foundation.KVC │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.m │ │ │ │ ├── Assets.xcassets │ │ │ │ │ ├── AccentColor.colorset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Base.lproj │ │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ │ └── Main.storyboard │ │ │ │ ├── Examples │ │ │ │ │ ├── Data │ │ │ │ │ │ ├── JSONTestObject.h │ │ │ │ │ │ └── JSONTestObject.m │ │ │ │ │ ├── Object equality │ │ │ │ │ │ ├── RSDevice.h │ │ │ │ │ │ └── RSDevice.m │ │ │ │ │ └── Predicate │ │ │ │ │ │ ├── Address.h │ │ │ │ │ │ ├── Address.m │ │ │ │ │ │ ├── NSPredicateTests.m │ │ │ │ │ │ ├── Person.h │ │ │ │ │ │ └── Person.m │ │ │ │ ├── Info.plist │ │ │ │ ├── SceneDelegate.h │ │ │ │ ├── SceneDelegate.m │ │ │ │ ├── ViewController.h │ │ │ │ ├── ViewController.m │ │ │ │ └── main.m │ │ │ ├── RSSchool.Foundation.KVCTests │ │ │ │ ├── Info.plist │ │ │ │ ├── NSCharacterSetTests.m │ │ │ │ ├── NSDataTests.m │ │ │ │ ├── NSDateFormatterTests.m │ │ │ │ ├── NSNumberFormatterTests.m │ │ │ │ ├── NSRangesTests.m │ │ │ │ ├── NSStringTests.m │ │ │ │ ├── NSURLTests.m │ │ │ │ └── RSSchool_Foundation_KVCTests.m │ │ │ ├── RSSchool.Foundation.KVCUITests │ │ │ │ ├── Info.plist │ │ │ │ └── RSSchool_Foundation_KVCUITests.m │ │ │ └── sampleText.txt │ │ │ └── Starter │ │ │ ├── RSSchool.Foundation.KVC.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── RSSchool.Foundation.KVC │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ │ ├── AccentColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ ├── Examples │ │ │ │ ├── Data │ │ │ │ │ ├── JSONTestObject.h │ │ │ │ │ └── JSONTestObject.m │ │ │ │ ├── Object equality │ │ │ │ │ ├── RSDevice.h │ │ │ │ │ └── RSDevice.m │ │ │ │ └── Predicate │ │ │ │ │ ├── Address.h │ │ │ │ │ ├── Address.m │ │ │ │ │ ├── NSPredicateTests.m │ │ │ │ │ ├── Person.h │ │ │ │ │ └── Person.m │ │ │ ├── Info.plist │ │ │ ├── SceneDelegate.h │ │ │ ├── SceneDelegate.m │ │ │ ├── ViewController.h │ │ │ ├── ViewController.m │ │ │ └── main.m │ │ │ ├── RSSchool.Foundation.KVCTests │ │ │ ├── Info.plist │ │ │ ├── NSCharacterSetTests.m │ │ │ ├── NSDataTests.m │ │ │ ├── NSDateFormatterTests.m │ │ │ ├── NSNumberFormatterTests.m │ │ │ ├── NSRangesTests.m │ │ │ ├── NSStringTests.m │ │ │ ├── NSURLTests.m │ │ │ └── RSSchool_Foundation_KVCTests.m │ │ │ └── RSSchool.Foundation.KVCUITests │ │ │ ├── Info.plist │ │ │ └── RSSchool_Foundation_KVCUITests.m │ └── Tasks │ │ └── lecture_task_3_foundation.md ├── 32.SQLite │ └── Demos │ │ ├── SQLite_Demo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── SQLite_Demo │ │ ├── Info.plist │ │ ├── Managers │ │ ├── SQLiteManager.h │ │ └── SQLiteManager.m │ │ ├── Models │ │ ├── RSMentor.h │ │ ├── RSMentor.m │ │ ├── RSStudent.h │ │ └── RSStudent.m │ │ ├── Support Files │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── SceneDelegate.h │ │ ├── SceneDelegate.m │ │ └── main.m │ │ └── UI │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── RS_App_Icon-1.png │ │ │ ├── RS_App_Icon.png │ │ │ ├── RS_App_Icon@2x-1.png │ │ │ └── RS_App_Icon@2x.png │ │ ├── Contents.json │ │ └── RS_School_Logo.imageset │ │ │ ├── Contents.json │ │ │ ├── RS_School_Logo.png │ │ │ ├── RS_School_Logo@2x.png │ │ │ └── RS_School_Logo@3x.png │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Controllers │ │ ├── RSScoresViewController.h │ │ ├── RSScoresViewController.m │ │ ├── RSStudentFormViewController.h │ │ └── RSStudentFormViewController.m │ │ └── Views │ │ ├── RSProgressView.h │ │ ├── RSProgressView.m │ │ ├── RSScoreTableViewCell.h │ │ ├── RSScoreTableViewCell.m │ │ └── RSScoreTableViewCell.xib ├── 33. Core Data │ └── Demos │ │ ├── CoreDataDemo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ │ └── CoreDataDemo │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Default │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ └── Model.xcdatamodeld │ │ │ └── Model.xcdatamodel │ │ │ └── contents │ │ ├── Info.plist │ │ ├── MainScreen │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── ViewController.h │ │ └── ViewController.m │ │ ├── SceneDelegate.h │ │ ├── SceneDelegate.m │ │ ├── Song+CoreDataClass.h │ │ ├── Song+CoreDataClass.m │ │ ├── Song+CoreDataProperties.h │ │ ├── Song+CoreDataProperties.m │ │ ├── TableScreen │ │ ├── TableViewCell.h │ │ ├── TableViewCell.m │ │ ├── TableViewController.h │ │ ├── TableViewController.m │ │ └── TableViewController.storyboard │ │ └── main.m ├── 4. Objective-C. Collections │ ├── Demos │ │ ├── Demo 1 - Working_with _Arrays │ │ │ ├── WorkingWithArray Final │ │ │ │ ├── Demo1_WorkingWithArray.xcodeproj │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ └── xcshareddata │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo1_WorkingWithArray │ │ │ │ │ ├── RSProduct.h │ │ │ │ │ ├── RSProduct.m │ │ │ │ │ └── main.m │ │ │ └── WorkingWithArray Starter │ │ │ │ ├── Demo1_WorkingWithArray.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo1_WorkingWithArray │ │ │ │ ├── RSProduct.h │ │ │ │ ├── RSProduct.m │ │ │ │ └── main.m │ │ ├── Demo 2 - Working_with _Dictionaries │ │ │ ├── WorkingWithDictionary Final │ │ │ │ ├── Demo2_WorkingWithDictionary.xcodeproj │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ └── xcshareddata │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo2_WorkingWithDictionary │ │ │ │ │ ├── RSProduct.h │ │ │ │ │ ├── RSProduct.m │ │ │ │ │ └── main.m │ │ │ └── WorkingWithDictionary Starter │ │ │ │ ├── Demo2_WorkingWithDictionary.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo2_WorkingWithDictionary │ │ │ │ ├── RSProduct.h │ │ │ │ ├── RSProduct.m │ │ │ │ └── main.m │ │ ├── Demo 3 - Working_with_Set │ │ │ ├── WorkingWithSet Final │ │ │ │ ├── Demo3_WorkingWithSet.xcodeproj │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ └── xcshareddata │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo3_WorkingWithSet │ │ │ │ │ ├── RSProduct.h │ │ │ │ │ ├── RSProduct.m │ │ │ │ │ └── main.m │ │ │ └── WorkingWithSet Starter │ │ │ │ ├── Demo3_WorkingWithSet.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo3_WorkingWithSet │ │ │ │ ├── RSProduct.h │ │ │ │ ├── RSProduct.m │ │ │ │ └── main.m │ │ ├── Demo 4 - Copying_Collections │ │ │ ├── CopyingCollections Final │ │ │ │ ├── Demo4_CopyingCollections.xcodeproj │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ └── xcshareddata │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo4_CopyingCollections │ │ │ │ │ └── main.m │ │ │ └── CopyingCollections Starter │ │ │ │ ├── Demo4_CopyingCollections.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo4_CopyingCollections │ │ │ │ └── main.m │ │ ├── Demo 5 - CollectionEnumeration │ │ │ ├── CollectionEnumeration Final │ │ │ │ ├── Demo5_CollectionEnumeration.xcodeproj │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ └── xcshareddata │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo5_CollectionEnumeration │ │ │ │ │ └── main.m │ │ │ └── CollectionEnumeration Starter │ │ │ │ ├── Demo5_CollectionEnumeration.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── Demo5_CollectionEnumeration │ │ │ │ └── main.m │ │ └── Demo 6 - CollectionSorting │ │ │ ├── CollectionSorting Final │ │ │ ├── Demo6_CollectionSorting.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── Demo6_CollectionSorting │ │ │ │ ├── RSProduct.h │ │ │ │ ├── RSProduct.m │ │ │ │ └── main.m │ │ │ └── CollectionSorting Starter │ │ │ ├── Demo6_CollectionSorting.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── Demo6_CollectionSorting │ │ │ ├── RSProduct.h │ │ │ ├── RSProduct.m │ │ │ └── main.m │ └── Tasks │ │ └── lecture_task_4_collections.md ├── 5. Objective-C. KVO NotificationCenter │ ├── Demos │ │ ├── KVO.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── KVO.xcscheme │ │ └── KVO │ │ │ ├── Account.h │ │ │ ├── Account.m │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── Person.h │ │ │ ├── Person.m │ │ │ ├── ViewController.h │ │ │ ├── ViewController.m │ │ │ └── main.m │ └── Tasks │ │ ├── .gitkeep │ │ └── lecture_task_5_KVO_NotificationCenter.md ├── 6. Objective-C. Blocks │ ├── Demos │ │ ├── BlocksTestsARC │ │ │ ├── BlocksTestsARC.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── BlocksTestsARC │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.m │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ │ ├── Demo │ │ │ │ ├── Demo.h │ │ │ │ ├── Demo.m │ │ │ │ └── Retain cycle │ │ │ │ │ ├── BlockClass.h │ │ │ │ │ └── BlockClass.m │ │ │ │ ├── Info.plist │ │ │ │ └── main.m │ │ └── BlocksTestsMRC │ │ │ ├── BlocksTestsMRC.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── BlocksTestsMRC │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ │ ├── Demo │ │ │ ├── Demo.h │ │ │ ├── Demo.m │ │ │ └── Test objects │ │ │ │ ├── BlockClass.h │ │ │ │ ├── BlockClass.m │ │ │ │ ├── Person.h │ │ │ │ ├── Person.m │ │ │ │ ├── SomeClass.h │ │ │ │ └── SomeClass.m │ │ │ ├── Info.plist │ │ │ └── main.m │ └── Tasks │ │ └── lecture_task_6_blocks.md ├── 7. Swift. Fundamentals. Part 1 │ └── Demos │ │ ├── Demo 1 │ │ ├── Demo1_Final.playground │ │ │ ├── Contents.swift │ │ │ ├── contents.xcplayground │ │ │ └── playground.xcworkspace │ │ │ │ └── contents.xcworkspacedata │ │ └── Demo1_Starter.playground │ │ │ ├── Contents.swift │ │ │ ├── contents.xcplayground │ │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ ├── Demo 2 │ │ ├── Demo2_Final.playground │ │ │ ├── Contents.swift │ │ │ ├── contents.xcplayground │ │ │ └── playground.xcworkspace │ │ │ │ └── contents.xcworkspacedata │ │ └── Demo2_Starter.playground │ │ │ ├── Contents.swift │ │ │ ├── contents.xcplayground │ │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── Demo 3 │ │ ├── Demo3_Final.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── Demo3_Starter.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata ├── 8. Swift. Fundamentals. Part 2 │ └── Demos │ │ ├── Swift 2 Demo Extensions.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── Swift 2 Demo Protocols.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata └── 9. Swift. Properties, Enums, Optionals │ └── Demos │ ├── Demo 1 │ ├── Demo1 Final.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ └── Demo1 Starter.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata │ ├── Demo 2 │ ├── Demo2 Final.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ │ └── contents.xcworkspacedata │ └── Demo2 Starter.playground │ │ ├── Contents.swift │ │ ├── contents.xcplayground │ │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata │ └── Demo 3 │ ├── Demo3 Final.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ │ └── contents.xcworkspacedata │ └── Demo3 Starter.playground │ ├── Contents.swift │ ├── contents.xcplayground │ └── playground.xcworkspace │ └── contents.xcworkspacedata ├── .gitignore └── README.md /2021/1. Objective-C. Fundamentals/Demos/Demo 1 - Basic_C/Basic_C Starter/main.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | 6 | // MARK: - Definitions 7 | 8 | typedef struct { 9 | char *name; 10 | size_t age; 11 | } person_t; 12 | 13 | // MARK: - Prototypes 14 | 15 | void login_user(person_t *user); 16 | 17 | // MARK: - Implementations 18 | 19 | int main(int argc, char * argv[]) { 20 | return 0; 21 | } -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 2 - Basic_Objective-C/Basic_Objective-C FInal/RSPerson.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface RSPerson: NSObject { 4 | NSString *_name; 5 | } 6 | 7 | - (instancetype)initWithName:(NSString *)name; 8 | - (void)sayHello; 9 | 10 | @end -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 2 - Basic_Objective-C/Basic_Objective-C FInal/RSPerson.m: -------------------------------------------------------------------------------- 1 | #import "RSPerson.h" 2 | 3 | @implementation RSPerson 4 | 5 | - (instancetype)initWithName:(NSString *)name { 6 | self = [super init]; 7 | if (self) { 8 | _name = name; 9 | } 10 | return self; 11 | } 12 | 13 | - (void)sayHello { 14 | NSLog(@"\nHello, my name is %@!\n", _name); 15 | } 16 | 17 | @end -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 2 - Basic_Objective-C/Basic_Objective-C FInal/makefile: -------------------------------------------------------------------------------- 1 | build: 2 | @clang -fobjc-arc -framework Foundation main.m RSPerson.m -o program 3 | run: 4 | @./program 5 | clean: 6 | @rm ./program -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 2 - Basic_Objective-C/Basic_Objective-C Starter/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | int main(int argc, char **argv) { 4 | 5 | @autoreleasepool { 6 | 7 | } 8 | 9 | return 0; 10 | } -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Final_Demo/Objective-C Fundamentals.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Final_Demo/Objective-C Fundamentals.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Final_Demo/Objective-C Fundamentals/Model/Car/RSCar.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSCar.h 3 | // Objective-C Fundamentals 4 | // 5 | // Created by Uladzislau Volchyk on 26.04.21. 6 | // 7 | 8 | #import "RSVehicle.h" 9 | #import "RSEnterable.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSCar : RSVehicle 14 | 15 | - (void)move; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Final_Demo/Objective-C Fundamentals/Model/Passenger/Category/RSPassenger+RandomGeneratable.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSPassenger+RandomGeneratable.h 3 | // Objective-C Fundamentals 4 | // 5 | // Created by Uladzislau Volchyk on 26.04.21. 6 | // 7 | 8 | #import "RSPassenger.h" 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface RSPassenger (RandomGeneratable) 13 | 14 | - (void)sayHello; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Final_Demo/Objective-C Fundamentals/Model/Passenger/Category/RSPassenger+RandomGeneratable.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSPassenger+RandomGeneratable.m 3 | // Objective-C Fundamentals 4 | // 5 | // Created by Uladzislau Volchyk on 26.04.21. 6 | // 7 | 8 | #import "RSPassenger+RandomGeneratable.h" 9 | 10 | @implementation RSPassenger (RandomGeneratable) 11 | 12 | - (void)sayHello { 13 | NSLog(@"❌"); 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Final_Demo/Objective-C Fundamentals/Model/Passenger/RSPassenger.h: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import 7 | #import "RSEnterable.h" 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @interface RSPassenger : NSObject 12 | 13 | @property (nonatomic, copy) NSString *name; 14 | 15 | - (instancetype)initWithName:(NSString *)name; 16 | - (void)sayHello; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Final_Demo/Objective-C Fundamentals/Model/Port/CarPort/RSCarPort.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSCarPort.h 3 | // Objective-C Fundamentals 4 | // 5 | // Created by Uladzislau Volchyk on 26.04.21. 6 | // 7 | 8 | #import 9 | #import "RSCar.h" 10 | #import "RSEnterable.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface RSCarPort : NSObject 15 | 16 | - (void)launchCar:(RSCar *)car; 17 | - (void)enter:(id)entry; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Final_Demo/Objective-C Fundamentals/Model/Port/CarPort/RSEnterable.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSEnterable.h 3 | // Objective-C Fundamentals 4 | // 5 | // Created by Uladzislau Volchyk on 26.04.21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @protocol RSEnterable 13 | 14 | @property (nonatomic, copy) NSString *identifier; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals/Model/Passenger/Category/RSPassenger+Identifiable.h: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import "RSPassenger.h" 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @interface RSPassenger (Identifiable) 11 | 12 | - (BOOL)isComposter; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals/Model/Passenger/Category/RSPassenger+Identifiable.m: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import "RSPassenger+Identifiable.h" 7 | 8 | @implementation RSPassenger (Identifiable) 9 | 10 | - (BOOL)isComposter { 11 | return arc4random() % 2; 12 | } 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals/Model/Passenger/RSPassenger.h: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import 7 | #import "RSPortEnterable.h" 8 | 9 | NS_ASSUME_NONNULL_BEGIN 10 | 11 | @interface RSPassenger : NSObject 12 | 13 | @property (nonatomic, copy) NSString *name; 14 | 15 | - (instancetype)initWithName:(NSString *)name; 16 | - (void)sayHello; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals/Model/Port/RSPort.h: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import 7 | #import "RSVehicle.h" 8 | #import "RSPortEnterable.h" 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface RSPort : NSObject 13 | 14 | - (void)launchVehicle:(RSVehicle *)vehicle; 15 | - (void)enter:(id)entry; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals/Model/Port/RSPortEnterable.h: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @protocol RSPortEnterable 11 | 12 | @property (nonatomic, copy) NSString *identifier; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals/Model/Vehicle/Car/RSCar.h: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import "RSVehicle.h" 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @interface RSCar : RSVehicle 11 | 12 | @end 13 | 14 | NS_ASSUME_NONNULL_END 15 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals/Model/Vehicle/Car/RSCar.m: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import "RSCar.h" 7 | 8 | @implementation RSCar 9 | 10 | - (void)move { 11 | NSLog(@"Driving, %@ is driving me", self.crew.firstObject); 12 | } 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Self_Learning/Objective-C Fundamentals/Model/Vehicle/Spaceship/RSSpaceship.h: -------------------------------------------------------------------------------- 1 | // 2 | // Objective-C Fundamentals 3 | // ----------🪄✨---------- 4 | // 5 | 6 | #import "RSVehicle.h" 7 | 8 | NS_ASSUME_NONNULL_BEGIN 9 | 10 | @interface RSSpaceship : RSVehicle 11 | 12 | - (void)antology; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Starter/Objective-C Fundamentals.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Starter/Objective-C Fundamentals.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/1. Objective-C. Fundamentals/Demos/Demo 3 - Medium_Objective-C/Objective-C_Fundamentals_Starter/Objective-C Fundamentals/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | int main(int argc, const char * argv[]) { 5 | @autoreleasepool { 6 | 7 | } 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /2021/12. Swift. Type casting, Nesting types, Opaque types/Demos/Demo1_Type casting.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/12. Swift. Type casting, Nesting types, Opaque types/Demos/Demo1_Type casting.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/12. Swift. Type casting, Nesting types, Opaque types/Demos/Demo2_NestedTypes.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | class Message { 2 | enum Status { 3 | case Sent 4 | case Received 5 | case Read 6 | } 7 | 8 | var status = Status.Sent 9 | } 10 | 11 | let message = Message() 12 | message.status = .Received 13 | 14 | class EmailBox { 15 | var messageStatus: Message.Status? 16 | } 17 | 18 | let emailBox = EmailBox() 19 | emailBox.messageStatus = .Read 20 | 21 | -------------------------------------------------------------------------------- /2021/12. Swift. Type casting, Nesting types, Opaque types/Demos/Demo2_NestedTypes.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/12. Swift. Type casting, Nesting types, Opaque types/Demos/Demo2_NestedTypes.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/12. Swift. Type casting, Nesting types, Opaque types/Demos/Demo3_OpaqueTypes.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/12. Swift. Type casting, Nesting types, Opaque types/Demos/Demo3_OpaqueTypes.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/13. Swift. Generics/Tasks/Generics-playground.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/13. Swift. Generics/Tasks/Generics-playground.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 1/ARC_Final.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 1/ARC_Final.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 1/ARС_Starter.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 1/ARС_Starter.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 2/ErrorHandling_Final.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 2/ErrorHandling_Final.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 2/ErrorHandling_Starter.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | print("--- checkDoCatch") 4 | 5 | func checkDoCatch() { 6 | 7 | } 8 | 9 | checkDoCatch() 10 | 11 | print("--- checkOptionalTry") 12 | 13 | func checkOptionalTry() { 14 | 15 | } 16 | 17 | checkOptionalTry() 18 | 19 | print("--- checkForcedTry") 20 | 21 | func checkForcedTry() { 22 | 23 | } 24 | 25 | checkForcedTry() 26 | 27 | print("--- Propagating error") 28 | 29 | 30 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 2/ErrorHandling_Starter.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/14. Swift. ARC, Error handling/Demos/Demo 2/ErrorHandling_Starter.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 1/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 1/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 1/Demo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Demo 4 | // 5 | // Created by Viktar Semianchuk on 3/17/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 1/Demo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 1/Demo/RSView.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSView.h 3 | // Demo 4 | // 5 | // Created by Viktar Semianchuk on 3/17/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSView : UIView 14 | 15 | - (instancetype)initWithFrame:(CGRect)frame andColor:(UIColor *)color; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 1/Demo/RSView.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSView.m 3 | // Demo 4 | // 5 | // Created by Viktar Semianchuk on 3/17/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import "RSView.h" 10 | 11 | @implementation RSView 12 | 13 | - (instancetype)initWithFrame:(CGRect)frame andColor:(nonnull UIColor *)color 14 | { 15 | self = [super initWithFrame:frame]; 16 | if (self) { 17 | self.backgroundColor = color; 18 | } 19 | return self; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 1/Demo/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // Demo 4 | // 5 | // Created by Viktar Semianchuk on 3/17/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 1/Demo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Demo 4 | // 5 | // Created by Viktar Semianchuk on 3/17/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 2/Demo 2.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 2/Demo 2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 2/Demo 2/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Demo 2 4 | // 5 | // Created by Viktar Semianchuk on 3/17/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 2/Demo 2/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 2/Demo 2/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // Demo 2 4 | // 5 | // Created by Viktar Semianchuk on 3/17/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/15. UI. UIView, CALayer, UIWindow/Demos/Demo 2/Demo 2/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Demo 2 4 | // 5 | // Created by Viktar Semianchuk on 3/17/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // UIElements 4 | // 5 | // Created by Dzmitry Tarelkin on 3/22/20. 6 | // Copyright © 2020 Dzmitry Tarelkin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | @property (strong, nonatomic) UIWindow *window; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // UIElements 4 | // 5 | // Created by Dzmitry Tarelkin on 3/22/20. 6 | // Copyright © 2020 Dzmitry Tarelkin. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | return YES; 20 | } 21 | 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-16px.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "user-2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-16px.imageset/user-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-16px.imageset/user-2.png -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-512px.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "user.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "user-1.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "user-2.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-512px.imageset/user-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-512px.imageset/user-1.png -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-512px.imageset/user-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-512px.imageset/user-2.png -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-512px.imageset/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/Assets.xcassets/user-512px.imageset/user.png -------------------------------------------------------------------------------- /2021/16. UI. UILabel, UIButton, UITextField, UITextView/Demos/UIElements/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // UIElements 4 | // 5 | // Created by Dzmitry Tarelkin on 3/22/20. 6 | // Copyright © 2020 Dzmitry Tarelkin. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo1/Demo1.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo1/Demo1.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo1/Demo1/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Demo1 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo1/Demo1/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo1/Demo1/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // Demo1 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo1/Demo1/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Demo1 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo2/Demo2.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo2/Demo2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo2/Demo2/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Demo2 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo2/Demo2/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo2/Demo2/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // Demo2 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo2/Demo2/RSViewControllerSecond.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewControllerSecond.h 3 | // Demo2 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSViewControllerSecond : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo2/Demo2/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Demo2 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo3/Demo3.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo3/Demo3.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo3/Demo3/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Demo3 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo3/Demo3/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo3/Demo3/RSChildViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSChildViewController.h 3 | // Demo3 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSChildViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo3/Demo3/RSRootViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSRootViewController.h 3 | // Demo3 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSRootViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo3/Demo3/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Demo3 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSRootViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Demo3/Demo3/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Demo3 4 | // 5 | // Created by Victor Semenchuk on 3/23/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Xcode11_Entry/Xcode11_Entry.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Xcode11_Entry/Xcode11_Entry.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Xcode11_Entry/Xcode11_Entry/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Xcode11_Entry 4 | // 5 | // Created by Victor Semenchuk on 3/31/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (nonatomic, strong) UIWindow *window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Xcode11_Entry/Xcode11_Entry/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Xcode11_Entry/Xcode11_Entry/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // Xcode11_Entry 4 | // 5 | // Created by Victor Semenchuk on 3/31/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/17. UI. View Controllers/Demos/Xcode11_Entry/Xcode11_Entry/XIBViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // XIBViewController.h 3 | // Xcode11_Entry 4 | // 5 | // Created by Victor Semenchuk on 3/31/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface XIBViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/2. Objective-C. Memory management/Demos/.gitkeep -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Demo/Autorelease pool/AutoreleasePoolDemo.h: -------------------------------------------------------------------------------- 1 | // 2 | // AutoreleasePoolDemo.h 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/29/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Demo.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface AutoreleasePoolDemo : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Demo/Demo.h: -------------------------------------------------------------------------------- 1 | // 2 | // Demo.h 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/29/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol DemoProtocol 14 | 15 | - (void)execute; 16 | 17 | @end 18 | 19 | @interface Demo : NSObject 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Demo/Property attributes/PropertyDemo.h: -------------------------------------------------------------------------------- 1 | // 2 | // PropertyDemo.h 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/29/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Demo.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PropertyDemo : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Demo/Retain count/RetainCountDemo.h: -------------------------------------------------------------------------------- 1 | // 2 | // RetainCountDemo.h 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/29/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Demo.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface RetainCountDemo : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Demo/Retain cycle/RetainCycleDemo.h: -------------------------------------------------------------------------------- 1 | // 2 | // RetainCycleDemo.h 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/29/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Demo.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface RetainCycleDemo : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Demo/Test objects/Passport.h: -------------------------------------------------------------------------------- 1 | // 2 | // Passport.h 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Alexei on 2/25/20. 6 | // Copyright © 2020 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class Person; 12 | 13 | @interface Passport : NSObject 14 | 15 | @property (nonatomic, retain) Person *person; 16 | @property (nonatomic, assign) Person *assignablePerson; 17 | 18 | @property (nonatomic, unsafe_unretained) Person *unsafePerson; 19 | @property (nonatomic, weak) Person *weakPerson; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Demo/Test objects/Passport.m: -------------------------------------------------------------------------------- 1 | // 2 | // Passport.m 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Alexei on 2/25/20. 6 | // Copyright © 2020 Alexei. All rights reserved. 7 | // 8 | 9 | #import "Passport.h" 10 | #import "Person.h" 11 | 12 | @implementation Passport 13 | 14 | - (void)dealloc 15 | { 16 | NSLog(@"[Passport] %@ is being deallocating", self); 17 | 18 | [_person release]; 19 | 20 | [super dealloc]; 21 | } 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Demos/Demo 1-5 - MRC/RSSchool-iOS-MRC/Entry points/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Alexei on 2/23/20. 6 | // Copyright © 2020 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Tasks/Task - MRC/RSSchool-iOS-Task-MRC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Tasks/Task - MRC/RSSchool-iOS-Task-MRC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Tasks/Task - MRC/RSSchool-iOS-Task-MRC/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Tasks/Task - MRC/RSSchool-iOS-Task-MRC/Entry points/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // RSSchool-iOS-MRC 4 | // 5 | // Created by Alexei on 2/23/20. 6 | // Copyright © 2020 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Tasks/Task - MRC/RSSchool-iOS-Task-MRC/Task/Task.h: -------------------------------------------------------------------------------- 1 | // 2 | // Task.h 3 | // RSSchool-iOS-Task-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/30/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol TaskProtocol 14 | 15 | - (void)execute; 16 | 17 | @end 18 | 19 | @interface Task : NSObject 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Tasks/Task - MRC/RSSchool-iOS-Task-MRC/Task/Test objects/Printer/Printable.h: -------------------------------------------------------------------------------- 1 | // 2 | // Printable.h 3 | // RSSchool-iOS-Task-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/30/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #ifndef Printable_h 10 | #define Printable_h 11 | 12 | @protocol Printable 13 | 14 | - (NSString *)content; 15 | 16 | @end 17 | 18 | #endif /* Printable_h */ 19 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Tasks/Task - MRC/RSSchool-iOS-Task-MRC/Task/Test objects/Printer/Printer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Printer.h 3 | // RSSchool-iOS-Task-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/30/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Printable.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface Printer : NSObject 15 | 16 | - (void)printObject:(NSObject *) object; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /2021/2. Objective-C. Memory management/Tasks/Task - MRC/RSSchool-iOS-Task-MRC/Task/Test objects/Printer/Printer.m: -------------------------------------------------------------------------------- 1 | // 2 | // Printer.m 3 | // RSSchool-iOS-Task-MRC 4 | // 5 | // Created by Aliaksei Piatyha on 4/30/21. 6 | // Copyright © 2021 Alexei. All rights reserved. 7 | // 8 | 9 | #import "Printer.h" 10 | 11 | @implementation Printer 12 | 13 | - (void)printObject:(NSObject *)object { 14 | NSString *content = [object content]; 15 | 16 | NSLog(@"Printing result:\n%@", content); 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ContainerViewControllersDemo 4 | // 5 | // Created by Victor Semenchuk on 4/6/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/Assets.xcassets/Star.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Star.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Star@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Star@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/Assets.xcassets/Star.imageset/Star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/Assets.xcassets/Star.imageset/Star.png -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/Assets.xcassets/Star.imageset/Star@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/Assets.xcassets/Star.imageset/Star@2x.png -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/Assets.xcassets/Star.imageset/Star@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/Assets.xcassets/Star.imageset/Star@3x.png -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/DetailsViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DetailsViewController.h 3 | // ContainerViewControllersDemo 4 | // 5 | // Created by Victor Semenchuk on 4/6/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DetailsViewController : UIViewController 14 | 15 | - (instancetype)initWithImageName:(NSString *)imageName; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/MasterTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MasterTableViewController.h 3 | // ContainerViewControllersDemo 4 | // 5 | // Created by Victor Semenchuk on 4/6/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MasterTableViewController : UITableViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/NavigationDemoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // NavigationDemoViewController.h 3 | // ContainerViewControllersDemo 4 | // 5 | // Created by Victor Semenchuk on 4/6/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NavigationDemoViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/20. Container View Controllers/Demos/ContainerViewControllersDemo/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // ContainerViewControllersDemo 4 | // 5 | // Created by Victor Semenchuk on 4/6/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface AppDelegate : UIResponder 4 | @property (nonatomic, strong) UIWindow *window; 5 | 6 | @end 7 | 8 | -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | @interface AppDelegate () 4 | 5 | @end 6 | 7 | @implementation AppDelegate 8 | 9 | 10 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 11 | // Override point for customization after application launch. 12 | return YES; 13 | } 14 | 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView/Assets.xcassets/forest.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green-forest-1684909.jpg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView/Assets.xcassets/forest.imageset/green-forest-1684909.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView/Assets.xcassets/forest.imageset/green-forest-1684909.jpg -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView/ViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ViewController : UIViewController 4 | @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 5 | 6 | 7 | @end 8 | 9 | -------------------------------------------------------------------------------- /2021/22. UIScrollView, Keyboard interactions/Demos/ScrollView/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import "AppDelegate.h" 3 | 4 | int main(int argc, char * argv[]) { 5 | NSString * appDelegateClassName; 6 | @autoreleasepool { 7 | // Setup code that might create autoreleased objects goes here. 8 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 9 | } 10 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 11 | } 12 | -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // TableViewDemo 4 | // 5 | // Created by Victor Semenchuk on 4/19/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // TableViewDemo 4 | // 5 | // Created by Victor Semenchuk on 4/19/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo/ShoppingItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // ShoppingItem.h 3 | // TableViewDemo 4 | // 5 | // Created by Victor Semenchuk on 4/19/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ShoppingItem : NSObject 14 | 15 | @property (nonatomic, strong) NSString *title; 16 | @property (nonatomic, assign) BOOL completed; 17 | 18 | - (instancetype)initWithTitle:(NSString *)title; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo/ShoppingItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // ShoppingItem.m 3 | // TableViewDemo 4 | // 5 | // Created by Victor Semenchuk on 4/19/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import "ShoppingItem.h" 10 | 11 | @implementation ShoppingItem 12 | 13 | - (instancetype)initWithTitle:(NSString *)title { 14 | self = [super init]; 15 | if (self) { 16 | _title = title; 17 | _completed = NO; 18 | } 19 | return self; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo/ShoppingItemTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ShoppingItemTableViewCell.h 3 | // TableViewDemo 4 | // 5 | // Created by Victor Semenchuk on 4/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class ShoppingItem; 14 | 15 | @interface ShoppingItemTableViewCell : UITableViewCell 16 | 17 | - (void)configureWithShoppingItem:(ShoppingItem *)shoppingItem; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /2021/23. UITableView, UITableViewController/Demos/TableViewDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // TableViewDemo 4 | // 5 | // Created by Victor Semenchuk on 4/19/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/Placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Placeholder.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/Placeholder.imageset/Placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/Placeholder.imageset/Placeholder.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img3.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img1.imageset/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img1.imageset/img3.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img4.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img2.imageset/img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img2.imageset/img4.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img8.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img3.imageset/img8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img3.imageset/img8.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img10.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img4.imageset/img10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Assets.xcassets/img4.imageset/img10.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Downloader.h: -------------------------------------------------------------------------------- 1 | // 2 | // Downloader.h 3 | // DispatchGroupDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface Downloader : NSObject 15 | 16 | + (void)downloadFromUrl:(NSString *)url completion:(void(^)(UIImage *))completion; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // DispatchGroupDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Support/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // DispatchGroupDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/DispatchGroupDemo/DispatchGroupDemo/Support/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // DispatchGroupDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/Placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Placeholder.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/Placeholder.imageset/Placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/Placeholder.imageset/Placeholder.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img1.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img1.imageset/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img1.imageset/img1.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img10.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img10.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img10.imageset/img10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img10.imageset/img10.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img2.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img2.imageset/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img2.imageset/img2.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img3.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img3.imageset/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img3.imageset/img3.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img4.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img4.imageset/img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img4.imageset/img4.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img5.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img5.imageset/img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img5.imageset/img5.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img6.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img6.imageset/img6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img6.imageset/img6.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img7.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img7.imageset/img7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img7.imageset/img7.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img8.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img8.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img8.imageset/img8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img8.imageset/img8.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img9.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img9.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img9.imageset/img9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Assets.xcassets/img9.imageset/img9.png -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/DataSourceItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // DataSourceItem.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface DataSourceItem : NSObject 15 | 16 | @property (nonatomic, copy) NSString *url; 17 | @property (nonatomic, strong) UIImage *image; 18 | 19 | - (instancetype)initWithUrl:(NSString *)url; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/DataSourceItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // DataSourceItem.m 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import "DataSourceItem.h" 10 | 11 | @implementation DataSourceItem 12 | 13 | - (instancetype)initWithUrl:(NSString *)url { 14 | self = [super init]; 15 | if (self) { 16 | _url = url; 17 | } 18 | return self; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Downloader.h: -------------------------------------------------------------------------------- 1 | // 2 | // Downloader.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface Downloader : NSObject 15 | 16 | + (void)downloadFromUrl:(NSString *)url completion:(void(^)(UIImage *))completion; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/RSImageGalleryViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSImageGalleryViewController.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSImageGalleryViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/RSPhotoCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSPhotoCollectionViewCell.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class DataSourceItem; 14 | 15 | @interface RSPhotoCollectionViewCell : UICollectionViewCell 16 | 17 | - (void)configureWithItem:(DataSourceItem *)item; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Support/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/26. Multithreading. Overview, GCD/Demos/TaskAddingDemo/TaskAddingDemo/Support/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // AsyncOperationDemo 4 | // 5 | // Created by Victor Semenchuk on 6/8/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/Assets.xcassets/Placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Placeholder.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/Assets.xcassets/Placeholder.imageset/Placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/Assets.xcassets/Placeholder.imageset/Placeholder.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/RSOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSOperation.h 3 | // AsyncOperationDemo 4 | // 5 | // Created by Victor Semenchuk on 6/8/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSOperation : NSOperation 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // AsyncOperationDemo 4 | // 5 | // Created by Victor Semenchuk on 6/8/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // AsyncOperationDemo 4 | // 5 | // Created by Victor Semenchuk on 6/8/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/AsyncOperationDemo/AsyncOperationDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // AsyncOperationDemo 4 | // 5 | // Created by Victor Semenchuk on 6/8/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/Placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Placeholder.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/Placeholder.imageset/Placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/Placeholder.imageset/Placeholder.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img1.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img1.imageset/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img1.imageset/img1.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img10.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img10.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img10.imageset/img10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img10.imageset/img10.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img2.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img2.imageset/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img2.imageset/img2.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img3.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img3.imageset/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img3.imageset/img3.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img4.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img4.imageset/img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img4.imageset/img4.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img5.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img5.imageset/img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img5.imageset/img5.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img6.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img6.imageset/img6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img6.imageset/img6.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img7.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img7.imageset/img7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img7.imageset/img7.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img8.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img8.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img8.imageset/img8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img8.imageset/img8.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img9.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img9.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img9.imageset/img9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Assets.xcassets/img9.imageset/img9.png -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/DataSourceItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // DataSourceItem.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface DataSourceItem : NSObject 15 | 16 | @property (nonatomic, copy) NSString *url; 17 | @property (nonatomic, strong) UIImage *image; 18 | 19 | - (instancetype)initWithUrl:(NSString *)url; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/DataSourceItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // DataSourceItem.m 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import "DataSourceItem.h" 10 | 11 | @implementation DataSourceItem 12 | 13 | - (instancetype)initWithUrl:(NSString *)url { 14 | self = [super init]; 15 | if (self) { 16 | _url = url; 17 | } 18 | return self; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Downloader.h: -------------------------------------------------------------------------------- 1 | // 2 | // Downloader.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface Downloader : NSObject 15 | 16 | + (void)downloadFromUrl:(NSString *)url completion:(void(^)(UIImage *))completion; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/RSFilterOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSFilterOperation.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Victor Semenchuk on 6/8/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface RSFilterOperation : NSOperation 15 | 16 | @property (nonatomic, strong) UIImage *image; 17 | @property (nonatomic, copy) void(^completion)(UIImage *image); 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/RSImageGalleryViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSImageGalleryViewController.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface RSImageGalleryViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/RSOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSOperation.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Victor Semenchuk on 6/8/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface RSOperation : NSOperation 15 | 16 | @property (nonatomic, strong) UIImage *image; 17 | @property (nonatomic, copy) void(^completion)(UIImage *); 18 | 19 | - (instancetype)initWithUrl:(NSString *)url; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/RSPhotoCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSPhotoCollectionViewCell.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class DataSourceItem; 14 | 15 | @interface RSPhotoCollectionViewCell : UICollectionViewCell 16 | 17 | - (void)configureWithItem:(DataSourceItem *)item; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Support/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/27. Multithreading. Operation queues/Demos/OperationsDemo/TaskAddingDemo/Support/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Viktar Semianchuk on 6/6/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Demo1_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/CONSOLE.imageset/CONSOLE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/CONSOLE.imageset/CONSOLE.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/CONSOLE.imageset/CONSOLE@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/CONSOLE.imageset/CONSOLE@2x.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/CONSOLE.imageset/CONSOLE@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/CONSOLE.imageset/CONSOLE@3x.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/CONSOLE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CONSOLE.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "CONSOLE@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "CONSOLE@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/RS_School_Logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RS_School_Logo.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "RS_School_Logo@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "RS_School_Logo@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo@2x.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo@3x.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // Demo1_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // Demo1_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo1_Networking/Demo1_Networking/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Demo1_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | NSString * appDelegateClassName; 14 | @autoreleasepool { 15 | // Setup code that might create autoreleased objects goes here. 16 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 17 | } 18 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 19 | } 20 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/BottomShadow.imageset/BottomShadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/BottomShadow.imageset/BottomShadow.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/BottomShadow.imageset/BottomShadow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/BottomShadow.imageset/BottomShadow@2x.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/BottomShadow.imageset/BottomShadow@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/BottomShadow.imageset/BottomShadow@3x.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/BottomShadow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BottomShadow.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "BottomShadow@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "BottomShadow@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/Placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Placeholder.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Placeholder@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Placeholder@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/Placeholder.imageset/Placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/Placeholder.imageset/Placeholder.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/Placeholder.imageset/Placeholder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/Placeholder.imageset/Placeholder@2x.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/Placeholder.imageset/Placeholder@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Assets.xcassets/Placeholder.imageset/Placeholder@3x.png -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Parsers/RSJSONParser.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSJSONParser.h 3 | // Demo2_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "RSParserProtocol.h" 11 | 12 | @interface RSJSONParser : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Parsers/RSParserProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSParserProtocol.h 3 | // Demo2_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class RSUser; 12 | 13 | @protocol RSParserProtocol 14 | 15 | - (void)parseUsers:(NSData *)data completion:(void(^)(NSArray *, NSError *))completion; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Parsers/RSXMLParser.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSXMLParser.h 3 | // Demo2_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "RSParserProtocol.h" 11 | 12 | @interface RSXMLParser : NSObject 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Services/RSImageDownloadOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSImageDownloadOperation.h 3 | // TaskAddingDemo 4 | // 5 | // Created by Victor Semenchuk on 6/8/20. 6 | // Copyright © 2020 Viktar Semianchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface RSImageDownloadOperation : NSOperation 13 | 14 | @property (nonatomic, strong) UIImage *image; 15 | @property (nonatomic, copy) void(^completion)(UIImage *); 16 | 17 | - (instancetype)initWithUrl:(NSString *)url; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Support/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Demo2_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/Support/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // Demo2_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/UI/RSPhotoCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSPhotoCollectionViewCell.h 3 | // Demo2_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class RSUser; 12 | 13 | @interface RSPhotoCollectionViewCell : UICollectionViewCell 14 | 15 | - (void)configureWithItem:(RSUser *)user; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/UI/RSViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // Demo2_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/29. Networking/Demos/Demo2_Networking/Demo2_Networking/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSViewController.h 3 | // Demo2_Networking 4 | // 5 | // Created by Victor Semenchuk on 6/20/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/Examples/Data/JSONTestObject.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSONTestObject.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 1.05.21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface JSONTestObject : NSObject 13 | @property (nonatomic, copy) NSString *testIdentifier; 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/Examples/Object equality/RSDevice.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSDevice.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface RSDevice : NSObject 13 | @property (nonatomic, copy) NSString *name; 14 | @property (nonatomic, strong) NSNumber *capacity; 15 | - (instancetype)initWithName:(NSString *)name capacity:(NSNumber *)capacity; 16 | - (void)setName:(NSString *)name capacity:(NSNumber *)number; 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/Examples/Predicate/Address.h: -------------------------------------------------------------------------------- 1 | // 2 | // Address.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface Address : NSObject 13 | @property (nonatomic, copy) NSString *country; 14 | @property (nonatomic, copy) NSString *city; 15 | @property (nonatomic, copy) NSString *street; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/Examples/Predicate/Address.m: -------------------------------------------------------------------------------- 1 | // 2 | // Address.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 2.05.21. 6 | // 7 | 8 | #import "Address.h" 9 | 10 | @implementation Address 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/Examples/Predicate/Person.m: -------------------------------------------------------------------------------- 1 | // 2 | // Person.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 2.05.21. 6 | // 7 | 8 | #import "Person.h" 9 | 10 | @implementation Person 11 | 12 | - (instancetype)initWithFirstName:(NSString *)firstName { 13 | if (self = [super init]) { 14 | self.firstName = firstName; 15 | } 16 | return self; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | 10 | @interface SceneDelegate : UIResponder 11 | 12 | @property (strong, nonatomic) UIWindow * window; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | 10 | @interface ViewController : UIViewController 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import "ViewController.h" 9 | 10 | @interface ViewController () 11 | 12 | @end 13 | 14 | @implementation ViewController 15 | 16 | - (void)viewDidLoad { 17 | [super viewDidLoad]; 18 | // Do any additional setup after loading the view. 19 | } 20 | 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/RSSchool.Foundation.KVC/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | #import "AppDelegate.h" 10 | 11 | int main(int argc, char * argv[]) { 12 | NSString * appDelegateClassName; 13 | @autoreleasepool { 14 | // Setup code that might create autoreleased objects goes here. 15 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 16 | } 17 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 18 | } 19 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Final/sampleText.txt: -------------------------------------------------------------------------------- 1 | File content 2 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | 10 | @interface AppDelegate : UIResponder 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/Examples/Data/JSONTestObject.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSONTestObject.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 1.05.21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface JSONTestObject : NSObject 13 | @property (nonatomic, copy) NSString *testIdentifier; 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/Examples/Object equality/RSDevice.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSDevice.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface RSDevice : NSObject 13 | @property (nonatomic, copy) NSString *name; 14 | @property (nonatomic, strong) NSNumber *capacity; 15 | - (instancetype)initWithName:(NSString *)name capacity:(NSNumber *)capacity; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/Examples/Object equality/RSDevice.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSDevice.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import "RSDevice.h" 9 | 10 | @implementation RSDevice 11 | 12 | @synthesize name = _name, capacity = _capacity; 13 | 14 | - (instancetype)initWithName:(NSString *)name capacity:(NSNumber *)capacity 15 | { 16 | if (self = [super init]) { 17 | _name = name; 18 | _capacity = capacity; 19 | } 20 | return self; 21 | } 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/Examples/Predicate/Address.h: -------------------------------------------------------------------------------- 1 | // 2 | // Address.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface Address : NSObject 13 | @property (nonatomic, copy) NSString *country; 14 | @property (nonatomic, copy) NSString *city; 15 | @property (nonatomic, copy) NSString *street; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/Examples/Predicate/Address.m: -------------------------------------------------------------------------------- 1 | // 2 | // Address.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 2.05.21. 6 | // 7 | 8 | #import "Address.h" 9 | 10 | @implementation Address 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/Examples/Predicate/Person.m: -------------------------------------------------------------------------------- 1 | // 2 | // Person.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 2.05.21. 6 | // 7 | 8 | #import "Person.h" 9 | 10 | @implementation Person 11 | 12 | - (instancetype)initWithFirstName:(NSString *)firstName { 13 | if (self = [super init]) { 14 | self.firstName = firstName; 15 | } 16 | return self; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | 10 | @interface SceneDelegate : UIResponder 11 | 12 | @property (strong, nonatomic) UIWindow * window; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | 10 | @interface ViewController : UIViewController 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import "ViewController.h" 9 | 10 | @interface ViewController () 11 | 12 | @end 13 | 14 | @implementation ViewController 15 | 16 | - (void)viewDidLoad { 17 | [super viewDidLoad]; 18 | // Do any additional setup after loading the view. 19 | } 20 | 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVC/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // RSSchool.Foundation.KVC 4 | // 5 | // Created by Diana Tynkovan on 28.04.21. 6 | // 7 | 8 | #import 9 | #import "AppDelegate.h" 10 | 11 | int main(int argc, char * argv[]) { 12 | NSString * appDelegateClassName; 13 | @autoreleasepool { 14 | // Setup code that might create autoreleased objects goes here. 15 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 16 | } 17 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 18 | } 19 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVCTests/NSDataTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSDataTests.m 3 | // RSSchool.Foundation.KVCTests 4 | // 5 | // Created by Diana Tynkovan on 1.05.21. 6 | // 7 | 8 | #import 9 | #import "JSONTestObject.h" 10 | 11 | @interface NSDataTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation NSDataTests 16 | 17 | - (void)testExample { 18 | 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVCTests/NSNumberFormatterTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSNumberFormatterTests.m 3 | // RSSchool.Foundation.KVCTests 4 | // 5 | // Created by Diana Tynkovan on 1.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface NSNumberFormatterTests : XCTestCase 11 | 12 | @end 13 | 14 | @implementation NSNumberFormatterTests 15 | 16 | - (void)testExample { 17 | 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVCTests/NSRangesTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSRangesTests.m 3 | // RSSchool.Foundation.KVCTests 4 | // 5 | // Created by Diana Tynkovan on 3.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface NSRangesTests : XCTestCase 11 | 12 | @end 13 | 14 | @implementation NSRangesTests 15 | 16 | - (void)testMakeRange { 17 | 18 | } 19 | 20 | - (void)testRangeOfString { 21 | 22 | } 23 | 24 | - (void)testRangeOfStringWhereResultIsNSNotFound { 25 | 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /2021/3. Objective-C. Foundation KVC/Demos/Demo/Starter/RSSchool.Foundation.KVCTests/NSURLTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSURLTests.m 3 | // RSSchool.Foundation.KVCTests 4 | // 5 | // Created by Diana Tynkovan on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface NSURLTests : XCTestCase 11 | 12 | @end 13 | 14 | @implementation NSURLTests 15 | 16 | - (void)testFileURLWithPath { 17 | 18 | } 19 | 20 | - (void)testURLWithString { 21 | 22 | } 23 | 24 | - (void)testURLComponents { 25 | 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/Models/RSMentor.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSMentor.h 3 | // SQLite_Demo 4 | // 5 | // Created by Victor Semenchuk on 6/24/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSMentor : NSObject 12 | 13 | @property (nonatomic, assign) NSUInteger mentorId; 14 | @property (nonatomic, copy) NSString *firstName; 15 | @property (nonatomic, copy) NSString *lastName; 16 | 17 | - (instancetype)initWithId:(NSUInteger)mentorId 18 | firstName:(NSString *)firstName 19 | lastName:(NSString *)lastName; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/Support Files/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // SQLite_Demo 4 | // 5 | // Created by Victor Semenchuk on 6/24/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/Support Files/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // SQLite_Demo 4 | // 5 | // Created by Victor Semenchuk on 6/24/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/Support Files/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SQLite_Demo 4 | // 5 | // Created by Victor Semenchuk on 6/24/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | NSString * appDelegateClassName; 14 | @autoreleasepool { 15 | // Setup code that might create autoreleased objects goes here. 16 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 17 | } 18 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 19 | } 20 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/AppIcon.appiconset/RS_App_Icon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/AppIcon.appiconset/RS_App_Icon-1.png -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/AppIcon.appiconset/RS_App_Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/AppIcon.appiconset/RS_App_Icon.png -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/AppIcon.appiconset/RS_App_Icon@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/AppIcon.appiconset/RS_App_Icon@2x-1.png -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/AppIcon.appiconset/RS_App_Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/AppIcon.appiconset/RS_App_Icon@2x.png -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/RS_School_Logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RS_School_Logo.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "RS_School_Logo@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "RS_School_Logo@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo.png -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo@2x.png -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/32.SQLite/Demos/SQLite_Demo/UI/Assets.xcassets/RS_School_Logo.imageset/RS_School_Logo@3x.png -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Controllers/RSScoresViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSScoresViewController.h 3 | // SQLite_Demo 4 | // 5 | // Created by Victor Semenchuk on 6/24/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSScoresViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Controllers/RSStudentFormViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSStudentFormViewController.h 3 | // SQLite_Demo 4 | // 5 | // Created by Victor Semenchuk on 6/24/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class RSStudent; 12 | 13 | @interface RSStudentFormViewController : UIViewController 14 | 15 | - (instancetype)initWithStudent:(RSStudent *)student completion:(void(^)(RSStudent *))completion; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Views/RSProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProgressView.h 3 | // SQLite_Demo 4 | // 5 | // Created by Victor Semenchuk on 6/24/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RSProgressView : UIView 12 | 13 | - (void)setProgress:(CGFloat)progress; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /2021/32.SQLite/Demos/SQLite_Demo/UI/Views/RSScoreTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSScoreTableViewCell.h 3 | // SQLite_Demo 4 | // 5 | // Created by Victor Semenchuk on 6/24/20. 6 | // Copyright © 2020 Victor Semenchuk. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "RSStudent.h" 11 | 12 | @interface RSScoreTableViewCell : UITableViewCell 13 | 14 | - (void)confgureWithStudent:(RSStudent *)student; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/12/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface AppDelegate : UIResponder 13 | 14 | @property (nonatomic) NSPersistentContainer *persistentContainer; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/Default/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/MainScreen/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/12/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/MainScreen/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/12/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do any additional setup after loading the view. 20 | } 21 | 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/SceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/12/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SceneDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow * window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/Song+CoreDataClass.h: -------------------------------------------------------------------------------- 1 | // 2 | // Song+CoreDataClass.h 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/13/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | // 9 | 10 | #import 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface Song : NSManagedObject 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | 21 | #import "Song+CoreDataProperties.h" 22 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/Song+CoreDataClass.m: -------------------------------------------------------------------------------- 1 | // 2 | // Song+CoreDataClass.m 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/13/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | // 9 | 10 | #import "Song+CoreDataClass.h" 11 | 12 | @implementation Song 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/TableScreen/TableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TableViewCell.h 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/12/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Song+CoreDataProperties.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface TableViewCell : UITableViewCell 15 | 16 | @property (weak, nonatomic) IBOutlet UILabel *artistLabel; 17 | @property (weak, nonatomic) IBOutlet UILabel *songLabel; 18 | 19 | - (void)configureWithSong:(NSDictionary *)song; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/TableScreen/TableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TableViewController.h 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/12/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface TableViewController : UITableViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /2021/33. Core Data/Demos/CoreDataDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // CoreDataDemo 4 | // 5 | // Created by Vadim Nevyglas on 7/12/20. 6 | // Copyright © 2020 Vadim Nevyglas. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | NSString * appDelegateClassName; 14 | @autoreleasepool { 15 | // Setup code that might create autoreleased objects goes here. 16 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 17 | } 18 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 19 | } 20 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 1 - Working_with _Arrays/WorkingWithArray Final/Demo1_WorkingWithArray.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 1 - Working_with _Arrays/WorkingWithArray Final/Demo1_WorkingWithArray.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 1 - Working_with _Arrays/WorkingWithArray Final/Demo1_WorkingWithArray/RSProduct.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.h 3 | // Demo1_WorkingWithArray 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface RSProduct : NSObject 11 | 12 | @property (nonatomic, copy) NSString *title; 13 | 14 | - (instancetype)initWithTitle:(NSString *)title; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 1 - Working_with _Arrays/WorkingWithArray Final/Demo1_WorkingWithArray/RSProduct.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.m 3 | // Demo1_WorkingWithArray 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import "RSProduct.h" 9 | 10 | @implementation RSProduct 11 | 12 | - (instancetype)initWithTitle:(NSString *)title { 13 | self = [super init]; 14 | if (self) { 15 | _title = title; 16 | } 17 | return self; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 1 - Working_with _Arrays/WorkingWithArray Starter/Demo1_WorkingWithArray.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 1 - Working_with _Arrays/WorkingWithArray Starter/Demo1_WorkingWithArray.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 1 - Working_with _Arrays/WorkingWithArray Starter/Demo1_WorkingWithArray/RSProduct.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.h 3 | // Demo1_WorkingWithArray 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface RSProduct : NSObject 11 | 12 | @property (nonatomic, copy) NSString *title; 13 | 14 | - (instancetype)initWithTitle:(NSString *)title; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 1 - Working_with _Arrays/WorkingWithArray Starter/Demo1_WorkingWithArray/RSProduct.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.m 3 | // Demo1_WorkingWithArray 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import "RSProduct.h" 9 | 10 | @implementation RSProduct 11 | 12 | - (instancetype)initWithTitle:(NSString *)title { 13 | self = [super init]; 14 | if (self) { 15 | _title = title; 16 | } 17 | return self; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 2 - Working_with _Dictionaries/WorkingWithDictionary Final/Demo2_WorkingWithDictionary.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 2 - Working_with _Dictionaries/WorkingWithDictionary Final/Demo2_WorkingWithDictionary.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 2 - Working_with _Dictionaries/WorkingWithDictionary Final/Demo2_WorkingWithDictionary/RSProduct.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.h 3 | // Demo2_WorkingWithDictionary 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface RSProduct : NSObject 11 | 12 | @property (nonatomic, copy) NSString *title; 13 | 14 | - (instancetype)initWithTitle:(NSString *)title; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 2 - Working_with _Dictionaries/WorkingWithDictionary Final/Demo2_WorkingWithDictionary/RSProduct.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.m 3 | // Demo2_WorkingWithDictionary 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import "RSProduct.h" 9 | 10 | @implementation RSProduct 11 | 12 | - (instancetype)initWithTitle:(NSString *)title { 13 | self = [super init]; 14 | if (self) { 15 | _title = title; 16 | } 17 | return self; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 2 - Working_with _Dictionaries/WorkingWithDictionary Starter/Demo2_WorkingWithDictionary.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 2 - Working_with _Dictionaries/WorkingWithDictionary Starter/Demo2_WorkingWithDictionary.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 2 - Working_with _Dictionaries/WorkingWithDictionary Starter/Demo2_WorkingWithDictionary/RSProduct.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.h 3 | // Demo2_WorkingWithDictionary 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface RSProduct : NSObject 11 | 12 | @property (nonatomic, copy) NSString *title; 13 | 14 | - (instancetype)initWithTitle:(NSString *)title; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 2 - Working_with _Dictionaries/WorkingWithDictionary Starter/Demo2_WorkingWithDictionary/RSProduct.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.m 3 | // Demo2_WorkingWithDictionary 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import "RSProduct.h" 9 | 10 | @implementation RSProduct 11 | 12 | - (instancetype)initWithTitle:(NSString *)title { 13 | self = [super init]; 14 | if (self) { 15 | _title = title; 16 | } 17 | return self; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 3 - Working_with_Set/WorkingWithSet Final/Demo3_WorkingWithSet.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 3 - Working_with_Set/WorkingWithSet Final/Demo3_WorkingWithSet.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 3 - Working_with_Set/WorkingWithSet Final/Demo3_WorkingWithSet/RSProduct.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.h 3 | // Demo3_WorkingWithSet 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface RSProduct : NSObject 11 | 12 | @property (nonatomic, copy) NSString *title; 13 | 14 | - (instancetype)initWithTitle:(NSString *)title; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 3 - Working_with_Set/WorkingWithSet Final/Demo3_WorkingWithSet/RSProduct.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.m 3 | // Demo3_WorkingWithSet 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import "RSProduct.h" 9 | 10 | @implementation RSProduct 11 | 12 | - (instancetype)initWithTitle:(NSString *)title { 13 | self = [super init]; 14 | if (self) { 15 | _title = title; 16 | } 17 | return self; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 3 - Working_with_Set/WorkingWithSet Starter/Demo3_WorkingWithSet.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 3 - Working_with_Set/WorkingWithSet Starter/Demo3_WorkingWithSet.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 3 - Working_with_Set/WorkingWithSet Starter/Demo3_WorkingWithSet/RSProduct.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.h 3 | // Demo3_WorkingWithSet 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface RSProduct : NSObject 11 | 12 | @property (nonatomic, copy) NSString *title; 13 | 14 | - (instancetype)initWithTitle:(NSString *)title; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 3 - Working_with_Set/WorkingWithSet Starter/Demo3_WorkingWithSet/RSProduct.m: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.m 3 | // Demo3_WorkingWithSet 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import "RSProduct.h" 9 | 10 | @implementation RSProduct 11 | 12 | - (instancetype)initWithTitle:(NSString *)title { 13 | self = [super init]; 14 | if (self) { 15 | _title = title; 16 | } 17 | return self; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 4 - Copying_Collections/CopyingCollections Final/Demo4_CopyingCollections.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 4 - Copying_Collections/CopyingCollections Final/Demo4_CopyingCollections.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 4 - Copying_Collections/CopyingCollections Starter/Demo4_CopyingCollections.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 4 - Copying_Collections/CopyingCollections Starter/Demo4_CopyingCollections.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 5 - CollectionEnumeration/CollectionEnumeration Final/Demo5_CollectionEnumeration.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 5 - CollectionEnumeration/CollectionEnumeration Final/Demo5_CollectionEnumeration.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 5 - CollectionEnumeration/CollectionEnumeration Starter/Demo5_CollectionEnumeration.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 5 - CollectionEnumeration/CollectionEnumeration Starter/Demo5_CollectionEnumeration.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 6 - CollectionSorting/CollectionSorting Final/Demo6_CollectionSorting.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 6 - CollectionSorting/CollectionSorting Final/Demo6_CollectionSorting.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 6 - CollectionSorting/CollectionSorting Final/Demo6_CollectionSorting/RSProduct.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.h 3 | // Demo6_CollectionSorting 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface RSProduct : NSObject 11 | 12 | @property (nonatomic, copy) NSString *title; 13 | @property (nonatomic, assign) NSUInteger count; 14 | 15 | - (instancetype)initWithTitle:(NSString *)title andCount:(NSUInteger)count; 16 | @end 17 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 6 - CollectionSorting/CollectionSorting Starter/Demo6_CollectionSorting.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 6 - CollectionSorting/CollectionSorting Starter/Demo6_CollectionSorting.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/4. Objective-C. Collections/Demos/Demo 6 - CollectionSorting/CollectionSorting Starter/Demo6_CollectionSorting/RSProduct.h: -------------------------------------------------------------------------------- 1 | // 2 | // RSProduct.h 3 | // Demo6_CollectionSorting 4 | // 5 | // Created by Viktar Semianchuk on 2.05.21. 6 | // 7 | 8 | #import 9 | 10 | @interface RSProduct : NSObject 11 | 12 | @property (nonatomic, copy) NSString *title; 13 | @property (nonatomic, assign) NSUInteger count; 14 | 15 | - (instancetype)initWithTitle:(NSString *)title andCount:(NSUInteger)count; 16 | @end 17 | -------------------------------------------------------------------------------- /2021/5. Objective-C. KVO NotificationCenter/Demos/KVO.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/5. Objective-C. KVO NotificationCenter/Demos/KVO.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/5. Objective-C. KVO NotificationCenter/Demos/KVO/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface AppDelegate : UIResponder 4 | 5 | @property (strong, nonatomic) UIWindow *window; 6 | 7 | 8 | @end 9 | 10 | -------------------------------------------------------------------------------- /2021/5. Objective-C. KVO NotificationCenter/Demos/KVO/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/5. Objective-C. KVO NotificationCenter/Demos/KVO/ViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ViewController : UIViewController 4 | @property (weak, nonatomic) IBOutlet UITextField *textField; 5 | @property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomTextFieldContraints; 6 | 7 | @end 8 | 9 | -------------------------------------------------------------------------------- /2021/5. Objective-C. KVO NotificationCenter/Demos/KVO/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import "AppDelegate.h" 3 | 4 | int main(int argc, char * argv[]) { 5 | @autoreleasepool { 6 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /2021/5. Objective-C. KVO NotificationCenter/Tasks/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rolling-scopes-school/rs.ios.lecture.material/4cd6677e6d6cce8c9db2c3aeae9d68c0b70533f5/2021/5. Objective-C. KVO NotificationCenter/Tasks/.gitkeep -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsARC/BlocksTestsARC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsARC/BlocksTestsARC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsARC/BlocksTestsARC/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // BlocksTestsARC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsARC/BlocksTestsARC/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsARC/BlocksTestsARC/Demo/Demo.h: -------------------------------------------------------------------------------- 1 | // 2 | // Demo.h 3 | // BlocksTestsARC 4 | // 5 | // Created by Aliaksei Piatyha on 5/18/21. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface Demo : NSObject 14 | 15 | - (void)execute; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsARC/BlocksTestsARC/Demo/Retain cycle/BlockClass.h: -------------------------------------------------------------------------------- 1 | // 2 | // BlockClass.h 3 | // BlocksTestsARC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef void(^VoidBlock)(void); 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface BlockClass : NSObject 16 | 17 | @property (nonatomic, copy) VoidBlock block; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsARC/BlocksTestsARC/Demo/Retain cycle/BlockClass.m: -------------------------------------------------------------------------------- 1 | // 2 | // BlockClass.m 3 | // BlocksTestsARC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import "BlockClass.h" 10 | 11 | @implementation BlockClass 12 | 13 | - (void)dealloc { 14 | NSLog(@"%@ IS DEALLOCATING", self); 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsARC/BlocksTestsARC/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // BlocksTestsARC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // BlocksTestsMRC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/Demo/Demo.h: -------------------------------------------------------------------------------- 1 | // 2 | // Demo.h 3 | // BlocksTestsMRC 4 | // 5 | // Created by Aliaksei Piatyha on 5/18/21. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface Demo : NSObject 14 | 15 | - (void)execute; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/Demo/Test objects/BlockClass.h: -------------------------------------------------------------------------------- 1 | // 2 | // BlockClass.h 3 | // BlocksTestsMRC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef void(^VoidBlock)(void); 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface BlockClass : NSObject 16 | 17 | @property (nonatomic, copy) VoidBlock block; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/Demo/Test objects/BlockClass.m: -------------------------------------------------------------------------------- 1 | // 2 | // BlockClass.m 3 | // BlocksTestsMRC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import "BlockClass.h" 10 | 11 | @implementation BlockClass 12 | 13 | - (void)dealloc { 14 | NSLog(@"%@ IS DEALLOCATING", self); 15 | 16 | [_block release]; 17 | [super dealloc]; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/Demo/Test objects/Person.h: -------------------------------------------------------------------------------- 1 | // 2 | // Person.h 3 | // BlocksTestsMRC 4 | // 5 | // Created by Aliaksei Piatyha on 5/18/21. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface Person: NSObject 14 | 15 | @property (nonatomic, copy) NSString *title; 16 | @property (nonatomic, assign) NSInteger age; 17 | 18 | - (instancetype)initWithTitle:(NSString *)title andAge:(NSInteger)age; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/Demo/Test objects/SomeClass.h: -------------------------------------------------------------------------------- 1 | // 2 | // SomeClass.h 3 | // BlocksTestsARC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SomeClass : NSObject 14 | 15 | @property(nonatomic, copy) NSString *someInfo; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/Demo/Test objects/SomeClass.m: -------------------------------------------------------------------------------- 1 | // 2 | // SomeClass.m 3 | // BlocksTestsARC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import "SomeClass.h" 10 | 11 | @implementation SomeClass 12 | 13 | - (void)dealloc { 14 | [_someInfo release]; 15 | [super dealloc]; 16 | } 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /2021/6. Objective-C. Blocks/Demos/BlocksTestsMRC/BlocksTestsMRC/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // BlocksTestsMRC 4 | // 5 | // Created by Aliaksei Piatyha on 9/17/19. 6 | // Copyright © 2021 Aliaksei Piatyha. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 1/Demo1_Final.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 1/Demo1_Final.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 1/Demo1_Starter.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 1/Demo1_Starter.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 1/Demo1_Starter.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 2/Demo2_Final.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 2/Demo2_Final.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 2/Demo2_Starter.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 2/Demo2_Starter.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 2/Demo2_Starter.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 3/Demo3_Final.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class ParentClass { 4 | deinit { 5 | print("ParentClass deinit") 6 | } 7 | } 8 | 9 | class ChildClass: ParentClass { 10 | deinit { 11 | print("ChildClass deinit") 12 | } 13 | } 14 | 15 | if true { 16 | let obj = ChildClass() 17 | } 18 | 19 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 3/Demo3_Final.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 3/Demo3_Final.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 3/Demo3_Starter.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 3/Demo3_Starter.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/7. Swift. Fundamentals. Part 1/Demos/Demo 3/Demo3_Starter.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/8. Swift. Fundamentals. Part 2/Demos/Swift 2 Demo Extensions.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/8. Swift. Fundamentals. Part 2/Demos/Swift 2 Demo Extensions.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/8. Swift. Fundamentals. Part 2/Demos/Swift 2 Demo Protocols.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/8. Swift. Fundamentals. Part 2/Demos/Swift 2 Demo Protocols.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 1/Demo1 Final.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 1/Demo1 Final.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 1/Demo1 Starter.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 1/Demo1 Starter.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 1/Demo1 Starter.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 2/Demo2 Final.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 2/Demo2 Final.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 2/Demo2 Starter.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 2/Demo2 Starter.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 2/Demo2 Starter.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 3/Demo3 Final.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 3/Demo3 Final.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 3/Demo3 Starter.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 3/Demo3 Starter.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /2021/9. Swift. Properties, Enums, Optionals/Demos/Demo 3/Demo3 Starter.playground/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | --------------------------------------------------------------------------------