├── .gitignore ├── .swift-version ├── .travis.yml ├── CHANGELOG.md ├── EasyDi-SupportingFiles ├── EasyDi.h └── Info.plist ├── EasyDi-macOS ├── EasyDi_macOS.h └── Info.plist ├── EasyDi.podspec.json ├── EasyDi.xcodeproj ├── project.pbxproj └── xcshareddata │ └── xcschemes │ ├── EasyDi-iOS.xcscheme │ └── EasyDi-macOS.xcscheme ├── EasyDi.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── EasyDi_macOS-Tests └── Info.plist ├── Example ├── Resources │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ └── Info.plist ├── Source │ ├── AppDelegate.swift │ ├── Model │ │ ├── XKCDStrip+FromJSONDictionary.swift │ │ └── XKCDStrip.swift │ ├── Service │ │ ├── IURLService.swift │ │ ├── ImageService.swift │ │ ├── JSONAPIClient.swift │ │ ├── ServiceAssembly.swift │ │ ├── URLSession+IURLSession.swift │ │ └── XKCDService.swift │ └── UI │ │ ├── FeedView │ │ ├── Cells │ │ │ ├── XKCDInfiniteScrollFooterView.swift │ │ │ └── XKCDStripCell.swift │ │ ├── FeedViewAssembly.swift │ │ └── FeedViewController.swift │ │ └── StripView │ │ └── StripViewController.swift ├── Tests │ ├── Info.plist │ ├── Test_JSONAPIClient.swift │ └── Test_XKCDService.swift └── iOS Example.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ └── contents.xcworkspacedata │ └── xcshareddata │ └── xcschemes │ └── iOS Example.xcscheme ├── Images ├── easy_di_logo.png ├── scopes_object_graph.png ├── scopes_prototype.png └── scopes_singleton.png ├── LICENSE ├── Package.swift ├── README.md ├── Sources └── EasyDi.swift └── Tests ├── Info.plist ├── Test_Context.swift ├── Test_CrossAssemblyInjections.swift ├── Test_CrossAssemblyInjections_SingletonCycle.swift ├── Test_CrossAssemblyInjections_WeakSingletonCycle.swift ├── Test_ImplicitlyUnwrappedOptional.swift ├── Test_Injections.swift ├── Test_Patches.swift ├── Test_ProtocolBasedInjection.swift ├── Test_Scope.swift ├── Test_SingletonDuplication.swift ├── Test_StructsInjection.swift └── Test_Threadsafety.swift /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/.gitignore -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 5.0 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/.travis.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /EasyDi-SupportingFiles/EasyDi.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi-SupportingFiles/EasyDi.h -------------------------------------------------------------------------------- /EasyDi-SupportingFiles/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi-SupportingFiles/Info.plist -------------------------------------------------------------------------------- /EasyDi-macOS/EasyDi_macOS.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi-macOS/EasyDi_macOS.h -------------------------------------------------------------------------------- /EasyDi-macOS/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi-macOS/Info.plist -------------------------------------------------------------------------------- /EasyDi.podspec.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi.podspec.json -------------------------------------------------------------------------------- /EasyDi.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /EasyDi.xcodeproj/xcshareddata/xcschemes/EasyDi-iOS.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi.xcodeproj/xcshareddata/xcschemes/EasyDi-iOS.xcscheme -------------------------------------------------------------------------------- /EasyDi.xcodeproj/xcshareddata/xcschemes/EasyDi-macOS.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi.xcodeproj/xcshareddata/xcschemes/EasyDi-macOS.xcscheme -------------------------------------------------------------------------------- /EasyDi.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /EasyDi.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /EasyDi_macOS-Tests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/EasyDi_macOS-Tests/Info.plist -------------------------------------------------------------------------------- /Example/Resources/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Resources/Base.lproj/LaunchScreen.xib -------------------------------------------------------------------------------- /Example/Resources/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Resources/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /Example/Resources/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Resources/Images.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Example/Resources/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Resources/Images.xcassets/Contents.json -------------------------------------------------------------------------------- /Example/Resources/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Resources/Info.plist -------------------------------------------------------------------------------- /Example/Source/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/AppDelegate.swift -------------------------------------------------------------------------------- /Example/Source/Model/XKCDStrip+FromJSONDictionary.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/Model/XKCDStrip+FromJSONDictionary.swift -------------------------------------------------------------------------------- /Example/Source/Model/XKCDStrip.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/Model/XKCDStrip.swift -------------------------------------------------------------------------------- /Example/Source/Service/IURLService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/Service/IURLService.swift -------------------------------------------------------------------------------- /Example/Source/Service/ImageService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/Service/ImageService.swift -------------------------------------------------------------------------------- /Example/Source/Service/JSONAPIClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/Service/JSONAPIClient.swift -------------------------------------------------------------------------------- /Example/Source/Service/ServiceAssembly.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/Service/ServiceAssembly.swift -------------------------------------------------------------------------------- /Example/Source/Service/URLSession+IURLSession.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/Service/URLSession+IURLSession.swift -------------------------------------------------------------------------------- /Example/Source/Service/XKCDService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/Service/XKCDService.swift -------------------------------------------------------------------------------- /Example/Source/UI/FeedView/Cells/XKCDInfiniteScrollFooterView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/UI/FeedView/Cells/XKCDInfiniteScrollFooterView.swift -------------------------------------------------------------------------------- /Example/Source/UI/FeedView/Cells/XKCDStripCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/UI/FeedView/Cells/XKCDStripCell.swift -------------------------------------------------------------------------------- /Example/Source/UI/FeedView/FeedViewAssembly.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/UI/FeedView/FeedViewAssembly.swift -------------------------------------------------------------------------------- /Example/Source/UI/FeedView/FeedViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/UI/FeedView/FeedViewController.swift -------------------------------------------------------------------------------- /Example/Source/UI/StripView/StripViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Source/UI/StripView/StripViewController.swift -------------------------------------------------------------------------------- /Example/Tests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Tests/Info.plist -------------------------------------------------------------------------------- /Example/Tests/Test_JSONAPIClient.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Tests/Test_JSONAPIClient.swift -------------------------------------------------------------------------------- /Example/Tests/Test_XKCDService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/Tests/Test_XKCDService.swift -------------------------------------------------------------------------------- /Example/iOS Example.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/iOS Example.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Example/iOS Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/iOS Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Example/iOS Example.xcodeproj/xcshareddata/xcschemes/iOS Example.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Example/iOS Example.xcodeproj/xcshareddata/xcschemes/iOS Example.xcscheme -------------------------------------------------------------------------------- /Images/easy_di_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Images/easy_di_logo.png -------------------------------------------------------------------------------- /Images/scopes_object_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Images/scopes_object_graph.png -------------------------------------------------------------------------------- /Images/scopes_prototype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Images/scopes_prototype.png -------------------------------------------------------------------------------- /Images/scopes_singleton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Images/scopes_singleton.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Package.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/README.md -------------------------------------------------------------------------------- /Sources/EasyDi.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Sources/EasyDi.swift -------------------------------------------------------------------------------- /Tests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Info.plist -------------------------------------------------------------------------------- /Tests/Test_Context.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_Context.swift -------------------------------------------------------------------------------- /Tests/Test_CrossAssemblyInjections.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_CrossAssemblyInjections.swift -------------------------------------------------------------------------------- /Tests/Test_CrossAssemblyInjections_SingletonCycle.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_CrossAssemblyInjections_SingletonCycle.swift -------------------------------------------------------------------------------- /Tests/Test_CrossAssemblyInjections_WeakSingletonCycle.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_CrossAssemblyInjections_WeakSingletonCycle.swift -------------------------------------------------------------------------------- /Tests/Test_ImplicitlyUnwrappedOptional.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_ImplicitlyUnwrappedOptional.swift -------------------------------------------------------------------------------- /Tests/Test_Injections.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_Injections.swift -------------------------------------------------------------------------------- /Tests/Test_Patches.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_Patches.swift -------------------------------------------------------------------------------- /Tests/Test_ProtocolBasedInjection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_ProtocolBasedInjection.swift -------------------------------------------------------------------------------- /Tests/Test_Scope.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_Scope.swift -------------------------------------------------------------------------------- /Tests/Test_SingletonDuplication.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_SingletonDuplication.swift -------------------------------------------------------------------------------- /Tests/Test_StructsInjection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_StructsInjection.swift -------------------------------------------------------------------------------- /Tests/Test_Threadsafety.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tinkoff-mobile-tech/EasyDi/HEAD/Tests/Test_Threadsafety.swift --------------------------------------------------------------------------------