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

[iOS] Shingha, Gucci, Mase 스타벅스 앱! #1

Open
wants to merge 74 commits into
base: shingha
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
755cfbe
프로젝트 초기 셋팅
shingha1124 May 9, 2022
e37fad0
rxswift 추가
shingha1124 May 9, 2022
9c86d72
readme Update
shingha1124 May 9, 2022
c9a6992
스토리보드 사용하던 부분 전부 제거
shingha1124 May 9, 2022
d4d0565
타겟 버전 13.0, swiftlint 설정 수정
shingha1124 May 9, 2022
6b9f29a
rx 기본 플로우 설정
sanghyeok-kim May 9, 2022
ccea198
[feature] 탭바 추가
shingha1124 May 9, 2022
28d8658
[feature] home, pay viewcontroller 추가 및 테스트 코드 추가
shingha1124 May 10, 2022
285a5d0
button 테스트
sanghyeok-kim May 10, 2022
20de5d5
Merge pull request #1 from sanghyeok-kim/rx_study
shingha1124 May 10, 2022
5b06044
[feature] network 작업중
shingha1124 May 10, 2022
a5a3f3e
Merge branch 'feature/main' into develop
shingha1124 May 10, 2022
e474337
[feature] order View 추가
shingha1124 May 10, 2022
255ab1a
[STAR-11] feat: categoryButtons 구현
Damagucci-Juice May 10, 2022
174eb85
Merge pull request #2 from Damagucci-Juice/feature-orderViewButtons
shingha1124 May 10, 2022
d94c676
[STAR-9] feat: OrderTableView, OrderTableViewCell 구현
sanghyeok-kim May 10, 2022
d63025d
[STAR-12] feat: OrderVC에서 cell 선택시, 해당 cell에 맞는 detailVC가 push되는 기능 구현
sanghyeok-kim May 10, 2022
3b455a7
[STAR-10] feature: 네트워크 통신 확인( 홈화면 데이터, 홈화면 이벤트 정보)
shingha1124 May 10, 2022
3aeb7c7
Merge pull request #3 from sanghyeok-kim/feature/OrderTableView
shingha1124 May 10, 2022
e77abfe
Merge branch 'feature/network' into develop
shingha1124 May 10, 2022
9fb1de5
[STAR-7] feat: Category Order TableView DataSource 를 ViewModel 과 연결
Damagucci-Juice May 10, 2022
7b1ee62
[STAR-10] feature: 홈 화면 네트워크 통신 성공
shingha1124 May 11, 2022
ae1eebf
[STAR-7] refactor: 강제 언랩핑, 프린트문 제거
Damagucci-Juice May 11, 2022
a540592
Merge pull request #4 from Damagucci-Juice/feature-orderNavigationView
shingha1124 May 11, 2022
b99d7d0
코드정리
shingha1124 May 11, 2022
1538a23
Merge branch 'feature/network2' into develop
shingha1124 May 11, 2022
552601c
폴더 구조 갱신
shingha1124 May 11, 2022
d22397d
[STAR-14] feature: 카테고리 Json 파일 추가
shingha1124 May 11, 2022
9231251
[STAR-14] feature: 샘플 json 추가
shingha1124 May 11, 2022
ca594b5
json 파일 수정
shingha1124 May 11, 2022
88766d9
[STAR-16] feat: Category.json Mock파일 생성하여, 내부적으로 Parsing한 data로 Categ…
sanghyeok-kim May 11, 2022
19a940d
Merge pull request #5 from sanghyeok-kim/develop2
shingha1124 May 11, 2022
5a45059
[STAR-17] feat: Category Buttons 에서 선택시 버튼 강조 적용
Damagucci-Juice May 11, 2022
a1b6335
Merge pull request #6 from Damagucci-Juice/feature-orderCategoryView
shingha1124 May 11, 2022
6890e24
[STAR-14] feature: 레파지토리로 json 받아오기
shingha1124 May 11, 2022
a7b5f5d
Merge branch 'feature/json' into develop
shingha1124 May 11, 2022
c5f565a
[STAR-14] feature: 코드정리 및 학습 주석 작성
shingha1124 May 11, 2022
07c5f99
[STAR-18] feature: 이미지 로딩
shingha1124 May 11, 2022
a27703f
[STAR-13] feature: 추천메뉴 UI 구성
shingha1124 May 11, 2022
896ffa8
[STAR-13] feature: 제품 상세 데이터 불러오기 및 데이터 파싱
shingha1124 May 11, 2022
018f321
[STAR-13] feature: 추천 제품 뷰 구현
shingha1124 May 12, 2022
cc1a4e1
[STAR-13] feature: 홈 화면 기능구현 - 이벤트 이미지 출력, 이벤트 리스트 출력
shingha1124 May 12, 2022
0ec4e10
[STAR-13] feature: stickyView 구현, 상단 메뉴 구현, WhatsNew 버튼 추가
shingha1124 May 12, 2022
a33141e
[STAR-13] feature: 메뉴선택, 메인 이벤트 선택 시 pushController 할 수 있도록 플로우 구현
shingha1124 May 13, 2022
07e40ac
[STAR-13] feature: 이시간대 추천메뉴 추가
shingha1124 May 13, 2022
9a0fecc
[STAR-19] feature: 이벤트 페이지 구현
shingha1124 May 14, 2022
12b2480
[STAR-19] feature: 이벤트 페이지 UI 수정
shingha1124 May 15, 2022
d4b196d
[STAR-22, 23, 34] feature: 페이화면 기능구현, 카메라 사용, 머신러닝, 카드 추가, 충전
shingha1124 May 17, 2022
ec6dd71
누락 파일 커밋
shingha1124 May 18, 2022
d44e22d
[STAR-21] feat: groupID 를 이용해 Repository 에 CategoryProduct 의 배열을 요청하는…
Damagucci-Juice May 16, 2022
76c6463
[STAR-21] feat: Category Product array를 API 로 부터 받아오는 기능 구현
Damagucci-Juice May 16, 2022
618e441
[STAR-19] feat: listVC 에 Cell 을 탭할 시 DetailVC 를 호출하는 흐름
Damagucci-Juice May 17, 2022
2077986
[STAR-19] fix: TableViewDatasource 에서 가지고 있던 모델을 ViewModel로 옮긴 다음 Tab…
Damagucci-Juice May 17, 2022
ddb446b
[STAR-19] fix: OrderListViewModel 에서 Detail page 데이터 받아오도록 수정
Damagucci-Juice May 18, 2022
9a922af
[STAR-19] chore: swiftLint 경고 줄이는 작업 수행
Damagucci-Juice May 18, 2022
1e1a205
Merge pull request #11 from Damagucci-Juice/develop
shingha1124 May 18, 2022
e74ba19
[STAR-25] feature: what'new 페이지 UI 정리 및 디테일 작업
shingha1124 May 18, 2022
9dca704
Merge branch 'feature/STAR-25' into feature/STAR-251
shingha1124 May 18, 2022
4f445bd
[STAR-25] feature: 이벤트 페이지 테이블 헤더 수정
shingha1124 May 18, 2022
22a6919
[STAR-26] refactor: OrderListViewController가 productCode만 주입받아서 자신에 대…
sanghyeok-kim May 18, 2022
05efaae
[STAR-26] refactor: OrderListViewController 접근제어자 private으로 변경
sanghyeok-kim May 18, 2022
0cb6279
[STAR-26] refactor: OrderListVM 생성자에 subCategory의 gruopId와 title을 넘겨주…
sanghyeok-kim May 18, 2022
f6a68c8
[STAR-26] fix: categoryLabel 출력되지 않는 문제 해결
sanghyeok-kim May 18, 2022
75f94f4
Readme 업데이트
shingha1124 May 18, 2022
682eca5
Merge branch 'feature/SelectedCellRefactoring' into feature/productVC
sanghyeok-kim May 18, 2022
d516088
Merge pull request #12 from sanghyeok-kim/feature/productVC
shingha1124 May 18, 2022
35acab0
[STAR-26] rename: ListViewModelProtocol -> OrderListViewModelProtocol…
sanghyeok-kim May 18, 2022
549a509
[STAR-27] feat: OrderDetailViewController에게 productCode를 넘겨주고 Push하는 …
sanghyeok-kim May 19, 2022
0a25021
Merge pull request #13 from sanghyeok-kim/feature/SelectedCellRefacto…
shingha1124 May 19, 2022
2b90bc1
feature: navigation UINavigationBarAppearance 를 사용해서 쓰도록 변경
shingha1124 May 19, 2022
282eb3b
Merge branch 'feature/navigationBar' into develop
shingha1124 May 19, 2022
2f037d3
[STAR-28] feat: OrderDeatailView UI 작성
Damagucci-Juice May 19, 2022
fa6d4e3
Merge pull request #14 from Damagucci-Juice/develop
shingha1124 May 19, 2022
bcd898d
featrue: 카테고리 네비게이션 수정 및 코드 정리
shingha1124 May 19, 2022
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
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ playground.xcworkspace
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/

#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace
Expand Down Expand Up @@ -88,3 +88,6 @@ fastlane/test_output
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/

Starbucks/Pods/
Starbucks/Podfile.lock
74 changes: 72 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,72 @@
# swift-starbucks
iOS 클래스 프로젝트 - 스타벅스 앱
## 2022 StackBucks App

------

### ProjectSetting

- Language: Swift
- UI: Code Base + SnapKit
- Architecture: MVVM + RxSwift

### Use Pods

* SwiftLint, SnapKit, Alamofire, RxSwift, RxCocoa, RxAppState, Quick, Nimble

### Developer

* [Shingha](https://github.com/shingha1124), [Gucci](https://github.com/Damagucci-Juice), [Mase](https://github.com/sanghyeok-kim)

### Issue

* [Jira](https://shingha1124.atlassian.net/jira/software/projects/STAR/boards/1)

### Wiki

* [Wiki](https://github.com/shingha1124/swift-starbucks/wiki)

------

# 앱 화면

------

## Home

![홈화면](https://user-images.githubusercontent.com/5019378/169022684-7368e721-cfdb-4369-84bc-b552fcfd6be0.gif)

* ### 스토리

* 사용자의 추천 메뉴를 보여준다
* 좌우로 스크롤하여 확인 할 수 있다
* 메인 이벤트를 확인 할 수 있다
* What's New를 확인 할 수 있다
* 상단의 What's New, See all 버튼을 터치하여 이벤트 페이지로 이동 할 수 있다
* 현재 시간의 추천메뉴를 확인 할 수 있다
* 좌우로 스크롤하여 확인 할 수 있다

------

## What' New

![이벤트](https://user-images.githubusercontent.com/5019378/169025302-80fd6e46-2f1a-4669-bb39-b27b09db951a.gif)

* ### 스토리

* 홈에서 What's New 버튼을 눌러 입장할 수 있다
* 현재 등록된 이벤트 및 공지사항을 확인 할 수 있다

------

## Pay

![페이](https://user-images.githubusercontent.com/5019378/169026542-5393f65d-43f6-45e3-b92b-0a6c767a2a16.gif)

* ### 스토리

* 등록된 카드를 좌우로 넘기며 확인 할 수 있다

* 충전된 금액을 확인 할 수 있다

* 머신러닝을 이용하여 현금을 촬영하여 금액을 충전 할 수 있다


273 changes: 273 additions & 0 deletions Starbucks/.swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,273 @@
only_rules:

# 상시 활성화 (자동)
- anyobject_protocol
- array_init
- attributes
- block_based_kvo
- class_delegate_protocol
- closing_brace
- closure_body_length
- closure_end_indentation
- closure_parameter_position
- closure_spacing
- collection_alignment
- colon
- comma
- compiler_protocol_init
# - conditional_returns_on_newline
- contains_over_filter_count
- contains_over_filter_is_empty
- contains_over_first_not_nil
- contains_over_range_nil_comparison
- control_statement
- convenience_type
- custom_rules
- cyclomatic_complexity
- deployment_target
- discarded_notification_center_observer
- discouraged_direct_init
# - discouraged_object_literal
# - discouraged_optional_boolean
# - discouraged_optional_collection
- duplicate_enum_cases
- duplicate_imports
- dynamic_inline
- empty_collection_literal
- empty_count
- empty_enum_arguments
- empty_parameters
- empty_parentheses_with_trailing_closure
- empty_string
- empty_xctest_method
- enum_case_associated_values_count
# - explicit_acl
# - explicit_enum_raw_value
- explicit_init
# - explicit_self
# - explicit_top_level_acl
# - explicit_type_interface
- extension_access_modifier
- fallthrough
- fatal_error_message
# - file_header
- file_length
# - file_name
- file_name_no_space
# - file_types_order
- first_where
- flatmap_over_map_reduce
- for_where
- force_cast
- force_try
- force_unwrapping
# - function_body_length
# - function_default_parameter_at_end
- function_parameter_count
- generic_type_name
- identical_operands
# - identifier_name
- implicit_getter
- implicit_return
# - implicitly_unwrapped_optional
# - indentation_width
- inert_defer
- is_disjoint
- joined_default_parameter
- large_tuple
- last_where
- leading_whitespace
- legacy_cggeometry_functions
- legacy_constant
- legacy_constructor
- legacy_hashing
- legacy_multiple
- legacy_nsgeometry_functions
- legacy_random
- let_var_whitespace
- line_length
- literal_expression_end_indentation
- lower_acl_than_parent
- mark
# - missing_docs
- modifier_order
- multiline_arguments
# - multiline_arguments_brackets
# - multiline_function_chains
- multiline_literal_brackets
- multiline_parameters
# - multiline_parameters_brackets
# - multiple_closures_with_trailing_closure
# - nesting
- nimble_operator
# - no_extension_access_modifier
- no_fallthrough_only
# - no_grouping_extension
- no_space_in_method_call
- notification_center_detachment
# - nslocalizedstring_key
# - nslocalizedstring_require_bundle
- nsobject_prefer_isequal
# - number_separator
# - object_literal
- opening_brace
- operator_usage_whitespace
- operator_whitespace
- optional_enum_case_matching
# - orphaned_doc_comment
- overridden_super_call
- override_in_extension
# - pattern_matching_keywords
- prefer_self_type_over_type_of_self
# - prefixed_toplevel_constant
- private_action
# - private_outlet
- private_over_fileprivate
- private_unit_test
# - prohibited_interface_builder
- prohibited_super_call
- protocol_property_accessors_order
# - quick_discouraged_call
# - quick_discouraged_focused_test
# - quick_discouraged_pending_test
- raw_value_for_camel_cased_codable_enum
- reduce_boolean
- reduce_into
- redundant_discardable_let
- redundant_nil_coalescing
- redundant_objc_attribute
- redundant_optional_initialization
- redundant_set_access_control
- redundant_string_enum_value
- redundant_type_annotation
- redundant_void_return
# - required_deinit
- required_enum_case
- return_arrow_whitespace
- shorthand_operator
- single_test_class
- sorted_first_last
- sorted_imports
- statement_position
- static_operator
# - strict_fileprivate
# - strong_iboutlet
# - superfluous_disable_command
- switch_case_alignment
# - switch_case_on_newline
- syntactic_sugar
# - todo
- toggle_bool
# - trailing_closure
- trailing_comma
- trailing_newline
- trailing_semicolon
# - trailing_whitespace
# - type_body_length
# - type_contents_order
- type_name
- unavailable_function
- unneeded_break_in_switch
- unneeded_parentheses_in_closure_argument
# - unowned_variable_capture
- untyped_error_in_catch
- unused_capture_list
- unused_closure_parameter
- unused_control_flow_label
- unused_declaration
- unused_enumerated
- unused_import
- unused_optional_binding
# - unused_setter_value
- valid_ibinspectable
- vertical_parameter_alignment
- vertical_parameter_alignment_on_call
- vertical_whitespace
# - vertical_whitespace_between_cases
- vertical_whitespace_closing_braces
# - vertical_whitespace_opening_braces
- void_return
- weak_delegate
- xct_specific_matcher
- xctfail_message
- yoda_condition


# 검사할 파일경로
included:
- Starbucks/Sources

# 제외할 파일경로 (included보다 우선순위 높음)
excluded:
- Pods

# 룰별 커스터마이징
line_length:
ignores_urls: true
warning: 300
error: 400

closure_body_length:
warning: 80
error: 100

cyclomatic_complexity:
warning: 30
error: 30

large_tuple:
warning: 4

type_name:
min_length: 2
max_length: 60
warning: 50
error: 60

function_parameter_count:
warning: 7

file_length:
warning: 1000

force_cast:
severity: error

force_unwrapping:
severity: error

class_delegate_protocol:
severity: error

closure_spacing:
severity: error

compiler_protocol_init:
severity: error

control_statement:
severity: error

implicit_getter:
severity: error

operator_whitespace:
severity: error

redundant_string_enum_value:
severity: error

syntactic_sugar:
severity: error

unused_enumerated:
severity: error

unused_optional_binding:
severity: error

vertical_parameter_alignment:
severity: error

weak_delegate:
severity: error
18 changes: 18 additions & 0 deletions Starbucks/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
use_frameworks!

target 'Starbucks' do
pod 'SwiftLint'

pod 'SnapKit', '~> 5.6.0'
pod 'Alamofire'

pod 'RxSwift', '6.5.0'
pod 'RxCocoa', '6.5.0'
pod 'RxAppState', '~> 1.6'
end

target 'StarbucksTests' do
#Quick은 테스트를 동작 주도 개발로 작성할 수 있도록 도와주는 프레임워크
pod 'Quick'
pod 'Nimble'
end
Loading