Skip to content

Commit

Permalink
Merge branch 'release/v1.0.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
leeari95 committed Jul 28, 2022
2 parents 64a7b10 + bb5bf9e commit 20429d5
Show file tree
Hide file tree
Showing 1,219 changed files with 27,739 additions and 88 deletions.
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature request Template
about: "\b기능, UI, 문서 개선 및 추가 요청을 위한 템플릿."
title: ''
labels: feature
assignees: leeari95

---

## 🗣 설명
- 이슈 내용 작성


## 📋 체크리스트

> 구현해야하는 이슈 체크리스트
- [ ] 완료하지 못한 체크리스트
- [x] 완료한 체크리스트
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature request
about: "\b기능, UI, 문서 개선 및 추가 요청을 위한 템플릿."
title: ''
labels: ''
assignees: ''

---

## 🗣 설명
- 이슈 내용 작성


## 📋 체크리스트

> 구현해야하는 이슈 체크리스트
- [ ] 완료하지 못한 체크리스트
- [x] 완료한 체크리스트
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
31 changes: 31 additions & 0 deletions .github/workflows/test_on_develop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This is a basic workflow to help you get started with Actions

name: Run build and Test

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "develop" branch
push:
branches: [ "develop" ]
pull_request:
branches: [ "develop" ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: macos-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3

# Runs a single command using the runners shell
- name: Start xcode build 🛠
run: |
xcodebuild clean test -project Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj -scheme Animal-Crossing-Wiki -destination 'platform=iOS Simulator,name=iPhone 13 Pro,OS=15.2'
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ Temporary Items
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

*.xcuserstate
*.xcconfig

## Build generated
build/
Expand Down
28 changes: 21 additions & 7 deletions Animal-Crossing-Wiki/.swiftlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,28 @@ type_body_length: # 타입 길이
error: 250
identifier_name:
min_length:
- 2 # only min_length
- 2 # only min_length
error: 4 # only error
excluded: # 제외할 문자열 목록 사용
- a
- b
function_body_length:
warning: 150
error: 300
type_body_length:
- 300 # warning
- 400
file_length:
warning: 500
error: 1200
line_length:
warning: 140
disabled_rules: # 실행에서 제외할 룰 식별자들
- colon
- control_statement
- trailing_whitespace
- vertical_parameter_alignment
- colon
- control_statement
- trailing_whitespace
- vertical_parameter_alignment
- cyclomatic_complexity
opt_in_rules: # 일부 룰은 옵트 인 형태로 제공
- empty_count
- conditional_returns_on_newline
- empty_count
- conditional_returns_on_newline
1,283 changes: 1,262 additions & 21 deletions Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions Animal-Crossing-Wiki/Animal-Crossing-Wiki/AppAppearance.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//
// AppAppearance.swift
// Animal-Crossing-Wiki
//
// Created by Ari on 2022/06/14.
//

import UIKit

final class AppAppearance {
static func setUpAppearance() {
UITabBar.appearance().tintColor = .acText
UITabBar.appearance().unselectedItemTintColor = .acText.withAlphaComponent(0.6)
UITabBar.appearance().backgroundColor = .acBackground
UITabBar.appearance().barTintColor = .acBackground
UIBarButtonItem.appearance().tintColor = .acText
UINavigationBar.appearance().prefersLargeTitles = true
UINavigationBar.appearance().barTintColor = .acBackground
UINavigationBar.appearance().largeTitleTextAttributes = [.foregroundColor: UIColor.acText]
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.acText]
}
}
111 changes: 111 additions & 0 deletions Animal-Crossing-Wiki/Animal-Crossing-Wiki/AppCoordinator.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
//
// AppCoordinator.swift
// Animal-Crossing-Wiki
//
// Created by Ari on 2022/06/14.
//

import UIKit

final class AppCoordinator: Coordinator {
var type: CoordinatorType = .main
var childCoordinators: [Coordinator] = []
private(set) var rootViewController: UITabBarController!

private var playerViewController: PlayerViewController?
private var topAnchorConstraint: NSLayoutConstraint?

init(rootViewController: UITabBarController = UITabBarController()) {
self.rootViewController = rootViewController
}

func start() {
let dashboardCoordinator = DashboardCoordinator()
dashboardCoordinator.start()
dashboardCoordinator.setUpParent(to: self)
addViewController(dashboardCoordinator.rootViewController, title: "Dashboard".localized, icon: "icon-bells-tabbar")
childCoordinators.append(dashboardCoordinator)

let catalogCoordinator = CatalogCoordinator()
catalogCoordinator.start()
catalogCoordinator.setUpParent(to: self)
addViewController(catalogCoordinator.rootViewController, title: "Catalog".localized, icon: "icon-leaf-tabbar")
childCoordinators.append(catalogCoordinator)

let villagersCoordinator = VillagersCoordinator()
villagersCoordinator.start()
addViewController(villagersCoordinator.rootViewController, title: "Villagers".localized, icon: "icon-book-tabbar")
childCoordinators.append(villagersCoordinator)

let collectionCoordinator = CollectionCoordinator()
collectionCoordinator.start()
collectionCoordinator.setUpParent(to: self)
addViewController(collectionCoordinator.rootViewController, title: "Collection".localized, icon: "icon-cardboard-tabbar")
childCoordinators.append(collectionCoordinator)
}

private func addViewController(_ viewController: UIViewController, title: String, icon: String) {
let iconImage = UIImage(named: icon)?.withRenderingMode(.alwaysOriginal)

let tabBarItem = UITabBarItem(title: title, image: iconImage, tag: childCoordinators.count)
viewController.tabBarItem = tabBarItem

rootViewController.addChild(viewController)
}
}

extension AppCoordinator {

func showMusicPlayer() {
guard playerViewController == nil else {
playerViewController?.view.isHidden = false
return
}
let viewController = PlayerViewController()
playerViewController = viewController
rootViewController.view.addSubviews(viewController.view)
rootViewController.view.bringSubviewToFront(rootViewController.tabBar)
viewController.didMove(toParent: rootViewController)
let viewModel = PlayerViewModel(coordinator: self)
viewController.bind(to: viewModel)

let frame = rootViewController.view.frame
let tabBarHeight = rootViewController.tabBar.frame.height
viewController.configure(tabBarHeight: tabBarHeight)
self.topAnchorConstraint = viewController.view.topAnchor.constraint(
equalTo: rootViewController.view.topAnchor,
constant: frame.height - rootViewController.tabBar.frame.height - 60
)

topAnchorConstraint.flatMap {
NSLayoutConstraint.activate([
viewController.view.bottomAnchor.constraint(equalTo: rootViewController.view.bottomAnchor),
viewController.view.leadingAnchor.constraint(equalTo: rootViewController.view.leadingAnchor),
viewController.view.trailingAnchor.constraint(equalTo: rootViewController.view.trailingAnchor),
$0
])
}
}

func minimize() {
let frame = rootViewController.view.frame
let tabBarHeight = rootViewController.tabBar.frame.height
UIView.animate(withDuration: 0.4) {
self.topAnchorConstraint?.constant = frame.height - tabBarHeight - 60
self.rootViewController.view.layoutIfNeeded()
}
}

func maximize() {
let frame = rootViewController.view.frame
UIView.animate(withDuration: 0.4) {
self.topAnchorConstraint?.constant = frame.height - 600
self.rootViewController.view.layoutIfNeeded()
}
}

func removePlayerViewController() {
playerViewController?.view.isHidden = true
MusicPlayerManager.shared.close()
}
}
7 changes: 5 additions & 2 deletions Animal-Crossing-Wiki/Animal-Crossing-Wiki/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {



func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.

AppAppearance.setUpAppearance()
return true
}

Expand All @@ -31,6 +31,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.portrait
}

}

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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 20429d5

Please sign in to comment.