From 02f81bdfe6e0a27515a07f72f405f890dd5645ae Mon Sep 17 00:00:00 2001 From: Rodrigo Pedroso <> Date: Wed, 26 Jun 2019 23:05:40 -0400 Subject: [PATCH] Initial commit --- repo-browser.xcodeproj/project.pbxproj | 482 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + repo-browser/AppDelegate.swift | 46 ++ .../AppIcon.appiconset/Contents.json | 98 ++++ repo-browser/Assets.xcassets/Contents.json | 6 + .../Octocat.imageset/Contents.json | 21 + .../Octocat.imageset/images.png | Bin 0 -> 5743 bytes .../Base.lproj/LaunchScreen.storyboard | 25 + repo-browser/Base.lproj/Main.storyboard | 75 +++ repo-browser/Cells/RepoCell.swift | 29 ++ repo-browser/Cells/RepoCell.xib | 81 +++ repo-browser/Info.plist | 45 ++ repo-browser/ViewController.swift | 67 +++ repo-browserTests/Info.plist | 22 + repo-browserTests/repo_browserTests.swift | 34 ++ 16 files changed, 1046 insertions(+) create mode 100644 repo-browser.xcodeproj/project.pbxproj create mode 100644 repo-browser.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 repo-browser.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 repo-browser/AppDelegate.swift create mode 100644 repo-browser/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 repo-browser/Assets.xcassets/Contents.json create mode 100644 repo-browser/Assets.xcassets/Octocat.imageset/Contents.json create mode 100644 repo-browser/Assets.xcassets/Octocat.imageset/images.png create mode 100644 repo-browser/Base.lproj/LaunchScreen.storyboard create mode 100644 repo-browser/Base.lproj/Main.storyboard create mode 100644 repo-browser/Cells/RepoCell.swift create mode 100644 repo-browser/Cells/RepoCell.xib create mode 100644 repo-browser/Info.plist create mode 100644 repo-browser/ViewController.swift create mode 100644 repo-browserTests/Info.plist create mode 100644 repo-browserTests/repo_browserTests.swift diff --git a/repo-browser.xcodeproj/project.pbxproj b/repo-browser.xcodeproj/project.pbxproj new file mode 100644 index 0000000..78165cd --- /dev/null +++ b/repo-browser.xcodeproj/project.pbxproj @@ -0,0 +1,482 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + C10733B522C468A30095EEDD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C10733B422C468A30095EEDD /* AppDelegate.swift */; }; + C10733B722C468A30095EEDD /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C10733B622C468A30095EEDD /* ViewController.swift */; }; + C10733BA22C468A30095EEDD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C10733B822C468A30095EEDD /* Main.storyboard */; }; + C10733BC22C468A40095EEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C10733BB22C468A40095EEDD /* Assets.xcassets */; }; + C10733BF22C468A40095EEDD /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C10733BD22C468A40095EEDD /* LaunchScreen.storyboard */; }; + C10733CA22C468A40095EEDD /* repo_browserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C10733C922C468A40095EEDD /* repo_browserTests.swift */; }; + C10733D722C468F90095EEDD /* RepoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C10733D522C468F90095EEDD /* RepoCell.swift */; }; + C10733D822C468F90095EEDD /* RepoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C10733D622C468F90095EEDD /* RepoCell.xib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + C10733C622C468A40095EEDD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C10733A922C468A30095EEDD /* Project object */; + proxyType = 1; + remoteGlobalIDString = C10733B022C468A30095EEDD; + remoteInfo = "repo-browser"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + C10733B122C468A30095EEDD /* repo-browser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "repo-browser.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + C10733B422C468A30095EEDD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + C10733B622C468A30095EEDD /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + C10733B922C468A30095EEDD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + C10733BB22C468A40095EEDD /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + C10733BE22C468A40095EEDD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + C10733C022C468A40095EEDD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C10733C522C468A40095EEDD /* repo-browserTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "repo-browserTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + C10733C922C468A40095EEDD /* repo_browserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = repo_browserTests.swift; sourceTree = ""; }; + C10733CB22C468A40095EEDD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C10733D522C468F90095EEDD /* RepoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RepoCell.swift; sourceTree = ""; }; + C10733D622C468F90095EEDD /* RepoCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RepoCell.xib; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + C10733AE22C468A30095EEDD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C10733C222C468A40095EEDD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + C10733A822C468A30095EEDD = { + isa = PBXGroup; + children = ( + C10733B322C468A30095EEDD /* repo-browser */, + C10733C822C468A40095EEDD /* repo-browserTests */, + C10733B222C468A30095EEDD /* Products */, + ); + sourceTree = ""; + }; + C10733B222C468A30095EEDD /* Products */ = { + isa = PBXGroup; + children = ( + C10733B122C468A30095EEDD /* repo-browser.app */, + C10733C522C468A40095EEDD /* repo-browserTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + C10733B322C468A30095EEDD /* repo-browser */ = { + isa = PBXGroup; + children = ( + C10733D422C468E10095EEDD /* Cells */, + C10733B422C468A30095EEDD /* AppDelegate.swift */, + C10733B622C468A30095EEDD /* ViewController.swift */, + C10733B822C468A30095EEDD /* Main.storyboard */, + C10733BB22C468A40095EEDD /* Assets.xcassets */, + C10733BD22C468A40095EEDD /* LaunchScreen.storyboard */, + C10733C022C468A40095EEDD /* Info.plist */, + ); + path = "repo-browser"; + sourceTree = ""; + }; + C10733C822C468A40095EEDD /* repo-browserTests */ = { + isa = PBXGroup; + children = ( + C10733C922C468A40095EEDD /* repo_browserTests.swift */, + C10733CB22C468A40095EEDD /* Info.plist */, + ); + path = "repo-browserTests"; + sourceTree = ""; + }; + C10733D422C468E10095EEDD /* Cells */ = { + isa = PBXGroup; + children = ( + C10733D522C468F90095EEDD /* RepoCell.swift */, + C10733D622C468F90095EEDD /* RepoCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + C10733B022C468A30095EEDD /* repo-browser */ = { + isa = PBXNativeTarget; + buildConfigurationList = C10733CE22C468A40095EEDD /* Build configuration list for PBXNativeTarget "repo-browser" */; + buildPhases = ( + C10733AD22C468A30095EEDD /* Sources */, + C10733AE22C468A30095EEDD /* Frameworks */, + C10733AF22C468A30095EEDD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "repo-browser"; + productName = "repo-browser"; + productReference = C10733B122C468A30095EEDD /* repo-browser.app */; + productType = "com.apple.product-type.application"; + }; + C10733C422C468A40095EEDD /* repo-browserTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = C10733D122C468A40095EEDD /* Build configuration list for PBXNativeTarget "repo-browserTests" */; + buildPhases = ( + C10733C122C468A40095EEDD /* Sources */, + C10733C222C468A40095EEDD /* Frameworks */, + C10733C322C468A40095EEDD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + C10733C722C468A40095EEDD /* PBXTargetDependency */, + ); + name = "repo-browserTests"; + productName = "repo-browserTests"; + productReference = C10733C522C468A40095EEDD /* repo-browserTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C10733A922C468A30095EEDD /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1020; + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = "Rodrigo Pedroso Leite Pinto"; + TargetAttributes = { + C10733B022C468A30095EEDD = { + CreatedOnToolsVersion = 10.2.1; + }; + C10733C422C468A40095EEDD = { + CreatedOnToolsVersion = 10.2.1; + TestTargetID = C10733B022C468A30095EEDD; + }; + }; + }; + buildConfigurationList = C10733AC22C468A30095EEDD /* Build configuration list for PBXProject "repo-browser" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = C10733A822C468A30095EEDD; + productRefGroup = C10733B222C468A30095EEDD /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + C10733B022C468A30095EEDD /* repo-browser */, + C10733C422C468A40095EEDD /* repo-browserTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C10733AF22C468A30095EEDD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C10733BF22C468A40095EEDD /* LaunchScreen.storyboard in Resources */, + C10733BC22C468A40095EEDD /* Assets.xcassets in Resources */, + C10733BA22C468A30095EEDD /* Main.storyboard in Resources */, + C10733D822C468F90095EEDD /* RepoCell.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C10733C322C468A40095EEDD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C10733AD22C468A30095EEDD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C10733B722C468A30095EEDD /* ViewController.swift in Sources */, + C10733B522C468A30095EEDD /* AppDelegate.swift in Sources */, + C10733D722C468F90095EEDD /* RepoCell.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C10733C122C468A40095EEDD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C10733CA22C468A40095EEDD /* repo_browserTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + C10733C722C468A40095EEDD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C10733B022C468A30095EEDD /* repo-browser */; + targetProxy = C10733C622C468A40095EEDD /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + C10733B822C468A30095EEDD /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C10733B922C468A30095EEDD /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + C10733BD22C468A40095EEDD /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C10733BE22C468A40095EEDD /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C10733CC22C468A40095EEDD /* 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++14"; + 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_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; + CODE_SIGN_IDENTITY = "iPhone Developer"; + 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 = 12.2; + 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; + }; + C10733CD22C468A40095EEDD /* 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++14"; + 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_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; + CODE_SIGN_IDENTITY = "iPhone Developer"; + 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 = 12.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C10733CF22C468A40095EEDD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "repo-browser/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.RodrigoPedroso.repo-browser"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C10733D022C468A40095EEDD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "repo-browser/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.RodrigoPedroso.repo-browser"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C10733D222C468A40095EEDD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "repo-browserTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.RodrigoPedroso.repo-browserTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/repo-browser.app/repo-browser"; + }; + name = Debug; + }; + C10733D322C468A40095EEDD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "repo-browserTests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.RodrigoPedroso.repo-browserTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/repo-browser.app/repo-browser"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C10733AC22C468A30095EEDD /* Build configuration list for PBXProject "repo-browser" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C10733CC22C468A40095EEDD /* Debug */, + C10733CD22C468A40095EEDD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C10733CE22C468A40095EEDD /* Build configuration list for PBXNativeTarget "repo-browser" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C10733CF22C468A40095EEDD /* Debug */, + C10733D022C468A40095EEDD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C10733D122C468A40095EEDD /* Build configuration list for PBXNativeTarget "repo-browserTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C10733D222C468A40095EEDD /* Debug */, + C10733D322C468A40095EEDD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = C10733A922C468A30095EEDD /* Project object */; +} diff --git a/repo-browser.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/repo-browser.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..bbc1501 --- /dev/null +++ b/repo-browser.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/repo-browser.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/repo-browser.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/repo-browser.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/repo-browser/AppDelegate.swift b/repo-browser/AppDelegate.swift new file mode 100644 index 0000000..5abd435 --- /dev/null +++ b/repo-browser/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// repo-browser +// +// Created by Rodrigo Pedroso on 2019-06-26. +// Copyright © 2019 Rodrigo Pedroso Leite Pinto. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + +} + diff --git a/repo-browser/Assets.xcassets/AppIcon.appiconset/Contents.json b/repo-browser/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/repo-browser/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/repo-browser/Assets.xcassets/Contents.json b/repo-browser/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/repo-browser/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/repo-browser/Assets.xcassets/Octocat.imageset/Contents.json b/repo-browser/Assets.xcassets/Octocat.imageset/Contents.json new file mode 100644 index 0000000..3602974 --- /dev/null +++ b/repo-browser/Assets.xcassets/Octocat.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "images.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/repo-browser/Assets.xcassets/Octocat.imageset/images.png b/repo-browser/Assets.xcassets/Octocat.imageset/images.png new file mode 100644 index 0000000000000000000000000000000000000000..e121f9a5439e1658222b403ca9e4c3090e99daeb GIT binary patch literal 5743 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 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/repo-browser/Base.lproj/Main.storyboard b/repo-browser/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f96b505 --- /dev/null +++ b/repo-browser/Base.lproj/Main.storyboard @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/repo-browser/Cells/RepoCell.swift b/repo-browser/Cells/RepoCell.swift new file mode 100644 index 0000000..08d7cc0 --- /dev/null +++ b/repo-browser/Cells/RepoCell.swift @@ -0,0 +1,29 @@ +// +// RepoCell.swift +// repo-browser +// +// Created by Rodrigo Pedroso on 2019-06-26. +// Copyright © 2019 Rodrigo Pedroso Leite Pinto. All rights reserved. +// + +import UIKit + +class RepoCell: UITableViewCell { + + @IBOutlet var imgThumbnail: UIImageView! + @IBOutlet var lblTitle: UILabel! + @IBOutlet var lblDescription: UILabel! + @IBOutlet var lblRepoType: UILabel! + + 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/repo-browser/Cells/RepoCell.xib b/repo-browser/Cells/RepoCell.xib new file mode 100644 index 0000000..fb3172c --- /dev/null +++ b/repo-browser/Cells/RepoCell.xib @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/repo-browser/Info.plist b/repo-browser/Info.plist new file mode 100644 index 0000000..16be3b6 --- /dev/null +++ b/repo-browser/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/repo-browser/ViewController.swift b/repo-browser/ViewController.swift new file mode 100644 index 0000000..d1ca180 --- /dev/null +++ b/repo-browser/ViewController.swift @@ -0,0 +1,67 @@ +// +// ViewController.swift +// repo-browser +// +// Created by Rodrigo Pedroso on 2019-06-26. +// Copyright © 2019 Rodrigo Pedroso Leite Pinto. All rights reserved. +// + +import UIKit + +class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { + + @IBOutlet var txfRepoOwner: UITextField! + @IBOutlet var tblRepoTable: UITableView! + + let cellIdentifier = "RepoCell" + var dataSource: Array> = [] + var selectedIndex: Int! + + override func viewDidLoad() { + super.viewDidLoad() + + // Table view + tblRepoTable.delegate = self + tblRepoTable.dataSource = self + + let nibName = UINib(nibName: cellIdentifier, bundle: nil) + tblRepoTable.register(nibName, forCellReuseIdentifier: cellIdentifier) + + // dataSource = panneau?.panneaux as! Array> + } + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // let vc: MCIPanneauDetail = segue.destination as! MCIPanneauDetail + + } + + // MARK: - Table view + + func numberOfSections(in tableView: UITableView) -> Int { + return 1 + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return dataSource.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell: RepoCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! RepoCell + + // cell.imgThumbnail.image = dataSource[indexPath.row][] + // cell.lblTitle.text = dataSource[indexPath.row][] + cell.lblDescription.text = dataSource[indexPath.row]["Description_RPA"] + // cell.lblRepoType.text = dataSource[indexPath.row][] + + return cell + } + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return 70 + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + selectedIndex = indexPath.row + performSegue(withIdentifier: "sortedDetailSegue", sender: self) + } +} diff --git a/repo-browserTests/Info.plist b/repo-browserTests/Info.plist new file mode 100644 index 0000000..6c40a6c --- /dev/null +++ b/repo-browserTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/repo-browserTests/repo_browserTests.swift b/repo-browserTests/repo_browserTests.swift new file mode 100644 index 0000000..03134bc --- /dev/null +++ b/repo-browserTests/repo_browserTests.swift @@ -0,0 +1,34 @@ +// +// repo_browserTests.swift +// repo-browserTests +// +// Created by Rodrigo Pedroso on 2019-06-26. +// Copyright © 2019 Rodrigo Pedroso Leite Pinto. All rights reserved. +// + +import XCTest +@testable import repo_browser + +class repo_browserTests: XCTestCase { + + override func setUp() { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testPerformanceExample() { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +}