From 35ed7da41ada52e9a1d81a37f8124d8bf5747b26 Mon Sep 17 00:00:00 2001 From: Badreah Date: Thu, 23 Dec 2021 04:19:24 +0300 Subject: [PATCH] json image --- Json-p2/Json-p2.xcodeproj/project.pbxproj | 367 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 25787 bytes .../xcschemes/xcschememanagement.plist | 14 + Json-p2/Json-p2/AppDelegate.swift | 36 ++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 98 +++++ Json-p2/Json-p2/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ Json-p2/Json-p2/Base.lproj/Main.storyboard | 71 ++++ Json-p2/Json-p2/Info.plist | 25 ++ Json-p2/Json-p2/SceneDelegate.swift | 52 +++ Json-p2/Json-p2/TabelCell.swift | 25 ++ Json-p2/Json-p2/ViewController.swift | 95 +++++ 15 files changed, 840 insertions(+) create mode 100644 Json-p2/Json-p2.xcodeproj/project.pbxproj create mode 100644 Json-p2/Json-p2.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Json-p2/Json-p2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Json-p2/Json-p2.xcodeproj/project.xcworkspace/xcuserdata/badreahsaad.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Json-p2/Json-p2.xcodeproj/xcuserdata/badreahsaad.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Json-p2/Json-p2/AppDelegate.swift create mode 100644 Json-p2/Json-p2/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Json-p2/Json-p2/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Json-p2/Json-p2/Assets.xcassets/Contents.json create mode 100644 Json-p2/Json-p2/Base.lproj/LaunchScreen.storyboard create mode 100644 Json-p2/Json-p2/Base.lproj/Main.storyboard create mode 100644 Json-p2/Json-p2/Info.plist create mode 100644 Json-p2/Json-p2/SceneDelegate.swift create mode 100644 Json-p2/Json-p2/TabelCell.swift create mode 100644 Json-p2/Json-p2/ViewController.swift diff --git a/Json-p2/Json-p2.xcodeproj/project.pbxproj b/Json-p2/Json-p2.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2109103 --- /dev/null +++ b/Json-p2/Json-p2.xcodeproj/project.pbxproj @@ -0,0 +1,367 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 98E1A7742771E3DF00AE605B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E1A7732771E3DF00AE605B /* AppDelegate.swift */; }; + 98E1A7762771E3DF00AE605B /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E1A7752771E3DF00AE605B /* SceneDelegate.swift */; }; + 98E1A7782771E3DF00AE605B /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E1A7772771E3DF00AE605B /* ViewController.swift */; }; + 98E1A77B2771E3DF00AE605B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 98E1A7792771E3DF00AE605B /* Main.storyboard */; }; + 98E1A77D2771E3E100AE605B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 98E1A77C2771E3E100AE605B /* Assets.xcassets */; }; + 98E1A7802771E3E100AE605B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 98E1A77E2771E3E100AE605B /* LaunchScreen.storyboard */; }; + 98E1A7882771E71C00AE605B /* TabelCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E1A7872771E71C00AE605B /* TabelCell.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 98E1A7702771E3DF00AE605B /* Json-p2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Json-p2.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 98E1A7732771E3DF00AE605B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 98E1A7752771E3DF00AE605B /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 98E1A7772771E3DF00AE605B /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 98E1A77A2771E3DF00AE605B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 98E1A77C2771E3E100AE605B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 98E1A77F2771E3E100AE605B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 98E1A7812771E3E100AE605B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 98E1A7872771E71C00AE605B /* TabelCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabelCell.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 98E1A76D2771E3DF00AE605B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 98E1A7672771E3DF00AE605B = { + isa = PBXGroup; + children = ( + 98E1A7722771E3DF00AE605B /* Json-p2 */, + 98E1A7712771E3DF00AE605B /* Products */, + ); + sourceTree = ""; + }; + 98E1A7712771E3DF00AE605B /* Products */ = { + isa = PBXGroup; + children = ( + 98E1A7702771E3DF00AE605B /* Json-p2.app */, + ); + name = Products; + sourceTree = ""; + }; + 98E1A7722771E3DF00AE605B /* Json-p2 */ = { + isa = PBXGroup; + children = ( + 98E1A7732771E3DF00AE605B /* AppDelegate.swift */, + 98E1A7752771E3DF00AE605B /* SceneDelegate.swift */, + 98E1A7772771E3DF00AE605B /* ViewController.swift */, + 98E1A7872771E71C00AE605B /* TabelCell.swift */, + 98E1A7792771E3DF00AE605B /* Main.storyboard */, + 98E1A77C2771E3E100AE605B /* Assets.xcassets */, + 98E1A77E2771E3E100AE605B /* LaunchScreen.storyboard */, + 98E1A7812771E3E100AE605B /* Info.plist */, + ); + path = "Json-p2"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 98E1A76F2771E3DF00AE605B /* Json-p2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 98E1A7842771E3E100AE605B /* Build configuration list for PBXNativeTarget "Json-p2" */; + buildPhases = ( + 98E1A76C2771E3DF00AE605B /* Sources */, + 98E1A76D2771E3DF00AE605B /* Frameworks */, + 98E1A76E2771E3DF00AE605B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Json-p2"; + productName = "Json-p2"; + productReference = 98E1A7702771E3DF00AE605B /* Json-p2.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 98E1A7682771E3DF00AE605B /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1300; + LastUpgradeCheck = 1300; + TargetAttributes = { + 98E1A76F2771E3DF00AE605B = { + CreatedOnToolsVersion = 13.0; + }; + }; + }; + buildConfigurationList = 98E1A76B2771E3DF00AE605B /* Build configuration list for PBXProject "Json-p2" */; + compatibilityVersion = "Xcode 13.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 98E1A7672771E3DF00AE605B; + productRefGroup = 98E1A7712771E3DF00AE605B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 98E1A76F2771E3DF00AE605B /* Json-p2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 98E1A76E2771E3DF00AE605B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 98E1A7802771E3E100AE605B /* LaunchScreen.storyboard in Resources */, + 98E1A77D2771E3E100AE605B /* Assets.xcassets in Resources */, + 98E1A77B2771E3DF00AE605B /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 98E1A76C2771E3DF00AE605B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 98E1A7782771E3DF00AE605B /* ViewController.swift in Sources */, + 98E1A7742771E3DF00AE605B /* AppDelegate.swift in Sources */, + 98E1A7882771E71C00AE605B /* TabelCell.swift in Sources */, + 98E1A7762771E3DF00AE605B /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 98E1A7792771E3DF00AE605B /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 98E1A77A2771E3DF00AE605B /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 98E1A77E2771E3E100AE605B /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 98E1A77F2771E3E100AE605B /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 98E1A7822771E3E100AE605B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 98E1A7832771E3E100AE605B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 98E1A7852771E3E100AE605B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Json-p2/Info.plist"; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "tuwaiq.com.Json-p2"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 98E1A7862771E3E100AE605B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Json-p2/Info.plist"; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "tuwaiq.com.Json-p2"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 98E1A76B2771E3DF00AE605B /* Build configuration list for PBXProject "Json-p2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 98E1A7822771E3E100AE605B /* Debug */, + 98E1A7832771E3E100AE605B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 98E1A7842771E3E100AE605B /* Build configuration list for PBXNativeTarget "Json-p2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 98E1A7852771E3E100AE605B /* Debug */, + 98E1A7862771E3E100AE605B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 98E1A7682771E3DF00AE605B /* Project object */; +} diff --git a/Json-p2/Json-p2.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Json-p2/Json-p2.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Json-p2/Json-p2.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Json-p2/Json-p2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Json-p2/Json-p2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Json-p2/Json-p2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Json-p2/Json-p2.xcodeproj/project.xcworkspace/xcuserdata/badreahsaad.xcuserdatad/UserInterfaceState.xcuserstate b/Json-p2/Json-p2.xcodeproj/project.xcworkspace/xcuserdata/badreahsaad.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..cd7bd1ffcc26d5012799b0c631992bb35a2ac8ea GIT binary patch literal 25787 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 literal 0 HcmV?d00001 diff --git a/Json-p2/Json-p2.xcodeproj/xcuserdata/badreahsaad.xcuserdatad/xcschemes/xcschememanagement.plist b/Json-p2/Json-p2.xcodeproj/xcuserdata/badreahsaad.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..2a03964 --- /dev/null +++ b/Json-p2/Json-p2.xcodeproj/xcuserdata/badreahsaad.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Json-p2.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/Json-p2/Json-p2/AppDelegate.swift b/Json-p2/Json-p2/AppDelegate.swift new file mode 100644 index 0000000..b7bd960 --- /dev/null +++ b/Json-p2/Json-p2/AppDelegate.swift @@ -0,0 +1,36 @@ +// +// AppDelegate.swift +// Json-p2 +// +// Created by Badreah Saad on 21/12/2021. +// + +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/Json-p2/Json-p2/Assets.xcassets/AccentColor.colorset/Contents.json b/Json-p2/Json-p2/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Json-p2/Json-p2/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Json-p2/Json-p2/Assets.xcassets/AppIcon.appiconset/Contents.json b/Json-p2/Json-p2/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9221b9b --- /dev/null +++ b/Json-p2/Json-p2/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Json-p2/Json-p2/Assets.xcassets/Contents.json b/Json-p2/Json-p2/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Json-p2/Json-p2/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Json-p2/Json-p2/Base.lproj/LaunchScreen.storyboard b/Json-p2/Json-p2/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/Json-p2/Json-p2/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Json-p2/Json-p2/Base.lproj/Main.storyboard b/Json-p2/Json-p2/Base.lproj/Main.storyboard new file mode 100644 index 0000000..b42cfc3 --- /dev/null +++ b/Json-p2/Json-p2/Base.lproj/Main.storyboard @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Json-p2/Json-p2/Info.plist b/Json-p2/Json-p2/Info.plist new file mode 100644 index 0000000..dd3c9af --- /dev/null +++ b/Json-p2/Json-p2/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/Json-p2/Json-p2/SceneDelegate.swift b/Json-p2/Json-p2/SceneDelegate.swift new file mode 100644 index 0000000..a409e94 --- /dev/null +++ b/Json-p2/Json-p2/SceneDelegate.swift @@ -0,0 +1,52 @@ +// +// SceneDelegate.swift +// Json-p2 +// +// Created by Badreah Saad on 21/12/2021. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/Json-p2/Json-p2/TabelCell.swift b/Json-p2/Json-p2/TabelCell.swift new file mode 100644 index 0000000..c2c9334 --- /dev/null +++ b/Json-p2/Json-p2/TabelCell.swift @@ -0,0 +1,25 @@ +// +// TabelCell.swift +// Json-p2 +// +// Created by Badreah Saad on 21/12/2021. +// + +import UIKit + +class TabelCell: UITableViewCell { + + @IBOutlet weak var myImage: UIImageView! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + +} diff --git a/Json-p2/Json-p2/ViewController.swift b/Json-p2/Json-p2/ViewController.swift new file mode 100644 index 0000000..4728b02 --- /dev/null +++ b/Json-p2/Json-p2/ViewController.swift @@ -0,0 +1,95 @@ +// +// ViewController.swift +// Json-p2 +// +// Created by Badreah Saad on 21/12/2021. +// + +import UIKit + +class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { + + + @IBOutlet weak var myTabel: UITableView! + + var myArray: [String] = [] + + + override func viewDidLoad() { + super.viewDidLoad() + myTabel.delegate = self + myTabel.dataSource = self +// myTabel.estimatedRowHeight = 100 +// myTabel.rowHeight = UITableView.automaticDimension + downloadImage() + } + + + func downloadImage() { + let url = URL (string: "https://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=flower&nojsoncallback=1#") + let task = URLSession.shared.dataTask(with: url!) { data, respons, error in + guard let data = data else { return } + do { + let decodedData = try JSONDecoder().decode(DataModel.self, from: data) +// print(decodedData.link) + + for item in decodedData.items { + let images = item.media.m + print(images) + self.myArray.append(images) + } + + } catch { + print(error.localizedDescription) + } + DispatchQueue.main.async { + print(self.myArray.count) + self.myTabel.reloadData() + } + } + task.resume() + + } + + + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return myArray.count + } + + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = myTabel.dequeueReusableCell(withIdentifier: "cell") as! TabelCell + + if let url = URL(string: myArray[indexPath.row]) { + if let data = try? Data(contentsOf: url) { + cell.myImage.image = UIImage(data: data) + } + } + return cell + + } + + + + + +} + + +struct DataModel: Codable { + var title: String + var items: [Items] +} + +struct Items: Codable { + var title: String + var media: Media +} + +struct Media: Codable { + var m: String +} + + +