From 4f8205e1c7449f60644e231f5477eebe45fe5729 Mon Sep 17 00:00:00 2001 From: mtkahn Date: Sat, 3 Aug 2019 07:51:46 +0500 Subject: [PATCH 1/8] initial commit adding gitignore and Project Files --- .gitignore | 75 ++++++++++++++ mobile-coding-challenge/AppDelegate.swift | 46 +++++++++ .../AppIcon.appiconset/Contents.json | 98 +++++++++++++++++++ .../Assets.xcassets/Contents.json | 6 ++ .../Base.lproj/LaunchScreen.storyboard | 25 +++++ .../Base.lproj/Main.storyboard | 24 +++++ mobile-coding-challenge/Info.plist | 45 +++++++++ mobile-coding-challenge/ViewController.swift | 20 ++++ 8 files changed, 339 insertions(+) create mode 100644 .gitignore create mode 100644 mobile-coding-challenge/AppDelegate.swift create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile-coding-challenge/Assets.xcassets/Contents.json create mode 100644 mobile-coding-challenge/Base.lproj/LaunchScreen.storyboard create mode 100644 mobile-coding-challenge/Base.lproj/Main.storyboard create mode 100644 mobile-coding-challenge/Info.plist create mode 100644 mobile-coding-challenge/ViewController.swift diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..171d573 --- /dev/null +++ b/.gitignore @@ -0,0 +1,75 @@ +Compiled source + +################### +*.com +*.class +*.dll +*.exe +*.o +*.so + +Packages + +############ + +it's better to unpack these files and commit the raw source + +git has its own built in compression methods + +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +Logs and databases + +###################### +*.log +*.sql +*.sqlite + +OS generated files + +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db +xcschememanagement.plist + +### Xcode Patch ### +*.xcodeproj/* +!*.xcodeproj/project.pbxproj +!*.xcodeproj/xcshareddata/ +!*.xcworkspace/contents.xcworkspacedata +/*.gcno +*.xcuserstate +project.xcworkspace/ +xcuserdata/ + +## Build generated +build/ +DerivedData/ +UserInterfaceState.xcuserstate +/mobile-coding-challenge.xcodeproj/project.xcworkspace/xcuserdata/Talha.xcuserdatad/UserInterfaceState.xcuserstate + +# Carthage + +Carthage/Checkouts +Carthage/Build + +# Fastlane Generated Reports + +fastlane/test_output/report.html + +# Ruby Mine Workspace + +features/.idea/workspace.xml + diff --git a/mobile-coding-challenge/AppDelegate.swift b/mobile-coding-challenge/AppDelegate.swift new file mode 100644 index 0000000..26bc2f5 --- /dev/null +++ b/mobile-coding-challenge/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// mobile-coding-challenge +// +// Created by Talha on 03/08/2019. +// Copyright © 2019 Talha. 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/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/mobile-coding-challenge/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/mobile-coding-challenge/Assets.xcassets/Contents.json b/mobile-coding-challenge/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/mobile-coding-challenge/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/mobile-coding-challenge/Base.lproj/LaunchScreen.storyboard b/mobile-coding-challenge/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..bfa3612 --- /dev/null +++ b/mobile-coding-challenge/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile-coding-challenge/Base.lproj/Main.storyboard b/mobile-coding-challenge/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f1bcf38 --- /dev/null +++ b/mobile-coding-challenge/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile-coding-challenge/Info.plist b/mobile-coding-challenge/Info.plist new file mode 100644 index 0000000..16be3b6 --- /dev/null +++ b/mobile-coding-challenge/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/mobile-coding-challenge/ViewController.swift b/mobile-coding-challenge/ViewController.swift new file mode 100644 index 0000000..f756aff --- /dev/null +++ b/mobile-coding-challenge/ViewController.swift @@ -0,0 +1,20 @@ +// +// ViewController.swift +// mobile-coding-challenge +// +// Created by Talha on 03/08/2019. +// Copyright © 2019 Talha. All rights reserved. +// + +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view, typically from a nib. + } + + +} + From d001b5e94f9d0973c38e96ad8c904bee6caa85fb Mon Sep 17 00:00:00 2001 From: mtkahn Date: Sat, 3 Aug 2019 07:52:08 +0500 Subject: [PATCH 2/8] adding project --- .../project.pbxproj | 341 ++++++++++++++++++ 1 file changed, 341 insertions(+) create mode 100644 mobile-coding-challenge.xcodeproj/project.pbxproj diff --git a/mobile-coding-challenge.xcodeproj/project.pbxproj b/mobile-coding-challenge.xcodeproj/project.pbxproj new file mode 100644 index 0000000..39c2ebd --- /dev/null +++ b/mobile-coding-challenge.xcodeproj/project.pbxproj @@ -0,0 +1,341 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + BCA085B622F52D8700AD4CE2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA085B522F52D8700AD4CE2 /* AppDelegate.swift */; }; + BCA085B822F52D8700AD4CE2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA085B722F52D8700AD4CE2 /* ViewController.swift */; }; + BCA085BB22F52D8700AD4CE2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BCA085B922F52D8700AD4CE2 /* Main.storyboard */; }; + BCA085BD22F52D8800AD4CE2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BCA085BC22F52D8800AD4CE2 /* Assets.xcassets */; }; + BCA085C022F52D8800AD4CE2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BCA085BE22F52D8800AD4CE2 /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + BCA085B222F52D8700AD4CE2 /* mobile-coding-challenge.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "mobile-coding-challenge.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + BCA085B522F52D8700AD4CE2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + BCA085B722F52D8700AD4CE2 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + BCA085BA22F52D8700AD4CE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + BCA085BC22F52D8800AD4CE2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + BCA085BF22F52D8800AD4CE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + BCA085C122F52D8800AD4CE2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + BCA085AF22F52D8700AD4CE2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + BCA085A922F52D8700AD4CE2 = { + isa = PBXGroup; + children = ( + BCA085B422F52D8700AD4CE2 /* mobile-coding-challenge */, + BCA085B322F52D8700AD4CE2 /* Products */, + ); + sourceTree = ""; + }; + BCA085B322F52D8700AD4CE2 /* Products */ = { + isa = PBXGroup; + children = ( + BCA085B222F52D8700AD4CE2 /* mobile-coding-challenge.app */, + ); + name = Products; + sourceTree = ""; + }; + BCA085B422F52D8700AD4CE2 /* mobile-coding-challenge */ = { + isa = PBXGroup; + children = ( + BCA085B522F52D8700AD4CE2 /* AppDelegate.swift */, + BCA085B722F52D8700AD4CE2 /* ViewController.swift */, + BCA085B922F52D8700AD4CE2 /* Main.storyboard */, + BCA085BC22F52D8800AD4CE2 /* Assets.xcassets */, + BCA085BE22F52D8800AD4CE2 /* LaunchScreen.storyboard */, + BCA085C122F52D8800AD4CE2 /* Info.plist */, + ); + path = "mobile-coding-challenge"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + BCA085B122F52D8700AD4CE2 /* mobile-coding-challenge */ = { + isa = PBXNativeTarget; + buildConfigurationList = BCA085C422F52D8800AD4CE2 /* Build configuration list for PBXNativeTarget "mobile-coding-challenge" */; + buildPhases = ( + BCA085AE22F52D8700AD4CE2 /* Sources */, + BCA085AF22F52D8700AD4CE2 /* Frameworks */, + BCA085B022F52D8700AD4CE2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "mobile-coding-challenge"; + productName = "mobile-coding-challenge"; + productReference = BCA085B222F52D8700AD4CE2 /* mobile-coding-challenge.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BCA085AA22F52D8700AD4CE2 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1010; + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = Talha; + TargetAttributes = { + BCA085B122F52D8700AD4CE2 = { + CreatedOnToolsVersion = 10.1; + }; + }; + }; + buildConfigurationList = BCA085AD22F52D8700AD4CE2 /* Build configuration list for PBXProject "mobile-coding-challenge" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = BCA085A922F52D8700AD4CE2; + productRefGroup = BCA085B322F52D8700AD4CE2 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BCA085B122F52D8700AD4CE2 /* mobile-coding-challenge */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + BCA085B022F52D8700AD4CE2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BCA085C022F52D8800AD4CE2 /* LaunchScreen.storyboard in Resources */, + BCA085BD22F52D8800AD4CE2 /* Assets.xcassets in Resources */, + BCA085BB22F52D8700AD4CE2 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + BCA085AE22F52D8700AD4CE2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BCA085B822F52D8700AD4CE2 /* ViewController.swift in Sources */, + BCA085B622F52D8700AD4CE2 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + BCA085B922F52D8700AD4CE2 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + BCA085BA22F52D8700AD4CE2 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + BCA085BE22F52D8800AD4CE2 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + BCA085BF22F52D8800AD4CE2 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + BCA085C222F52D8800AD4CE2 /* 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.1; + 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; + }; + BCA085C322F52D8800AD4CE2 /* 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.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + BCA085C522F52D8800AD4CE2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5BBUDM5XDN; + INFOPLIST_FILE = "mobile-coding-challenge/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "talha.mobile-coding-challenge"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + BCA085C622F52D8800AD4CE2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5BBUDM5XDN; + INFOPLIST_FILE = "mobile-coding-challenge/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "talha.mobile-coding-challenge"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + BCA085AD22F52D8700AD4CE2 /* Build configuration list for PBXProject "mobile-coding-challenge" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BCA085C222F52D8800AD4CE2 /* Debug */, + BCA085C322F52D8800AD4CE2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BCA085C422F52D8800AD4CE2 /* Build configuration list for PBXNativeTarget "mobile-coding-challenge" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BCA085C522F52D8800AD4CE2 /* Debug */, + BCA085C622F52D8800AD4CE2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BCA085AA22F52D8700AD4CE2 /* Project object */; +} From 78c339dc13b294fd400befe083952cb89ea96aac Mon Sep 17 00:00:00 2001 From: mtkahn Date: Mon, 5 Aug 2019 20:05:02 +0500 Subject: [PATCH 3/8] Using Carthage to integrate Thirdparty Libraries, Adding Alamofire, AlamofireImage for Network related stuff and Freddy for JSON Parsing --- Cartfile | 6 ++++++ Cartfile.resolved | 3 +++ 2 files changed, 9 insertions(+) create mode 100644 Cartfile create mode 100644 Cartfile.resolved diff --git a/Cartfile b/Cartfile new file mode 100644 index 0000000..748de6f --- /dev/null +++ b/Cartfile @@ -0,0 +1,6 @@ +#networking +github "Alamofire/Alamofire" +github "Alamofire/AlamofireImage" ~> 3.5 + +#json mapping +github "bignerdranch/Freddy" ~> 3.0 \ No newline at end of file diff --git a/Cartfile.resolved b/Cartfile.resolved new file mode 100644 index 0000000..21ca4f4 --- /dev/null +++ b/Cartfile.resolved @@ -0,0 +1,3 @@ +github "Alamofire/Alamofire" "4.8.2" +github "Alamofire/AlamofireImage" "3.5.2" +github "bignerdranch/Freddy" "3.0.3" From edf71b3c114207ef29bfeef03810c8fe019b6599 Mon Sep 17 00:00:00 2001 From: mtkahn Date: Mon, 5 Aug 2019 20:05:30 +0500 Subject: [PATCH 4/8] Adding Assets to Project --- .../AppIcon.appiconset/1024.png | Bin 0 -> 146512 bytes .../AppIcon.appiconset/120-1.png | Bin 0 -> 4030 bytes .../AppIcon.appiconset/120.png | Bin 0 -> 4030 bytes .../AppIcon.appiconset/180.png | Bin 0 -> 8211 bytes .../Assets.xcassets/AppIcon.appiconset/40.png | Bin 0 -> 631 bytes .../Assets.xcassets/AppIcon.appiconset/58.png | Bin 0 -> 1138 bytes .../Assets.xcassets/AppIcon.appiconset/60.png | Bin 0 -> 1194 bytes .../Assets.xcassets/AppIcon.appiconset/80.png | Bin 0 -> 2029 bytes .../Assets.xcassets/AppIcon.appiconset/87.png | Bin 0 -> 2389 bytes .../AppIcon.appiconset/Contents.json | 72 +++++------------- .../star.imageset/Contents.json | 23 ++++++ .../Assets.xcassets/star.imageset/star.png | Bin 0 -> 628 bytes .../Assets.xcassets/star.imageset/star@2x.png | Bin 0 -> 3239 bytes .../Assets.xcassets/star.imageset/star@3x.png | Bin 0 -> 2452 bytes .../uilogo.imageset/Contents.json | 23 ++++++ .../uilogo.imageset/uilogo.png | Bin 0 -> 1463 bytes .../uilogo.imageset/uilogo@2x.png | Bin 0 -> 4758 bytes .../uilogo.imageset/uilogo@3x.png | Bin 0 -> 9455 bytes 18 files changed, 64 insertions(+), 54 deletions(-) create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/1024.png create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/120-1.png create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/120.png create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/180.png create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/40.png create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/58.png create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/60.png create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/80.png create mode 100644 mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/87.png create mode 100644 mobile-coding-challenge/Assets.xcassets/star.imageset/Contents.json create mode 100644 mobile-coding-challenge/Assets.xcassets/star.imageset/star.png create mode 100644 mobile-coding-challenge/Assets.xcassets/star.imageset/star@2x.png create mode 100644 mobile-coding-challenge/Assets.xcassets/star.imageset/star@3x.png create mode 100644 mobile-coding-challenge/Assets.xcassets/uilogo.imageset/Contents.json create mode 100644 mobile-coding-challenge/Assets.xcassets/uilogo.imageset/uilogo.png create mode 100644 mobile-coding-challenge/Assets.xcassets/uilogo.imageset/uilogo@2x.png create mode 100644 mobile-coding-challenge/Assets.xcassets/uilogo.imageset/uilogo@3x.png diff --git a/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/1024.png b/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000000000000000000000000000000000000..194b3272a805804eb9113b78f111ca9e819a64df GIT binary patch literal 146512 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 S;_~!F`i!z;OI2{}m;VIc+#s$1 literal 0 HcmV?d00001 diff --git a/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/120-1.png b/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/120-1.png new file mode 100644 index 0000000000000000000000000000000000000000..fc6926d9d04dc7c1ce88515b3c6313096224396b GIT binary patch literal 4030 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 literal 0 HcmV?d00001 diff --git a/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/40.png b/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a0f24af5bddf2c5c8b09aaccef7e1ad425d764 GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z{e)bdt36Rx@4-fiLpisE_?m%+`C1hrKb+Xq|bl; zv(|deCHsR{1$k!bpLzPQ@wxH&&pek8*TMpcdr%|o41CUt)Tu~iRMzL zsT(e+e3G)6eS1Mg*{n(7&f-GH*yW6^=L%G%9_vnBQ}|oAB0@pI+T~!d(|#|Bkd8m$ zySMFSwc7nnb7RJT+l8wZhdS+IZLT$Lx#zwmKCR@1-ojbwDjLFKr?za{^{KR&U045^ z*~L1^wOSdW3;&;y-B+LeaDznhk6$;1=Epl$^B!ZH)x*1{DWa`9U9+;(Yn4;XoW#%E zJzv%peLN&|OpZH1pipA7uV#eWo9soQQ$0d8f0{0OU>f*=?d{sdd)02OHomq0OuJRb zlKl;Fy%irAJ-Uj;1h>DpwPO-EpvYt~L*kwTyD8A&B5O+fVpUsKIo^p+-xKll)l=0q zZ)N@mJXDGBdVfqWMj;)6yGmTkZuWCP}-!ToBx7BJwIwLIMQZ6qM4- zebe#^CW3&pcjlb$`?;9gf=OKfwlu^1l9SoYPj0P=gJ5F$U>Tkw2&Jmdo zwldEf<`Cl6LR39y#-8^kNWvzOxyEqVV(W$uW5d57nWFe7M0I&BJX9hxNgURROouq= zV9gb7bsbqBqOeI6TqiP364T_}HxF{)`#Nzj!*JLn3L8Y>1?1T(_bEk1QBC>trm~}2 z$C~DHR&DhnpYA!2bBdQfqJq~9uby;4i8md~&kMR((`MUHkI_wMP$&2d5_6R#=#m62 z64RnKHctP6vSZ^U+p4#SHuU&l_fcd`N>@`<1fO}{+Hw*bvcY^6tB`Hj)dhdFih z1~=y)&}-f0n=dbu44uV>4dTiiHs}(YI`Qjs?EkJomSzLdS&~XG7Y!TKb{xlh&%$4h zAHJRD-09n7&f|Qx2BPGmDt-RAo{>}=B*7hQIEyuHqM%D+=CIYPL}8uS%nml;IyUHG zgAO+65Qj5F)$zPSq>oDnqCuA=Xp@*WwXq}ll$XW)nX1cc^+h!=UGE)U97le>Mik5v zn-R3}J4ySl{-{V{^u$0k!Bbtl^U1~cI<?w9_pWyR-<0vvX_XTJ4 z-z)_rfaA&FWVy#!ahNEJgY4yHs;YysUimBQSy(3@^{dZ16n*}FT#0og`qKS)uMVYX z(I`cWMk!h}O3|WGiWZGhv}lx~MWYlg8l`B_C`F6LKg+66I@+0D{{R3007*qoM6N<$ Ef`B*T^&Cl}5-xp3CW zg|kjBoON>Htdk38om}|&B3u527fg8T$%UUEj?I$Zy3&3uVG#$?$Ml73E5hoEu(Bvz zUlG>s2qF#SQB&Os&H#XxN%LmzAW6nAvotS zwvQO0za~f`i0chU7%U=vzB$sM>enfIEvl+b)o<|T{&56{h#9PVI7`;_IR15)iq{}2 zbcupC+HVn!9wv!}eWSA+*xsV5I*je;GPZM?WZiP~vlb-A`GT5vEZCRB>7iilNjC^`yQsRkD@J<#ebq2D6(u234Oapcp^u!J2VG3&Plt)>Y52BEja?!qi3RpawdX0XNq zhD~30?^#~3RD!uQcr{Ptb&32-{8o=KiLl4NNaQULst%E=Qy!hf#Gw5dNawR$ z8(BaP{ev^#E%4rtwV)lJ)^(56zHL?r#DNDrjX=1drp@IV^?M?w+{2lt&q7YCAl zi%>15vi`<2ZV>uS%6=RD>LR-M1GiQathG3o9yqLll0QwT7SfGVbt=V45FYVgAF6PQ za}Fo#B#GtdmrLm4IkajLc^x9JiB=tSAstZKuTfD`eDMA`lGtJfgR78)^!#=hmi&Qt8&F+pYfIB%54`RT-MTo0U0 zd-B0P6vToK#yPO_4AtV#guzL6tFHz<{B&h}KTj__I7(WvII&olmZ^v#ZNPM$l^!A{ zUGE&igThXF>E>Cv_fC@t?h%KWCuIvS5C07E|AKyYefnR#K)0p)c|mSVThB|I;jJSV z&N{hp*2#slPA;5va^b9#3um2NIP2uXStl3HI=OJxdFh1z2JnvVK99H(RsaA107*qo IM6N<$f~Sr`hX4Qo literal 0 HcmV?d00001 diff --git a/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/80.png b/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd952db15bcad9953a59108ffdc2390afef6c86 GIT binary patch literal 2029 zcmb_d`!^Gc11Dc(#6(`DY}hD5HMvO1l-ax|k342d9?7~aM1--;$}_~sTlNrQy3vER zaYc>FB;;{DmO@yvqd!=?Y zLvguIOia2N0k=lS6wepVM;zj+x37!npDiLG6?MhKqZY*T8*Hd^wVmxA*7>kz1c~5UiQ*TpS%7426^n_BZbi?m|9W$y*yAWGG6V-Z8?tbV`CINV^ik{=iO-8MNg4kMenciMH%m8+Nq*&h%>E{6{xnn4YU^hz2%wzZ)w0u| z3OB$Sit)c(+~}$Ig5Nr_Ax~kkU)DEsS#fu!x2QWs#%EX;n5txaikU!(VLH&SGEm0t zeqE0XzjKbs+b^lfE_1SMwPx}n=VBJ)PD#in<#hC%Edk5tlhL_)0wqabcK@*l7cE|F zJ(l+Zs|B8OUEnz=2#MUPwCL>-U48*cc%uA?65Z6LPgmaj#rCo;3IK%+t`yQX;2i@# z4c;{sVJN5LOT@8~$8-;wUq`Qwg3y{3W!*dlr+ut#IbG>=80yt%B|QvIN2oE~_?n$5 zx^L-@)6ey9jM^DP6yg*qEUh@isPY}JC&Ck*7iVb#NckL)?q~8w1HJ)P4SEvD#Z9hx zgBmWX3CZXbI~W-Wb9B7Z85i-3jHD2%&57s&XVxFepJKKIdsao-&cJRU6(>r=38arG zW}YIui(c_{j{8pjy(ZK08pu4rbTEOuNyq4b-bp<~txc{xP}w05L%CmYl!!b{x?ma;5TE4u zPgt5K!IwgMC#lgb1W%((v*@ z3BTASIo?iiegXY)Vd-=GAcM}TH_Nl;5=vSBGs(AJ-beM2hR+4Ev+-}G`6PF3g_mUx zOb^nh6E{P$1w&pL4<4^`ClG#eP}(8O5{m2w8eJM3HE)%~K;tPkmDh&Wy@3eD#^T~H zWfgO1_ssNAl|3Fb!Bxjs{ymAF-3^^Nx+=NTO=HSoJpmK1?tyGLnBLSb0R7;u|l z3(mw-oS*H*Q=Ow_kiKtQZM^U+$>rX$U(t;9CclYi_5M0N?P}IQV4EuYz`!UqX(^a! zA42{{+k>mi`w&mclY&i-je0m`*6{8!_AW^@yY&mc(3|{RAVg%D|YKsW1EqVbg@a(U!_nL1Z{5{#<>tLPBDJ&xjlepteR`hnhu)|B zgFhJss-$13FG#g2E`3#W?^sgiDy4W(iw~pUPO3C2nPE`%y@HHa7k=ogOinr0Kt=G4 zQV!km(A0oAU;~Y(=5~dq;+meV#JbA)j*m(L{jmQ2X&MHCo|$l literal 0 HcmV?d00001 diff --git a/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/87.png b/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 0000000000000000000000000000000000000000..47213121273f064dd37b6bc7466d32964a12fb4b GIT binary patch literal 2389 zcmb`J`#%$k8^;|v&PI+QYbV#-b4@IA$=Q&WHgdmj=AI$TWk!~eYm{th6q#FNVJJc( zR)oWH`MS#`x2#-pA79^p;QQ10;rTqT&+GO1;dy>}o_C5h%0fusi~tW0j}YRjnay!` z{9gh1k2Unu2#$vbD2XtG*%9(qpYDf94vOF1ou$)72@AcWs3--)+rukG=EWMK2^hug&_{@FiippqCG=T~W3!9R8(``&HEwBj+9h84 z5kF70-0?NhI>cw6CP8}z4Os-wj}WcP#w@gljFJnpJO6E0?*fbPYxhLcdN(X~`@4Rn zkxp-~-^ZPe!2M*3x*SD8bZhnIPgZ&S!OAl)b+=O$s~9BHL0qr;&wy4rHthV#A5V)( zU-ZX_xtmc?RgcH1)S?!r;_;fKv<1VFT_A?JU2cxf)YcwqH)_7aGZCJUI;F5l<%^YC z9WD#A>fdNK@f7t8`>8ud%>05jf|(C~`8wRUEnVCadAffv!5cwXUNgq6-7mu#z+c|F ztFfFP!zG{1n5`?XkNbrXY)^Jl5+*&^61Kj9F0?i&Ia7f+s&{g?KpIL1-;?rf9PD{XsaaF9)^mWMdI_Y}=EXI&OFa%y-{;ci^axce=M|wHzNFJSwn14=RoLGiYv_KiDSnBK3L9;k z&6M;WD{)Y&LrnJ+G=pE5AQv;))cVw9pRl=;illqib%17PUVCM`FaCoC2i%FUQJ|r; zNwOx&S`}rpo|}DeCRgw=&Ot^ja_Hua?~uhS@dSW2kQB44KbET8=OM+QIupxY4C=n! z=NXgUc{t*dt1p^v20>iS;*;l>w^Vo?uT4?7Hyr6O;s#Mv8DQtXy$K@x3gff^!`5sI zKZDhzSV;^0%aA*C#7LmE1GJWIvqjzf^(XsX-Yx$*$uXh@P(T^*))&zDZKpNf)`+{& ztPmOEaz5ZtmvXxlyO(;xADXgN^P!f&DWky41~Ig!s6rVFRE9&eHFilP`PE3S@Qxt zb<1~gqjYgfH-&SUp7iGXe1r1#dTXQ5<){{xD+w~+&yca^{N){JMSh2sT79OlNOgZC zL9iV^dKLgDnVjzRa0NNe5qs?Mr7GnH$0HaB0$FFWRK9j~B-rXa(T^mis4yXc)mxhC z9enY9o!}CP7saVwAv<~-1orJutO>aJQ~Ap>3@KK|@A9mu;tbz1B#xBRXJWP}(;Iy4 zgu8y?7RsX$=3G~hCbk(aGvD0ukI#_~T){JD2M2C&cKO7%aE6xQMlAwrk8PMoI+ImHa{61PpQ=h>iW`JJ54U>*bckC4Rlb8=* z(nuD6k139af&+zaoLcLTR*ssUyp#QQIf0HqN2hnh1PNSmKv`FywoYqG%7 zDPgOeX+<|&=agOlP5?$nS>aahE8el51K(HfOFXAa&(Mrzp{L5KYyE3V z9$>obB+l`A$@>A){y68?sJ99Q*o!l$cElso0aX1v=Q(LVJfqGjrCRinlVx-(bDtI^ zJ$b>b;4;lE?~~beb}2i*QnOa2oZsj8zR8^3TFf@QUR$NE*VFKZ_LQTGcO1PZ*RE73rp3JFoD=vu>M(_i(`<@& zXneVOQnbuHyD77O;^>=2vG8AnBLT;j3pxImTxi$3Gzw9enT-t`XD_E`Tc}_V;37n8 z<{H^SrVsZgJrIHc!t8P4^Kcf!EjJZ9R3xHq36b#Z5VZhH2qIkT@v!>y!mFQUQ)F3K z#kSGf_B7f&*%%fq5_+#SCwZeZF>Rx*qvqCH#jUUEdB*Z?27cN~sH4fQpcUHGYh{rU z_Ty%BEFKe=AdxRuG;bfqtqyTdV6JY5BV`*^gT^P_8oS+p<}BpC`+1}`v-No&J^nl1 yJ#@i*0WZZoe(O;$%11ExADaIXG5ml2IO0u;2#ps9PDCB!5)Z;0W%de=x%XdM-k%`= literal 0 HcmV?d00001 diff --git a/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/Contents.json index d8db8d6..b0a1a07 100644 --- a/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/mobile-coding-challenge/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,93 +1,57 @@ { "images" : [ { - "idiom" : "iphone", "size" : "20x20", + "idiom" : "iphone", + "filename" : "40.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "20x20", + "idiom" : "iphone", + "filename" : "60.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "58.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "87.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "80.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "120.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "60x60", + "idiom" : "iphone", + "filename" : "120-1.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "60x60", + "idiom" : "iphone", + "filename" : "180.png", "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", + "idiom" : "ios-marketing", + "filename" : "1024.png", "scale" : "1x" } ], diff --git a/mobile-coding-challenge/Assets.xcassets/star.imageset/Contents.json b/mobile-coding-challenge/Assets.xcassets/star.imageset/Contents.json new file mode 100644 index 0000000..14cf9e0 --- /dev/null +++ b/mobile-coding-challenge/Assets.xcassets/star.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "star.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "star@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "star@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/mobile-coding-challenge/Assets.xcassets/star.imageset/star.png b/mobile-coding-challenge/Assets.xcassets/star.imageset/star.png new file mode 100644 index 0000000000000000000000000000000000000000..106ddf8b4af19e8326d101106d41303238d91500 GIT binary patch literal 628 zcmV-)0*n2LP)002t}1^@s6I8J)%0006zNklu=&=Q6Y%W<_t5fRb(e12dMj?G#w zm)}lN4GcOcc$pYUDlGGp79D=Fbvm6Mb42}d>r<9BO)czm2k4y|d@UA>pFu@6xTPtZ z1nI)e@Jhmqw;wG+M|tcjptqj{Jg9w2Pec_t1$1U%@fwTgQ6%)(yK0Hf zL`02HT>d}C^BVvhR$&~}rwm8!q{?E%eblb}p*aoLuM-})PQRikar^?@zQq+6Le5G6 O0000 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%0AOHt%`OZrZfzN8Ai` z3+BD;W#b6O*k_EfXU(34z9*4LJZ6?7Uv|!@2M+*QmOsMs0eba@8*aFNaBxuLXril_ z?|vrB@_8)pT-8#kZ(ISLw^7{)vBy? z&#S+`{}mr5In9kg#@IoJSPJuLHO&2*RhaSnOxK?dc)L`uh4_hnf8FHpX!nV;=yx zFki)mw>`Z?G#X8tFSDm@eBS0hipAoAfq?-o4;y^OLHH~?95dVR681ycH9-&rK@dcb Z@ISu?L_SO(J3;^e002ovPDHLkV1kp}ILQD2 literal 0 HcmV?d00001 diff --git a/mobile-coding-challenge/Assets.xcassets/star.imageset/star@3x.png b/mobile-coding-challenge/Assets.xcassets/star.imageset/star@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..70e374bbd79791f780a95e707c02a9098cd7c540 GIT binary patch literal 2452 zcmV;F32XL=P)g8|{C-7%L!czk$x_}lU00r9O?tM9rH zKrti*in!Pdrn2Yf=TCkg4+!k#<>fcs4&m|LyLW%OeMlg(&1UmeHv%Yzq`-3Cym|9K zjSL|V`vS|jITRH`QeYWpHf%E_1qz!Iz@sEP91b6RJ}MB?)DRxm>-9IEj|v2nW<@85 zPz*_dY~}=zSyCXQxgk8JWeosxrL$vZhfoYjfxF!kz@ykp3f%495Yih0bEPE)LI^m@ z5x}D)OUoPp#!9fkKuD;8E-) z1x8ycgh!StfE#Wd?t5=>UkKcg?gtkMptvstMp>*EOvO?KaLL%ieeW%Xq`(E~n8HN^ zD2AlKRg3q6Vn_;{x4?#NdP87}^z2}%01`srjFP?JQM}a`_{m`?N^b}Zjd=SmAp{oY z(F-0W8E5Lcez?}_Y>ZO73 zsvC-)iVfWeufnAXhNS4r!^6Yh@(S_mK^ zL}<-~kcE4M)4;4Ky&=MDDS$^YONxM63n6cBLLBL&>*hizhNK9j#Q+{9Sz1;Bn%8Ow z=?&4o^bUGL2smmvfJgDfJpyPwg!G1JS9)TC5CV=O1n?-y_WS+E+&>ObLX;5lcvFiG zhr@?C_44xa+w=4Dr+aI++kM$?x34+t@$vEZ&1Um;OzG!~R@?)WscgMoe;fP#bN}|+ z?e_KQ>FINhwz1#uKh9~JSp#y;U{^=Z@@_a3m8)!lIxo;<0!7tUrm;&t>0C^!;6qbX zlrl}7Wqy8s{v?K#6qTdw-X~H_1d*cVR<=_LOazglrj#l7`s&~%CRV{0q^O$9(gf!+ z0z4H!QA?Gn)cZUJ=VzMJm!+uM%I$0pQ_Wt21 z%G6;1CH-r7YVyAjRG(Gt&X=N?w4t1;?wv2Cakvy!uuS50;AgR>NEIlCpCg$FB9*_| z+_{8idBxX;Y%EY}NhBlkc zR}n-42w&{7A%Lg{L0l++Ou%3YLYTQYdR$%45@d6jaoMTYM@IDMF}DNnfx1SANT*j-9JJ zH$aLIcFpA904d2Bl6Ht=EUGKJe#HMQHLZteK8O>(D_W3V zLegTRG|fC7Fx^|V_?-!1P%Sn_)18fRusf)=?{De+9|Y1;BQ#02+wH#O`tqqKZRs~S z@(Q&;8e5<@Ei@EsZPF$!yC8zp3%EC`5mo91nymzJk$*<;QG0_k6}|^*WO&Nqz!5ZX zxUb3SKYk0tQw|3Xpz_0gYk6v*<{-NKgF;4?K09ctYzn^OHAQyM1W;SUs`kBnwGL0y zc|d4UWgE6ljr>=ya3i=a`;D=rS{hO<_kN=dPA9M7H*Dgc7tZr;K&JMm*{cX53-=AG zU?_TOyb;t8#3;XIR|sH6X>!Cfj8~tdM4dbui>bl;zlmIfSm6612dCM+Zq7y-Jeyhk zH!ku0kVnbJVUjG}gLcJXfj{fxU07DBhH>f*y5+DDyzAe)34;j)0$51loi_aD4OqG% zm^vMPj!+_qyuGObOEv;}zZ+Jo)pwQoM~F%-`Jb2oj#OZH%5|vN5*OVhS=vj92^Kt> zpIOq1<-XwEtoXQ`qhg9lLW>ixLcFY4|fa$i`HbU(=Ovpx3)k?U5GxfhZEI=gdC zkM++7LnqX9MW^iBQB~Blxfl*k-f&>iWSt^sfuR#_KNqCy2furz3+QiAlV% zr)R(1mJq^%ObkDf4ELY18>)cQ^Jx6oID>!8g)scYHG~iV000000002sw*Lc+!R1J^ SYMzn+0000XA(V literal 0 HcmV?d00001 diff --git a/mobile-coding-challenge/Assets.xcassets/uilogo.imageset/Contents.json b/mobile-coding-challenge/Assets.xcassets/uilogo.imageset/Contents.json new file mode 100644 index 0000000..64b297f --- /dev/null +++ b/mobile-coding-challenge/Assets.xcassets/uilogo.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "uilogo.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "uilogo@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "uilogo@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/mobile-coding-challenge/Assets.xcassets/uilogo.imageset/uilogo.png b/mobile-coding-challenge/Assets.xcassets/uilogo.imageset/uilogo.png new file mode 100644 index 0000000000000000000000000000000000000000..66ae6947c2e21d69b3635cdf856042ddfdb4e665 GIT binary patch literal 1463 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 literal 0 HcmV?d00001 diff --git a/mobile-coding-challenge/Assets.xcassets/uilogo.imageset/uilogo@3x.png b/mobile-coding-challenge/Assets.xcassets/uilogo.imageset/uilogo@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f5b6fe951ff86976ab6df222b2408d8235f42f7 GIT binary patch literal 9455 zcmeHtOy6ai@zPW$E^WvPd*Euh~d+)P$eD?lC>FcWBqj*3;KtOO$G`~zjz9Tg}0MHG7C`YXr27yp=(0KS`O53Quu0)LQSIlC5%390En|R#NP)8`Yy1Nr))%!I^LjzF$Drh-B&sY5%(QB6PB2!%TiAf%rfkd1eRT51 z4+%6>NJvw!c$OEOK3k|-njDpb^ZWF6^ZeA}B4~CpTRa{7

