Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Desafio iOS - Github Java Repos #4

Open
wants to merge 37 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
35e4f1d
Project Setup
felipericieri Oct 28, 2017
3e8ace4
Swift, UIKit & Foundation extensions utils
felipericieri Oct 28, 2017
60dd324
DropShadowNavigationBar
felipericieri Oct 28, 2017
eb97633
RestClient
felipericieri Oct 28, 2017
4497714
Models & Services
felipericieri Oct 28, 2017
19e1ea8
Controllers & Cells
felipericieri Oct 28, 2017
dae73c1
ViewModels
felipericieri Oct 28, 2017
ffe97e4
AppDelegate
felipericieri Oct 28, 2017
a3e70a7
Tests Implemented
felipericieri Oct 28, 2017
4f3fc0e
LaunchScreen
felipericieri Oct 28, 2017
1d1cdfe
Main Storyboard set
felipericieri Oct 28, 2017
0d8610f
Swift 4 errors
felipericieri Oct 28, 2017
187a58b
More Swift 4 erros
felipericieri Oct 28, 2017
5841e75
Strong reference to Services
felipericieri Oct 28, 2017
dd13ac1
Struct Models / JSON Deserialization with SwiftyJSON
felipericieri Oct 28, 2017
7ede498
RepositoriesViewModel & Access Level changes
felipericieri Oct 28, 2017
956ca42
Better API in Repositories
felipericieri Oct 28, 2017
0165bde
PullRequest ViewModel & Access Level Changes
felipericieri Oct 28, 2017
8a5bd6d
Tests enhanced
felipericieri Oct 28, 2017
94da03b
WebViewController & WebViewModel
felipericieri Oct 28, 2017
76fa9ea
Mock VCs / Removing unnecessary access level
felipericieri Oct 29, 2017
be1eed5
Quick fixes
felipericieri Oct 29, 2017
5ceca15
Tests (finally) completed
felipericieri Oct 29, 2017
8f22055
Removed reload action
felipericieri Oct 29, 2017
3d480c6
ReachabilityManager documented
felipericieri Oct 29, 2017
4218717
RestClient documented
felipericieri Oct 29, 2017
53c070d
External data documented
felipericieri Oct 29, 2017
eff0fa4
Documenting controllers
felipericieri Oct 29, 2017
93742ee
Cells documented
felipericieri Oct 29, 2017
907dcdf
ViewModels documented
felipericieri Oct 29, 2017
cca6516
Universal Support
felipericieri Oct 29, 2017
37dbf42
Trying different devices
felipericieri Oct 29, 2017
b33ff37
Last enhancements
felipericieri Oct 29, 2017
15dd755
Localized app
felipericieri Oct 29, 2017
2cdb3d5
Injecting ViewModels into controllers
felipericieri Nov 8, 2017
2fea8a6
End Refreshing after loading page
felipericieri Nov 8, 2017
b2391e6
Tests reviewed
felipericieri Nov 8, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#Xcode
.DS_Store
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
*.xcworkspace
!default.xcworkspace
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
# Pods - for those of you who use CocoaPods
Pods
*.lock
# Fastlane
*.ipa
*.zip
943 changes: 943 additions & 0 deletions DesafioIOS/DesafioIOS.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

65 changes: 65 additions & 0 deletions DesafioIOS/DesafioIOS/AppDelegate.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
//
// AppDelegate.swift
// DesafioIOS
//
// Created by Felipe Ricieri on 28/10/17.
// Copyright © 2017 Nexaas. All rights reserved.
//

import UIKit
import CoreData
import SVProgressHUD

/**
* Application Delegate
*/
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

/**
* Main window
*/
var window: UIWindow?

// Setup

/**
* buildApplication()
* @description Customizes application
*/
func buildApplication() {

// Status bar
UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent

// Navigation Bar custom colors
UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
UINavigationBar.appearance().tintColor = UIColor.white

// ProgressHUD custom colors
SVProgressHUD.setBackgroundColor(UIColor.navigationBarColor)
SVProgressHUD.setForegroundColor(UIColor.white)

// Prepare root controller
if let navigationController = window!.rootViewController as? UINavigationController,
let repositoriesController = navigationController.viewControllers.first as? RepositoriesViewController {
repositoriesController.viewModel = RepositoriesViewModel()
}
}

// MARK: - 👽 Lifecycle Methods
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
buildApplication()
return true
}

// MARK: - 🎃 Reachability Listeners
func applicationDidBecomeActive(_ application: UIApplication) {
ReachabilityManager.subscribe()
}

func applicationDidEnterBackground(_ application: UIApplication) {
ReachabilityManager.unsubscribe()
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"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" : "ios-marketing",
"size" : "1024x1024",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
6 changes: 6 additions & 0 deletions DesafioIOS/DesafioIOS/Assets.xcassets/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "[email protected]",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 51 additions & 0 deletions DesafioIOS/DesafioIOS/Base.lproj/LaunchScreen.storyboard
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="15G1212" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Desafio iOS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rwN-i7-CwM">
<rect key="frame" x="101" y="314" width="173" height="39"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="32"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Felipe Ricieri" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YmS-cz-xdM">
<rect key="frame" x="139" y="361" width="97" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="0.20392156859999999" green="0.20392156859999999" blue="0.21960784310000001" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="YmS-cz-xdM" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="E7w-hE-iRH"/>
<constraint firstItem="rwN-i7-CwM" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="Jue-lY-1Y7"/>
<constraint firstItem="rwN-i7-CwM" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="fwT-Bk-Uox"/>
<constraint firstItem="YmS-cz-xdM" firstAttribute="top" secondItem="rwN-i7-CwM" secondAttribute="bottom" constant="8" id="sKN-10-wDy"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
Loading