n_@`kjk=Y>jHpA7sZO7-c8DHtEE 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 IdKvt`0CFW0CjbBd literal 0 HcmV?d00001 From c24b7855ab6029a7bff019cb554b9006bbc029b1 Mon Sep 17 00:00:00 2001 From: mtkahn Date: Mon, 5 Aug 2019 20:06:55 +0500 Subject: [PATCH 5/8] Created Entity with the required fields, Adding WebService Modal to call service and parse data into object, --- mobile-coding-challenge/Models/Entity.swift | 38 +++++++++++++++ .../Models/WebService.swift | 48 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 mobile-coding-challenge/Models/Entity.swift create mode 100644 mobile-coding-challenge/Models/WebService.swift diff --git a/mobile-coding-challenge/Models/Entity.swift b/mobile-coding-challenge/Models/Entity.swift new file mode 100644 index 0000000..6a35d1f --- /dev/null +++ b/mobile-coding-challenge/Models/Entity.swift @@ -0,0 +1,38 @@ +// +// Entity.swift +// mobile-coding-challenge +// +// Created by Talha on 05/08/2019. +// Copyright © 2019 Talha. All rights reserved. +// + +import Foundation +import Freddy + +struct GitHubRepo { + + var repoId: Int + var repoName: String + var repoDescription: String + var repoOwner: String + var repoAvatar: String + var repoStars: Int + +} + +extension GitHubRepo: JSONDecodable { + + init(json: JSON) throws { + repoId = try json.getInt(at: "id") + repoName = try json.getString(at: "name") + if json["description"] != nil && json["description"] != JSON.null { + repoDescription = try json.getString(at: "description") + } else { + repoDescription = "" + } + repoOwner = try json.getString(at: "owner", "login") + repoAvatar = try json.getString(at: "owner", "avatar_url") + repoStars = try json.getInt(at: "stargazers_count") + } + +} diff --git a/mobile-coding-challenge/Models/WebService.swift b/mobile-coding-challenge/Models/WebService.swift new file mode 100644 index 0000000..69d1ad6 --- /dev/null +++ b/mobile-coding-challenge/Models/WebService.swift @@ -0,0 +1,48 @@ +// +// WebService.swift +// mobile-coding-challenge +// +// Created by Talha on 05/08/2019. +// Copyright © 2019 Talha. All rights reserved. +// + +import Foundation +import Alamofire +import Freddy + +class WebService { + + //MARK: - callService + class func callService(queryString: String, success: @escaping ([GitHubRepo]) -> Void, failure: @escaping (String) -> Void) { + + let gitHubURL = "https://api.github.com/search/repositories?" + queryString + + Alamofire.request(gitHubURL).responseJSON { (response) in + if response.result.isSuccess { + do { + let trueJson = try JSON(data: response.data!) + do { + let totalCount = try trueJson.getInt(at: "total_count") + if totalCount == 0 { + failure("No Records Available") + return + } + } catch { + failure("No Records Available") + return + } + let responseArray = try trueJson.getArray(at: "items") + let gitRepoResponseArray = try responseArray.map { (json) in + return try GitHubRepo(json: json) + } + success(gitRepoResponseArray) + } catch let error { + failure(error.localizedDescription) + } + } else { + failure(response.result.error!.localizedDescription) + } + } + } + +} From b6e972b713e9d43642afb85130ca0bbcb5f9b403 Mon Sep 17 00:00:00 2001 From: mtkahn Date: Mon, 5 Aug 2019 20:08:02 +0500 Subject: [PATCH 6/8] Created Design using Storyboard to match the mockup --- .../project.pbxproj | 78 ++++++++- .../Base.lproj/LaunchScreen.storyboard | 34 +++- .../Base.lproj/Main.storyboard | 150 ++++++++++++++++-- 3 files changed, 244 insertions(+), 18 deletions(-) diff --git a/mobile-coding-challenge.xcodeproj/project.pbxproj b/mobile-coding-challenge.xcodeproj/project.pbxproj index 39c2ebd..16c3c7d 100644 --- a/mobile-coding-challenge.xcodeproj/project.pbxproj +++ b/mobile-coding-challenge.xcodeproj/project.pbxproj @@ -8,20 +8,31 @@ /* Begin PBXBuildFile section */ BCA085B622F52D8700AD4CE2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA085B522F52D8700AD4CE2 /* AppDelegate.swift */; }; - BCA085B822F52D8700AD4CE2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA085B722F52D8700AD4CE2 /* ViewController.swift */; }; + BCA085B822F52D8700AD4CE2 /* TrendingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA085B722F52D8700AD4CE2 /* TrendingViewController.swift */; }; BCA085BB22F52D8700AD4CE2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BCA085B922F52D8700AD4CE2 /* Main.storyboard */; }; BCA085BD22F52D8800AD4CE2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BCA085BC22F52D8800AD4CE2 /* Assets.xcassets */; }; BCA085C022F52D8800AD4CE2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BCA085BE22F52D8800AD4CE2 /* LaunchScreen.storyboard */; }; + BCA085CF22F7A8B200AD4CE2 /* Freddy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCA085CD22F7A8B200AD4CE2 /* Freddy.framework */; }; + BCA085D022F7A8B200AD4CE2 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCA085CE22F7A8B200AD4CE2 /* Alamofire.framework */; }; + BCA085D522F7A95900AD4CE2 /* Entity.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA085D422F7A95900AD4CE2 /* Entity.swift */; }; + BCA085D722F7ACAD00AD4CE2 /* WebService.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA085D622F7ACAD00AD4CE2 /* WebService.swift */; }; + BCA085E722F7DC8F00AD4CE2 /* AlamofireImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCA085E622F7DC8F00AD4CE2 /* AlamofireImage.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ BCA085B222F52D8700AD4CE2 /* mobile-coding-challenge.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "mobile-coding-challenge.app"; sourceTree = BUILT_PRODUCTS_DIR; }; BCA085B522F52D8700AD4CE2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - BCA085B722F52D8700AD4CE2 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + BCA085B722F52D8700AD4CE2 /* TrendingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrendingViewController.swift; sourceTree = ""; }; BCA085BA22F52D8700AD4CE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; BCA085BC22F52D8800AD4CE2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; BCA085BF22F52D8800AD4CE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; BCA085C122F52D8800AD4CE2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BCA085CD22F7A8B200AD4CE2 /* Freddy.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Freddy.framework; path = Carthage/Build/iOS/Freddy.framework; sourceTree = ""; }; + BCA085CE22F7A8B200AD4CE2 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = ""; }; + BCA085D422F7A95900AD4CE2 /* Entity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Entity.swift; sourceTree = ""; }; + BCA085D622F7ACAD00AD4CE2 /* WebService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebService.swift; sourceTree = ""; }; + BCA085E622F7DC8F00AD4CE2 /* AlamofireImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AlamofireImage.framework; path = Carthage/Build/iOS/AlamofireImage.framework; sourceTree = ""; }; + BCA085E822F8760000AD4CE2 /* Reachability.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Reachability.framework; path = Carthage/Build/iOS/Reachability.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -29,6 +40,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + BCA085E722F7DC8F00AD4CE2 /* AlamofireImage.framework in Frameworks */, + BCA085CF22F7A8B200AD4CE2 /* Freddy.framework in Frameworks */, + BCA085D022F7A8B200AD4CE2 /* Alamofire.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -40,6 +54,7 @@ children = ( BCA085B422F52D8700AD4CE2 /* mobile-coding-challenge */, BCA085B322F52D8700AD4CE2 /* Products */, + BCA085CC22F7A8B200AD4CE2 /* Frameworks */, ); sourceTree = ""; }; @@ -54,8 +69,9 @@ BCA085B422F52D8700AD4CE2 /* mobile-coding-challenge */ = { isa = PBXGroup; children = ( + BCA085D122F7A8EB00AD4CE2 /* Models */, BCA085B522F52D8700AD4CE2 /* AppDelegate.swift */, - BCA085B722F52D8700AD4CE2 /* ViewController.swift */, + BCA085B722F52D8700AD4CE2 /* TrendingViewController.swift */, BCA085B922F52D8700AD4CE2 /* Main.storyboard */, BCA085BC22F52D8800AD4CE2 /* Assets.xcassets */, BCA085BE22F52D8800AD4CE2 /* LaunchScreen.storyboard */, @@ -64,6 +80,26 @@ path = "mobile-coding-challenge"; sourceTree = ""; }; + BCA085CC22F7A8B200AD4CE2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BCA085E822F8760000AD4CE2 /* Reachability.framework */, + BCA085E622F7DC8F00AD4CE2 /* AlamofireImage.framework */, + BCA085CE22F7A8B200AD4CE2 /* Alamofire.framework */, + BCA085CD22F7A8B200AD4CE2 /* Freddy.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + BCA085D122F7A8EB00AD4CE2 /* Models */ = { + isa = PBXGroup; + children = ( + BCA085D422F7A95900AD4CE2 /* Entity.swift */, + BCA085D622F7ACAD00AD4CE2 /* WebService.swift */, + ); + path = Models; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -74,6 +110,7 @@ BCA085AE22F52D8700AD4CE2 /* Sources */, BCA085AF22F52D8700AD4CE2 /* Frameworks */, BCA085B022F52D8700AD4CE2 /* Resources */, + BCA085CB22F7A81400AD4CE2 /* ShellScript */, ); buildRules = ( ); @@ -130,12 +167,37 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + BCA085CB22F7A81400AD4CE2 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework", + "$(SRCROOT)/Carthage/Build/iOS/Freddy.framework", + "$(SRCROOT)/Carthage/Build/iOS/AlamofireImage.framework", + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks\n"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ BCA085AE22F52D8700AD4CE2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BCA085B822F52D8700AD4CE2 /* ViewController.swift in Sources */, + BCA085B822F52D8700AD4CE2 /* TrendingViewController.swift in Sources */, + BCA085D522F7A95900AD4CE2 /* Entity.swift in Sources */, + BCA085D722F7ACAD00AD4CE2 /* WebService.swift in Sources */, BCA085B622F52D8700AD4CE2 /* AppDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -284,6 +346,10 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 5BBUDM5XDN; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); INFOPLIST_FILE = "mobile-coding-challenge/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -302,6 +368,10 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 5BBUDM5XDN; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); INFOPLIST_FILE = "mobile-coding-challenge/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/mobile-coding-challenge/Base.lproj/LaunchScreen.storyboard b/mobile-coding-challenge/Base.lproj/LaunchScreen.storyboard index bfa3612..4c86382 100644 --- a/mobile-coding-challenge/Base.lproj/LaunchScreen.storyboard +++ b/mobile-coding-challenge/Base.lproj/LaunchScreen.storyboard @@ -1,7 +1,11 @@ - - + + + + + - + + @@ -13,13 +17,35 @@ + + + + + + + + + + + + - + + + + diff --git a/mobile-coding-challenge/Base.lproj/Main.storyboard b/mobile-coding-challenge/Base.lproj/Main.storyboard index f1bcf38..83f621f 100644 --- a/mobile-coding-challenge/Base.lproj/Main.storyboard +++ b/mobile-coding-challenge/Base.lproj/Main.storyboard @@ -1,24 +1,154 @@ - + + + + - + + - - + + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + From cc4464491762547b97d8128f4afe6488639eddc2 Mon Sep 17 00:00:00 2001 From: mtkahn Date: Mon, 5 Aug 2019 20:08:45 +0500 Subject: [PATCH 7/8] Completed implementation of TrendingViewController in order to generate desired result --- .../TrendingViewController.swift | 194 ++++++++++++++++++ mobile-coding-challenge/ViewController.swift | 20 -- 2 files changed, 194 insertions(+), 20 deletions(-) create mode 100644 mobile-coding-challenge/TrendingViewController.swift delete mode 100644 mobile-coding-challenge/ViewController.swift diff --git a/mobile-coding-challenge/TrendingViewController.swift b/mobile-coding-challenge/TrendingViewController.swift new file mode 100644 index 0000000..a40f73a --- /dev/null +++ b/mobile-coding-challenge/TrendingViewController.swift @@ -0,0 +1,194 @@ +// +// TrendingViewController.swift +// mobile-coding-challenge +// +// Created by Talha on 03/08/2019. +// Copyright © 2019 Talha. All rights reserved. +// + +import UIKit +import Alamofire +import AlamofireImage + +class TrendingViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate { + + @IBOutlet weak var activityIndicator: UIActivityIndicatorView! + @IBOutlet weak var trendingTableView: UITableView! + + var trendingData: [GitHubRepo]? + var isScrollViewBegin = true + var isServiceRunning = false + var page = 1 + var noRecords = false + + override func viewDidLoad() { + super.viewDidLoad() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + self.noRecords = false + + self.trendingTableView.estimatedRowHeight = 150 + self.trendingTableView.rowHeight = 150 + + self.loadData(queryString: self.getQueryString()) + } + + + // MARK : UITableView Delegate Methods + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + + let cell = tableView.dequeueReusableCell(withIdentifier: "trandingCell", for: indexPath) + guard let trending = self.trendingData else { return cell } + + let repository = trending[indexPath.row] + + if let repoName:UILabel = cell.viewWithTag(1) as? UILabel { + repoName.text = repository.repoName + } + if let repoDescription:UILabel = cell.viewWithTag(2) as? UILabel { + repoDescription.text = repository.repoDescription + } + if let repoAvatar:UIImageView = cell.viewWithTag(3) as? UIImageView { + let imageUrl:URL = URL(string: repository.repoAvatar)! + repoAvatar.af_setImage(withURL: imageUrl, placeholderImage: nil, imageTransition: .crossDissolve(0.5), runImageTransitionIfCached: true, completion: nil) + } + if let repoOwner:UILabel = cell.viewWithTag(4) as? UILabel { + repoOwner.text = repository.repoOwner + } + if let repoStars:UILabel = cell.viewWithTag(5) as? UILabel { + repoStars.text = formatPoints(num: Double(repository.repoStars)) + } + return cell + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + guard let tredingDataCount = self.trendingData?.count else { return 0 } + return tredingDataCount + } + + //MARK : Class Methods + + @objc func getQueryString(page: Int = 1) -> String { + let today = Date() + let thirtyDaysBeforeToday = Calendar.current.date(byAdding: .day, value: -30, to: today)! + + let dateFormatterGet = DateFormatter() + dateFormatterGet.dateFormat = "yyyy-MM-dd" + + let thirtyDaysBeforeTodayInString = dateFormatterGet.string(from: thirtyDaysBeforeToday) + + var queryString = "q=created:%3E" + thirtyDaysBeforeTodayInString + "&sort=stars&order=desc" + if page > 1 { + queryString = queryString + "&page=" + String(page) + } + return queryString + } + + @objc func loadData(queryString: String) { + if self.noRecords == false { + activityIndicator.startAnimating() + isServiceRunning = true + self.trendingTableView.isUserInteractionEnabled = false + WebService.callService(queryString: queryString, success: {(result) in + self.isServiceRunning = false + if self.trendingData == nil { + self.trendingData = result + } else { + self.trendingData?.append(contentsOf: result) + } + self.trendingTableView.reloadData() + self.activityIndicator.stopAnimating() + self.isScrollViewBegin = false + self.trendingTableView.isUserInteractionEnabled = true + }, failure: { (error) in + if error == "No Records Available" { + self.noRecords = true + } else { + self.showErrorAlert(message: error) + } + self.activityIndicator.stopAnimating() + self.isScrollViewBegin = false + self.trendingTableView.isUserInteractionEnabled = true + }) + } + } + + //MARK : Helper Method + + func formatPoints(num: Double) ->String{ + var thousandNum = num/1000 + var millionNum = num/1000000 + if num >= 1000 && num < 1000000{ + if(floor(thousandNum) == thousandNum){ + return("\(Int(thousandNum))k") + } + return("\(thousandNum.roundToPlaces(places: 1))k") + } + if num > 1000000{ + if(floor(millionNum) == millionNum){ + return("\(Int(thousandNum))k") + } + return ("\(millionNum.roundToPlaces(places: 1))M") + } + else{ + if(floor(num) == num){ + return ("\(Int(num))") + } + return ("\(num)") + } + } + + func loadMore(scrollView: UIScrollView, isServiceRunning: Bool, isScrollViewBegin: Bool, completion: @escaping () -> Void) { + + let offset_: CGPoint = scrollView.contentOffset + let bounds: CGRect = scrollView.bounds + let size: CGSize = scrollView.contentSize + let inset: UIEdgeInsets = scrollView.contentInset + let y: CGFloat = offset_.y + bounds.size.height - inset.bottom + let h: CGFloat = size.height + let reload_distance: CGFloat = 12 + + if y > h + reload_distance && !isServiceRunning && isScrollViewBegin { + completion() + } + } + + func showErrorAlert(message: String) { + let alertController = UIAlertController(title: nil, message: message, preferredStyle: .alert) + + let okAction = UIAlertAction(title: "OK", style: .default) { (_: UIAlertAction) -> Void in + print("OK pressed on error alert") + } + alertController.addAction(okAction) + self.present(alertController, animated: true, completion: nil) + } + + // MARK : Scroll View Delegate Methods + + func scrollViewDidScroll(_ scrollView: UIScrollView) { + self.loadMore(scrollView: scrollView, isServiceRunning: self.isServiceRunning, isScrollViewBegin: self.isScrollViewBegin, completion: { + self.page = self.page + 1 + self.loadData(queryString: self.getQueryString(page: self.page)) + }) + } + + func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { + isScrollViewBegin = true + } + +} + +// MARK : Double Extension + +extension Double { + /// Rounds the double to decimal places value + mutating func roundToPlaces(places:Int) -> Double { + let divisor = pow(10.0, Double(places)) + return Darwin.round(self * divisor) / divisor + } +} + diff --git a/mobile-coding-challenge/ViewController.swift b/mobile-coding-challenge/ViewController.swift deleted file mode 100644 index f756aff..0000000 --- a/mobile-coding-challenge/ViewController.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// ViewController.swift -// mobile-coding-challenge -// -// Created by Talha on 03/08/2019. -// Copyright © 2019 Talha. All rights reserved. -// - -import UIKit - -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view, typically from a nib. - } - - -} - From aff087be337bd5cbc7e1d5ccedbf7716fc902b76 Mon Sep 17 00:00:00 2001 From: mtkahn Date: Mon, 5 Aug 2019 20:12:23 +0500 Subject: [PATCH 8/8] Updating Readme file --- README.md | 53 ++++++++--------------------------------------------- 1 file changed, 8 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index f83520b..75cd39b 100644 --- a/README.md +++ b/README.md @@ -1,53 +1,16 @@ # Mobile Coding Challenge -## Idea of the App -The task is to implement a small app that will list the most starred Github repos that were created in the last 30 days. -You'll be fetching the sorted JSON data directly from the Github API (Github API explained down below). +In Order to Run the Project -## Features -* As a User I should be able to list the most starred Github repos that were created in the last 30 days. -* As a User I should see the results as a list. One repository per row. -* As a User I should be able to see for each repo/row the following details : - * Repository name - * Repository description - * Numbers of stars for the repo. - * Username and avatar of the owner. -* [BONUS] As a User I should be able to keep scrolling and new results should appear (pagination). +1. Install Carthage via [Homebrew][] + ```bash + $ brew update + $ brew install carthage -## Things to keep in mind 🚨 -* Features are less important than code quality. Put more focus on code quality and less on speed and number of features implemented. -* Your code will be evaluated based on: code structure, programming best practices, legibility (and not number of features implemented or speed). -* The git commit history (and git commit messages) will be also evaluated. -* Do not forget to include few details about the project in the README (e.g explain choice of libraries, how to run it ...) +2. Run `carthage update --platform iOS --no-use-binaries`. -## How to get the data from Github -To get the most starred Github repos created in the last 30 days (relative to 2017-11-22), you'll need to call the following endpoint : -`https://api.github.com/search/repositories?q=created:>2017-10-22&sort=stars&order=desc` - -The JSON data from Github will be paginated (you'll receive around 100 repos per JSON page). - -To get the 2nd page, you add `&page=2` to the end of your API request : - -`https://api.github.com/search/repositories?q=created:>2017-10-22&sort=stars&order=desc&page=2` - -To get the 3rd page, you add `&page=3` ... etc - -You can read more about the Github API over [here](https://developer.github.com/v3/search/#search-repositories -). - -## Mockups -![alt text](https://raw.githubusercontent.com/hiddenfounders/mobile-coding-challenge/master/mockup.png) - -Here's what each element represents : - -![alt text](https://raw.githubusercontent.com/hiddenfounders/mobile-coding-challenge/master/row-explained.png) - - -## Technologies to use -Choose whatever mobile platform you're most familiar with. - -* For iOS, feel free to use Swift or Objective-C. -* For Android, feel free to use Kotlin or Java. +## Technology used +* iOS, Swift.