Skip to content

Commit

Permalink
[1.1.0] Android release1.1.0 to Main (#409)
Browse files Browse the repository at this point in the history
* #6 초기 세팅

build: rest-assured 의존성 추가

chore: 중복된 gitignore 삭제

pr 템플릿

android pr builder
docs: project 단 gitignore

build: gradle 버전 관리

feat: PokeRogueHelperApp

chore: Manifest INTERNET 설정

chore: Packaging base

utils: 프로젝트 ui 에서 사용할 util 추가

utils: test util

style: ktFormat

fix: 깃 충돌 해결

fix: PR Builder 수정

delete: assertj 삭제

build: room 설정 및 glide-compiler

refactor: 코드리뷰 반영

- GridSpacingItemDecoration 주석 삭제
- RecyclerViewItemCountAssertion 주석 삭제

refactor: withItemCount, performClickHolderAt 함수 RecyclerViewUtil 로 이동

- 기존 ViewInteractonExtensions

refactor: getDeviceSize -> deviceSize로 네이밍 수정

refactor: getDescription 에 View Id 추가

refactor: matchDescendantWithText 로 네이밍 수정

refactor: CommonBindingAdapter 로 네이밍 수정

build: FlexboxLayout 추가

* [AN-UI] 안드로이드 공통 디자인 컴포넌트 세팅 (#14)

* ui: add base icon

* ui: add color

* ui: add poke type icon

* ui: add pretendard font

논의 해봐야함

* ui: Primary Theming

* fix: 잘못된 함수 네이밍 수정

* ui: 평행사변형 커스텀뷰

* style: ktFormat

* [AN-UI] 상성 페이지 UI 구현 (#8)

* init 기초 세팅

- pr 템플릿
- android pr builder

* ui: 타입 선택 화면 관련 drawable 추가

* ui: 타입 선택 화면 xml 구현

* ui: 타입 선택 바텀 시트 xml 구현

* chore: 초기 세팅과 병합

* feat: 상성 타입 데이터 정의

- UI 모델 정의 및 Mapper

* feat: 상성 타입 선택 바텀 시트 구현

* feat: 상성 화면 구현

* feat: 상성 화면으로 이동 로직(임시용) 구현

- 상성 화면 확인을 위한 작업

* feat: 상성 결과 화면 커스텀 뷰 구현

* chore: 패키지 명 수정

* feat: 상성 결과 글자 색상 변경 부분 추가

* chore: 상성 결과 커스텀뷰 네이밍 수정

* chore: UiModel mapper 패키지 이동

* chore: 상성 결과 변수 네이밍 수정

* refactor: 바텀 시트 전역 변수 제거

* refactor: 커스텀뷰 바인딩 연결

* feat: 상성 결과 색상 설정 기능

---------

Co-authored-by: murjune <[email protected]>

* [AN-UI] 홈 화면 UI 구현 (#11)

* ui: toolbar와 관련된 drawable 추가

* ui: toolbar xml 작성

* ui: toolbar 구현

* ui: home과 관련된 drawable 추가

* ui: home xml 작성

* feat: 메뉴 클릭시 화면 이동

* chore: xml id 컨벤션

* chore: 코드리뷰 반영

* ui: home drawable 추가

* ui: 스타일 적용

---------

Co-authored-by: murjune <[email protected]>

* [AN-HACKATON] 해커톤 작업한거 develop 에 머지 (#27)

* ci: an/hack/develop 추가

* [AN-FEAT] 해커톤용 포켓몬 도감 UI/Presentation 로직 (#22)

* 심지 커밋 스틸

ui: 포켓몬 도감 목록 프래그먼트 파일을 생성하여 연결한다

chore: 타입에 임시로 사용할 긴 이미지 추가

ui: 포켓몬 목록 화면의 item 을 보여준다

- 일단 타입이 두 가지가 있다고 가정하고 화면을 그린다

chore: 타입에 임시로 사용할 작은 동그란 이미지 추가

refactor: PokemonUiModel 의 더미 이미지 url 변경

ui: 포켓몬 도감 목록 화면의 item 의 배경, 텍스트 색상을 변경한다

ui: 포켓몬 목록 프래그먼트에 리사이클러뷰 생성해서 연결

ui: 포켓몬 목록 리사이클러뷰 어댑터에 데코레이터를 추가한다

ui: 포켓몬 목록 프래그먼트에 서치 바를 추가한다

chore: 사용하지 않는 타입 아이콘 제거, 문자열 리소스로 변경

* ui: toolbar

* feat: poke List

* feat: common Linear 용 Decoration

* feat: common ImageRes bindingAdapter

* feat: poke detail

* feat: poke list

* refactor: 패키징

* style: ktFormat

* feat: placeholder, error icon 추가

* [AN-HACK] 포켓몬 특성 기능 구현 (#25)

* ci: an/hack/develop 추가

* 심지 커밋 스틸

ui: 포켓몬 도감 목록 프래그먼트 파일을 생성하여 연결한다

chore: 타입에 임시로 사용할 긴 이미지 추가

ui: 포켓몬 목록 화면의 item 을 보여준다

- 일단 타입이 두 가지가 있다고 가정하고 화면을 그린다

chore: 타입에 임시로 사용할 작은 동그란 이미지 추가

refactor: PokemonUiModel 의 더미 이미지 url 변경

ui: 포켓몬 도감 목록 화면의 item 의 배경, 텍스트 색상을 변경한다

ui: 포켓몬 목록 프래그먼트에 리사이클러뷰 생성해서 연결

ui: 포켓몬 목록 리사이클러뷰 어댑터에 데코레이터를 추가한다

ui: 포켓몬 목록 프래그먼트에 서치 바를 추가한다

chore: 사용하지 않는 타입 아이콘 제거, 문자열 리소스로 변경

* ui: toolbar

* feat: menu 클릭시 해당 페이지로 이동

* ui: 특성 화면과 관련된 drawable 추가

* ui: 특성 화면 xml 작성

* feat: 특성 화면 기능 구현

* 오둥꺼랑 머지

* 토스트 삭제

* feat: dummy 특성

* feat:dummy 포켓몬

---------

Co-authored-by: murjune <[email protected]>

* [AN-HACK] 상성 기능 구현 (#26)

* ci: an/hack/develop 추가

* ui: theme 설정 및 컬러 적용

* refactor: type UI 모델 재정의

- 색상도 포함하도록 수정

* chore: 타입 데이터 추가 및 파일 위치 변경

* chore: 불필요한 파일 제거

* feat: 타입 결과 반환하는 로직 구현

* feat: 타입 선택 바텀 시트 데이터 및 이벤트 핸들러 연결

* feat: 상성 결과 화면 데이터 연결 및 이벤트 처리

* refresh, 눌렀을 때 바텀시트 dismiss

* ktlintformat

---------

Co-authored-by: murjune <[email protected]>

---------

Co-authored-by: SangHyun Ko <[email protected]>
Co-authored-by: Yehyun Jo <[email protected]>

* [AN-UI] 포켓몬 상성 Icon + TextAppearance 추가 (#33)

* ui: TextApearance

* ui: icon svg로 변경

* ui: Home Appearance 적용

* [AN-FEAT] Network Config 추가 (#34)

* chore: gitkeep 삭제

* build: Base URL 추가

* CI: add base url Checker

* feat: Retrofit Module

* feat: Service Module

* feat: PokeDexService

* feat: AbilityService

* style: ktlint

* [AN-REFACTOR] 포켓몬 도감 데이터는 데이터 레이어에서 불러온다. (#36)

* chore: pokemon2 패키지 이름을 dex 로 변경한다

* refactor: PokemonListFragment 에서 뷰모델을 BaseViewModelFactory 을 통해 생성한다

* refactor: PokemonListFragment 어댑터를 lazy 하게 생성한다

* refactor: PokemonDetailFragment 에서 뷰모델을 BaseViewModelFactory 을 통해 생성한다

* refactor: PokemonDetailFragment 의 어댑터를 lazy 하게 생성한다

* feat(data/model/Type): 포켓몬 타입 원시값 포장, 캐싱한다

- 캐싱을 통해 타입을 계속해서 생성하지 않아도 된다
- 추후에 타입이 추가되었을 때 서버 통신을 통해 TYPES 맵에 추가할 수 있도록 대응한다

* feat(data/model/Pokemon): 포켓몬 데이터

* feat: 포켓몬 목록을 in-memory 에서 불러온다

* feat(dex/model/PokemonUiModel): id, 이름, 이미지, 타입 목록을 가지는 ui model

* feat(TypeUiModel): 데이터 레이어의 타입으로부터 타입 ui 모델로 만든다

* refactor: pokemonUiModel 을 모델 패키지의 것으로 교체한다

* refactor: 포켓몬 목록 화면에서 데이터 레이어로부터 데이터를 가져온다

- Before: 뷰모델에서 ui model 의 더미 데이터를 가져온다
- After: 데이터 소스를 통해 더미 데이터를 가져온다

* feat(data/model/Stat): 스탯 이름과 수치를 프로퍼티로 가진다

* feat(presentation/.../StatUiModel): 스탯 이름, 수치, progress 를 프로퍼티로 가진다

* feat(presentation/.../PokemonUiModel): id, 도감번호, 이름, 이미지, 타입 목록을 가진다

* feat(data/.../PokemonDetail): 포켓몬, 스탯 목록, 특성 목록, 키, 무게를 가진다

* feat(presentation/.../PokemonDetailUiModel): 포켓몬 상세 정보 ui 모델을 가진다

* feat(PokemonDetailDataSource): 포켓몬 상세 정보를 가져온다

* refactor($PokemonDetail): 포켓몬 상세 페이지에서 ui 모델을 사용한다

- Before: 데이터 레이어에 있는 모델을 사용

- After: 프레젠테이션 레이어에 있는 모델을 사용

* refactor(PokemonDetailViewModel): 데이터 소스로부터 포켓몬 상세 정보를 불러온다

* refactor(StatUiModel): 능력치 값의 limit 를 설정

능력치 총합의 limit 와 단일 능력치의 limit 을 각각 설정한다

* refactor(item_stat.xml): 능력치 아이템의 텍스트 너비 조정

* chore: 사용하지 않는 ui,데이터 모델 삭제

* refactor(PokemonListFragment): 포켓몬 어댑터에 리스너 함수의 참조가 아닌 뷰모델을 넘긴다

* refactor: 타입 이름을 한글로 설정한다

* chore(PokemonDetailViewModel): 로그 제거

* refactor: data/model/Type 을 enum class 로 변경한다

* chore: 임시 포켓몬 리스트 데이터 소스 클래스 이름 변경

- InMemoryPokemonListDataSource -> FakePokemonListDataSource 로 이름 변경

* chore: 임시 포켓몬 리스트 데이터 소스 인터페이스 제거

* feat: PokemonListRepository 인터페이스와 Fake 구현체를 만든다

* refactor: 포켓몬 목록 뷰모델이 레포지토리로부터 포켓몬을 가져온다

- Before: 페이크 데이터 소스로부터 포켓몬를 가져온다
- After: 레포지토리 인터페이스로부터 포켓몬을 가져온다

* chore: 임시 포켓몬 디테일 데이터 소스 클래스 이름 변경

- DummyPokemonDetailDataSource -> FakePokemonDetailDataSource 로 이름 변경

* chore: 임시 포켓몬 상세 데이터 소스 인터페이스 제거

* feat: 포켓몬 상세 인터페이스와 Fake 구현체를 만든다

* refactor: 포켓몬 상세 데이터 클래스에 있던 더미 데이터를 fake 데이터 소스로 이동

- fake 포켓몬 상세 레포지토리가 fakepokemonDataSource 를 주 생성자로 가진다

* refactor: 포켓몬 상세 뷰모델이 레포지토리로부터 포켓몬을 가져온다

- Before: 페이크 데이터 소스로부터 포켓몬를 가져온다
- After: 레포지토리 인터페이스로부터 포켓몬을 가져온다

* [AN_UI] TypeChip component, CommonBindingAdapter, Serializable, Parcelable Util 함수들 추가 (#47)

* ui: color 변경

* feat: BundleExtensions, IntentExtensions

* feat: withArgs  구현

* feat: withArgs, serializable 함수 적용

* feat(CommonBindingAdapter): setBackGroundColorRes

* ui: textAppearance 수정

* ui: TypeItemView 구현,  item_type_name 에 적용

* style: Ktformat

* chore: TypeChip으로 네이밍 변경

* fix: androidx.core.content.res 의 use함수로 수정

reference: https://stackoverflow.com/questions/73502338/android-content-res-typedarray-cannot-be-cast-to-java-lang-autocloseable

* [AN-REFACTOR] 상성 화면 리팩토링 (#38)

* chore: 패키지 네이밍 수정 및 이동

- 상성 결과 화면 관련된 파일들을 패키지로 묶음

* refactor: 데이터 바인딩 적용

- 상성 이벤트 정의
- EventHandler 개선

* refactor: 선택된 상성 UI 커스텀 뷰 확장 및 데이터 바인딩 적용

- 기본으로 들어가는 이미지와 삭제 버튼까지 포함하도록 수정

* ui: BottomSheetDragHandleView 추가

* refactor: Flow 적용

* refactor: string 리소스 활용

* chore: 불필요한 파일 제거

* [AN-UI] 포켓몬 상성 Icon + TextAppearance 추가 (#33)

* ui: TextApearance

* ui: icon svg로 변경

* ui: Home Appearance 적용

* refactor: 타입 데이터 불러오는 로직과 UI 분리

* chore: 네이밍 수정

* refactor: Repository 추상화

* fix: NestedScrollView 로 수정

* refactor: 공유 뷰모델 초기화 코드 수정

* refactor: flow 수정

* refactor: 내 타입, 상대 타입 선택을 포함하는 하나의 객체 생성

---------

Co-authored-by: JUNWON LEE <[email protected]>

* [AN_REFACTOR] 홈 화면 MVVM 패턴 적용 (#59)

* refactor: 화면 이동 ViewModel 및 DataBinding 설정

* refactor: navigateState flow 적용

* ui: toolbar popupTheme 수정

* chore: ktlint

* refactor: home logo xml 수정

* refactor: Event 처리하는 인터페이스 네이밍 수정

* [AN_UI] 포켓몬 도감 목록에서 포켓몬 이름을 통해 검색 (#60)

* feat: 포켓몬 목록의 검색 바 ui 를 추가한다

* feat: 포켓몬 리스트에 서치바를 추가한다

* feat: 포켓몬 이름으로 검색한 포켓몬 결과 목록을 구한다

* feat: 포켓몬 목록 검색 바에서 포켓몬 이름을 검색하면 그를 포함하는 포켓몬을 구한다

* feat: 포켓몬 쿼리 리스너에서 이름으로 포켓몬들을 쿼리한다

* refactor: 포켓몬 검색 쿼리를 데이터바인딩으로 쿼리한다

* feat: 가짜 포켓몬 목록 데이터 소스에서 쿼리된 포켓몬 목록을 리턴한다

* feat: 포켓몬 목록 레포지토리에서 모든 포켓몬 목록과 검색된 포켓몬 목록을 flow 로 래핑하여 리턴한다

* feat: 포켓몬 목록 데이터 리스트를 ui 모델로 변환한다

* refactor: 레포지토리의 Flow 로 감싸진 결과를 가지고 ui 에 쿼리된 포켓몬을 표시한다

* refactor: 포켓몬 목록 레포지토리의 기존 함수 제거하고 함수명을 변경한다

- 포켓몬 목록을 리턴하는 함수 제거
- 포켓몬 목록 플로우를 리턴하는 함수 이름 변경
    pokemons2 -> pokemons

* refactor: 포켓몬 목록 프래그먼트에 필요없는 애노테이션 제거

* chore(PokemonQueryListener -> PokemonQueryHandler) 이름 변경

- 새로 정해진 컨벤션에 맞춰 수정한다

* refactor: 가짜 포켓몬 목록 데이터소스의 메서드 네이밍 변경

- searchedPokemons -> pokemons

* feet: 가짜 포켓몬 목록 레포지토리의 Flow 가 아닌 결과를 리턴하는 메서드

* refactor: 포켓몬 목록 뷰모델에서 flow 로 래핑되지 않은 포케몬 목록 반환 함수를 사용한다

* refactor: PokemonListRepository 의 flow 를 리턴하는 함수 제거

* refactor(PokeMonItemClickListener -> PokemonDetailNavigateHandler) 이름 변경

* refactor: 포켓몬 목록 뷰모델 map 함수를 mapLatest 로 바꾼다

* [AN_REFACTOR] 특성 화면 MVVM 패턴 적용 (#67)

* refactor: ability item xml 수정

* refactor: MVVM 패턴 적용

* chore: ktlint

* refactor: 마지막 특성 보이도록 수정

* refactor: ActionHandler -> uiEventHandler 네이밍 변경

* refactor: navigationEvent 변수명 수정

* [AN-FEAT] 포켓몬 목록를 네트워크를 통해 로드 (#65)

* chore: pokemon response 패키지 이름 변경 poke -> pokemon

* test: PokemonTypeResponse 를 Type 데이터로 매핑한다

* test: 포켓몬 타입 응답을 만드는 testFixture

* feat: 포켓몬 타입 목록 응답을 toData 로 맏드는 확장 함수, testFixture 사용

* test: 포켓몬 응답과 포켓몬 응답 목록을 생성하는 test fixture

* feat: 포켓몬 응답, 포켓몬 응답 목록을 데이터로 매핑한다

* feat: 네트워크를 통해 포켓몬 데이터들을 가져온다

* test: RemotePokemonListDataSourceTest 를 통해 포켓몬들을 불러온다

* refactor: 서비스, 데이터소스, 레포지토리 함수를 suspend 로 변경한다

* refactor: 기본 포켓몬 목록 레포지토리에서 포켓몬 목록을 가져온다

* refactor(PokemonListViewModel): 포켓몬 목록을 네트워크를 통해 가져온다

* test(RemotePokemonListDataSourceTest): 모킹을 통해 포켓몬 목록 로드한다

* refactor: 포켓몬 목록에서 쿼리를 통해 검색된 포켓몬들을 로드한다

* test(RemotePokemonListDataSourceTest): 포켓몬 이름으로 쿼리된 포켓몬 목록을 불러온다

* chore(RemotePokemonListDataSourceTest): 변수 명 개선

* chore: 가짜 포켓몬 목록 데이터 소스 & 레포지토리를 테스트 패키지로 옮긴다

* test(PokemonListViewModelTest): 모든 포켓몬 로드, 쿼리된 포켓몬 로드

* chore: PokemonResponse 에서 Pokemon 으로 매핑하는 함수 위치를  DTO 레이어로 변경한다

* chore: TypeResponse 에서 Type 으로 매핑하는 함수 위치를  DTO 레이어로 변경한다

* chore: TestFixture 의 패키지, 파일 분리

* [AN-FEAT] 특성 목록 네트워크 연결  (#78)

* feat: 특성 response를 data로 매핑

* feat: 특성 데이터를 remote에서 가져온다

* feat: ViewModel에 repository DI

* feat: 매핑 함수 구현

- data to ui
- response to data

* feat: repo,source 중단 함수 추가

* feat: 특성 데이터 연결

* chore: ktlint

* refactor: Activity 함수 분리

* chore: UiModel 패키지 이동

* refactor: 특성 api 스펙 변경

* chore: kotlin convention

* chore: DataSource 프로퍼티 네이밍 변경

* [AN-FEAT] 포켓몬 상세 데이터를 네트워크를 통해 로드 (#81)

* feat: 포켓몬 상세 응답 데이터 클래스

* feat: PokemonDetailResponse 데이터 레이어의 모델로 매핑

* feat: PokeDexService 에서 중단 가능한 함수, BaseResponse 로 감싸서 리턴한다

* feat: RemotePokemonDetailDataSource 에서 서비스를 통해 데이터를 받는다

* feat: PokemonDetailRepository 에서 상세 정보를 로드한다

* fix: PokemonResponse 의 name 프로퍼티에 @SerialName("koName")

* fix: 포켓몬 상세 응답을 데이터로 매핑

- 영어로 변경

* fix: fragment_pokemon_list.xml 에 필요없는 hint 제거

* feat: 스탯 이름을 ui 에 맞게 매핑한다

ex) "attack" -> "공격"

* refactor: PokemonUiState 를 도입한다

* chroe: fake 객체를 테스트 패키지로 옮긴다

* feat: 프래그먼트 확장 함수 선언해서 포켓몬 상세 화면에서 이름 바인딩

* test(PokemonDetailViewModelTest): 포켓몬 상세 데이터 로드

* fix(FragmentExtension): vararg 인수 전달을 위한 star 연산자 추가

* [AN-FEAT] 특성 검색 기능 구현 (#82)

* ui: searchView 구현

* chore: 검색 BindingAdapter 패키지 이동

* feat: 특성 이름으로 쿼리

* chore: ktlint

* feat: 특성 불러올 때 UiState 적용

* chore: ktlint

* [AN-FEAT] 상성 화면 세부적인 기능 수정 및 추가 (#69)

* fix: 내 타입, 상대타입1,2 모두 선택시 반환되는 데이터 형식 수정

- 상대 타입 둘 다 같은 상성 결과임에도 분리된 형식으로 반환했던 오류 수정

* feat: 상성 결과에 "대등한" 경우도 보여 주는 기능 구현

* feat: 상성 결과를 지정된 순서대로 화면에 표기

* feat: 선택된 타입이 없을 경우 보여지는 화면 구현

* chore: 불필요한 파일 제거

* chore: 네이밍 통일을 위한 변경

* ui: 선택 불가능한 타입 구현

* feat: 상대 타입으로 이미 선택되었을 경우, 선택하지 못하도록 설정

* chore: 함수 분리 및 네이밍 수정

* ui: 상성 결과 텍스트에 bold 적용

* refactor: Type model 통일

- 기존 TypeInfo 사용 대신 Type Enum 사용으로 변경

* refactor: 타입 결과 아이템 정렬

- GridLayoutManager 로 수정

* test: 타입 뷰모델 테스트

* refactor: string resource 적용

* chore: UI 모델 변환 메서드 네이밍 변경

---------

Co-authored-by: murjune <[email protected]>

* [AN-CONFIG] 개발 서버 다운시 Local host 로 �리다이렉션 (#93)

* config: android/docker 패키지 gitignore

* config: network_security_config 추가

* config:  gitignore 위치 수정

* feat:  failed connected to develop server, connect to localhost

* style: ktlint Format

* �fix: pr_builder.yaml

* [AN_CI] PR Open 될 때 reviewers, assignees, labels 자동 할당  (#97)

* ci: add auto label script

* ci: reviewer list

* ci: add assign-reviewers-labels

* [AN-FEAT] 특성 상세 네트워크 연결  (#96)

* refactor: response 값 변경

* feat: 네트워크를 통해 data를 받는다

* chore: localhost 설정

* chore: AbilityService Api 경로 변경

* refactor: 특성리스트,특성상세 dto값 변경

* feat: data -> ui 매퍼 함수 추가

* refactor: detail mvvm 패턴 적용

* refactor: 특성검색 쿼리 로직 repo로 이동

* refactor: 불필요한 코드 삭제

* feat: 포켓몬 타입 표시

* chore: detail ui 패키지 이동

* feat: detailUiEvent 기능 연결

* chore: ktlint

* refactor: DataSource,Repository 하나로 합치기

* feat: invalid id 에러처리

* chore: ktlint

* refactor: invalid id 에러값일 때 error event

* chore: ktlintCheck

* [AN-FEAT] 포켓몬 상세 화면에 특성 (#87)

* feat: 포켓몬 상세 응답 데이터 클래스

* feat: PokemonDetailResponse 데이터 레이어의 모델로 매핑

* feat: PokeDexService 에서 중단 가능한 함수, BaseResponse 로 감싸서 리턴한다

* feat: RemotePokemonDetailDataSource 에서 서비스를 통해 데이터를 받는다

* feat: PokemonDetailRepository 에서 상세 정보를 로드한다

* fix: PokemonResponse 의 name 프로퍼티에 @SerialName("koName")

* fix: 포켓몬 상세 응답을 데이터로 매핑

- 영어로 변경

* fix: fragment_pokemon_list.xml 에 필요없는 hint 제거

* feat: 스탯 이름을 ui 에 맞게 매핑한다

ex) "attack" -> "공격"

* refactor: PokemonUiState 를 도입한다

* chroe: fake 객체를 테스트 패키지로 옮긴다

* feat: 프래그먼트 확장 함수 선언해서 포켓몬 상세 화면에서 이름 바인딩

* test(PokemonDetailViewModelTest): 포켓몬 상세 데이터 로드

* fix(FragmentExtension): vararg 인수 전달을 위한 star 연산자 추가

* ui: 특성 타이틀 ui

* ui: 특성 제목 어댑터를 생성한다

* ui: 포켓몬 상세 화면에서 특성을 연결한다

* refactor: 포켓몬 상세 화면에 특성을 데이터 바인딩으로 연결한다

* feat: 포켓몬 상세에 특성 어댑터에 데코레이터를 추가한다

* fix: 포켓몬 상세의 특성 api 가 바뀐 것 반영

Before: 포켓몬 상세 api 의 특성 응답은 List<String> 타입
After: 포켓몬 상세 api 의 특성 응답은 List<AbilityResponse> 타입

* chore(PokemonDetailFragment): Timber 로그 제거

* fix: 포켓몬 상세 응답에서 특성 프로퍼티 네이밍 수정

* fix: 특성을 포켓몬 상세화면에서 쓰이는 ui Model 로 변경하는 매퍼의 위치를 옴ㄹ긴다

* chore: 포켓몬 목록에서 쓰이는 네비게이션 핸들러 네이밍 수정

* refactor: 포켓몬 상세 화면을 위한 navigate handler

* chore: 메서드 오타 수정 binPokemonDetail -> bindPokemonDetail

* chore: 이미지 바인딩 어댑터 메서드를 setImage 로 오버로딩하도록 네이밍 수정

* refactor: 포켓몬 상세 ui state 의 네이밍 수정

PokemonDetailUiModel -> Success

* fix: 포켓몬 상세 페이크 객체의 더미 데이터를 수정한다

* fix: 포켓몬 상세 페이크 객체의 더미 데이터를 수정한다

* chore: 포켓몬 검색 뷰 바인딩 어댑터 이름을 수정한다

* [AN-FEAT] 여백 없는 이미지로 리사이징하는 Transformation 구현 (#71)

* chore: pokemon response 패키지 이름 변경 poke -> pokemon

* test: PokemonTypeResponse 를 Type 데이터로 매핑한다

* test: 포켓몬 타입 응답을 만드는 testFixture

* feat: 포켓몬 타입 목록 응답을 toData 로 맏드는 확장 함수, testFixture 사용

* test: 포켓몬 응답과 포켓몬 응답 목록을 생성하는 test fixture

* feat: 포켓몬 응답, 포켓몬 응답 목록을 데이터로 매핑한다

* feat: 네트워크를 통해 포켓몬 데이터들을 가져온다

* test: RemotePokemonListDataSourceTest 를 통해 포켓몬들을 불러온다

* refactor: 서비스, 데이터소스, 레포지토리 함수를 suspend 로 변경한다

* refactor: 기본 포켓몬 목록 레포지토리에서 포켓몬 목록을 가져온다

* refactor(PokemonListViewModel): 포켓몬 목록을 네트워크를 통해 가져온다

* test(RemotePokemonListDataSourceTest): 모킹을 통해 포켓몬 목록 로드한다

* refactor: 포켓몬 목록에서 쿼리를 통해 검색된 포켓몬들을 로드한다

* test(RemotePokemonListDataSourceTest): 포켓몬 이름으로 쿼리된 포켓몬 목록을 불러온다

* chore(RemotePokemonListDataSourceTest): 변수 명 개선

* chore: 가짜 포켓몬 목록 데이터 소스 & 레포지토리를 테스트 패키지로 옮긴다

* test(PokemonListViewModelTest): 모든 포켓몬 로드, 쿼리된 포켓몬 로드

* feat: CropTransformation 적용

마진을 없앤다

* ui: 이미지 비율 0.8로 조정

* fix: scale 속성 삭제

* ui: 사진 크기 조정

* [AN_CI] PR Open 될 때 reviewers, assignees, labels 자동 할당  (#97)

* ci: add auto label script

* ci: reviewer list

* ci: add assign-reviewers-labels

---------

Co-authored-by: sh1mj1 <[email protected]>
[AN-FEAT] 여백 없는 이미지로 리사이징하는 Transformation 구현 (#71)

* chore: pokemon response 패키지 이름 변경 poke -> pokemon

* test: PokemonTypeResponse 를 Type 데이터로 매핑한다

* test: 포켓몬 타입 응답을 만드는 testFixture

* feat: 포켓몬 타입 목록 응답을 toData 로 맏드는 확장 함수, testFixture 사용

* test: 포켓몬 응답과 포켓몬 응답 목록을 생성하는 test fixture

* feat: 포켓몬 응답, 포켓몬 응답 목록을 데이터로 매핑한다

* feat: 네트워크를 통해 포켓몬 데이터들을 가져온다

* test: RemotePokemonListDataSourceTest 를 통해 포켓몬들을 불러온다

* refactor: 서비스, 데이터소스, 레포지토리 함수를 suspend 로 변경한다

* refactor: 기본 포켓몬 목록 레포지토리에서 포켓몬 목록을 가져온다

* refactor(PokemonListViewModel): 포켓몬 목록을 네트워크를 통해 가져온다

* test(RemotePokemonListDataSourceTest): 모킹을 통해 포켓몬 목록 로드한다

* refactor: 포켓몬 목록에서 쿼리를 통해 검색된 포켓몬들을 로드한다

* test(RemotePokemonListDataSourceTest): 포켓몬 이름으로 쿼리된 포켓몬 목록을 불러온다

* chore(RemotePokemonListDataSourceTest): 변수 명 개선

* chore: 가짜 포켓몬 목록 데이터 소스 & 레포지토리를 테스트 패키지로 옮긴다

* test(PokemonListViewModelTest): 모든 포켓몬 로드, 쿼리된 포켓몬 로드

* feat: CropTransformation 적용

마진을 없앤다

* ui: 이미지 비율 0.8로 조정

* fix: scale 속성 삭제

* ui: 사진 크기 조정

* [AN_CI] PR Open 될 때 reviewers, assignees, labels 자동 할당  (#97)

* ci: add auto label script

* ci: reviewer list

* ci: add assign-reviewers-labels

---------

Co-authored-by: sh1mj1 <[email protected]>

* [AN-REFACTOR] 특성 상세 페이지 Fragment로 마이그레이션 (#109)

* ui: ability fragment 작성

* refactor: ability fragment 연결

* ui: ability detail fragment 작성

* refactor: ability detail fragment 연결

* chore: 불필요한 activity xml 삭제

* feat: dex detail <-> ability detail 화면 전환

* feat: containerId 에러 처리

* chore: ktlint

* chore: container 에러시 early return

* chore: 불필요한 xml 코드 삭제

* refactor: 코드리뷰 반영

* [AN-UI] 타입 화면 수정 사항 반영 (#106)

* ui: 글자 사이즈 및 padding 값 조절

* refactor: 파일 분리 및 ui 모델 프로퍼티 수정

* chore: 상성 결과 정렬 로직 수정

* refactor: 함수 분리 및 코드 정리

* refactor: 리뷰 반영 🚀

* ui: 여백 dp 살짝 조절

* [AN_REFACTOR] 멀티 모듈로 분리 및 testing 모듈 추가 (#110)

* feat: testing 모듈 추가

* build: 불필요한 ktlint plugins 삭제

* build: sub module 에 모두 test 의존성 및 kotlinCompiler 추가

* build: testing module 에 코루틴, kotlin 의존성 추가

* chore: 패키지 네이밍 testing으로 변경

* 임시 저장

* build: project 단 pacelize, jbm, library 추가

* feat: local 모듈 분리

* feat: remote 모듈 분리

* feat: data 모듈 분리

* feat: testing 모듈 분리

* feat: module들 app에 연결

* chore: 린트 체크

* build: local, testing exclude meta

---------

Co-authored-by: Yehyun Jo <[email protected]>
Co-authored-by: JoYehyun <[email protected]>

* [AN_FEAT] 포켓몬, 특성 초성 검색 (#111)

* feat: testing 모듈 추가

* build: 불필요한 ktlint plugins 삭제

* build: sub module 에 모두 test 의존성 및 kotlinCompiler 추가

* build: testing module 에 코루틴, kotlin 의존성 추가

* chore: 패키지 네이밍 testing으로 변경

* 임시 저장

* build: project 단 pacelize, jbm, library 추가

* feat: local 모듈 분리

* feat: remote 모듈 분리

* feat: data 모듈 분리

* feat: testing 모듈 분리

* feat: module들 app에 연결

* feat: stringmatcher module

* feat: 초성 검색 구현

* feat: 특성, 포켓몬 초성 검색 구현완

* style: ktlint format

* feat: 웹뷰 연결 (#119)

* [AN-FEAT] 특성 ViewModel Test (#126)

* feat: fakeRepository 추가

* feat: fakeRepository test 작성

* feat: 특성 ViewModel test 작성

* feat: 특성 상세 ViewModel test 작성

* chore: ktlint

* chore: 코드리뷰 반영

* [AN-REFACTOR] 상성 데이터 레이어 수정 (#116)

* feat: 스텔라 타입 추가

* refactor: 상성 데이터 테이블 구조 변경

* refactor: fake 레포지토리를 활용하여 테스트 구현

* chore: 불필요한 파일 제거

* refactor: private 추가

* fix: 테스트 fail 해결

* refactor: 변수명 수정 및 코드 정리

* test: 테스트 코드 추가 및 수정

* [AN-REFACTOR] 앱바 중복 코드 분리 및 커스텀 (#137)

* refactor: 화면별 타이틀 설정

- 툴바 Include 대신 개별 toolbar로 정의

* refactor: 반복되는 공통 코드 base activity로 이동

* ui: drawable 추가 및 수정

* refactor: toolbar 연결

* refactor: searchView style 정의

* refactor: ToolbarActivity & ToolbarFragment 정의

* [AN-Config] Firebase Analytics, Crashlytics 연동 (#146)

* CI: PR_Buider 수정 (assembleDebug)

* build: firebase 설정

* build: change Semantic Versioning

* build: debug keyStore, applicationIdSuffix 설정, 초기세팅

* build: debug 모드 app_name

여기에 추가로 google-service.json 들어감

* init: analytics module

* build: alpha, beta version 추가

* feat: Version 별 AnalyticsLogger

* test: TestLogger

* utils: startActivity

* utils: Analytics Extensions

* feat: Home Activity 에 Logger 추가

* style: ktFormat

* refactor: Click Event 상수화

* style: ktlintFormat

* CI: Google-service 설정 추가

* ci: debug.keystore

---------

Co-authored-by: Yehyun Jo <[email protected]>

* feat: api testOptions 추가 (#148)

* [AN-UI] 포켓몬 상세, 목록 화면의 타입 위치 수정 (#136)

* refactor: pokemon detail 화면의 view 계층 개선

* refactor: pokemon detail 화면에서 type chip 사용

* refactor: pokemon detail 타입을 보여주는 방법 변경

- 포켓몬 이름 아래에 타입들을 보여준다
- 리사이클러뷰 제거, LinearLayout 에 동적으로 타입들을 추가

* refactor: pokemon detail 화면에서 타입을 추가하는 역할을 어댑터에 위임

* refactor: item pokemon list pokemon 프리뷰 화면의 타입 디자인 개선

- 타입을 포켓몬 이름 아래에 위치시킨다
- 무거운 리사이클러뷰를 삭제한다
- 어댑터의 함수 파라미터에 글자와 아이콘 크기를 넘긴다

* chore: PokemonTypesAdapter 의 패키지 위치 변경

* fix: 아이템 뷰에 타입이 중복해서 추가되는 경우를 방지한다

- viewGroup.removeAllViews() 메서드 추가

* feat: layoutParams 의 높이와 너비를 지정하는 바인딩 어댑터

* refactor: TypeChip 에 ui 설정 데이터 클래스를 만들고 이를 item_type 에 데이터바인딩

* refactor: 상성 보기에서 사용하는 xml 파일을 변경한다

* chore: 타입 사이의 공간 spacing 네이밍

* fix:포켓몬 목록에서 포켓몬 사진 padding 조정

* fix: PoketmonViewHolder -> PokemonViewHolder 네이밍 변경

* refactor: 포켓몬 상세 xml 파일 뷰 계층 제거

- 스탯을 제외하고 뷰 계층 제거

* refactor: 포켓몬 상세 포켓몬 이미지 cropped 가 아닌 이미지 사용

* fix: 포켓몬 목록 리사이클러뷰 아이템 사이 간격 조정

* fix: 타입 사이의 spacing 의 크기를 dp 로 적용

* refactor: PokemonTypeViewConfiguration 의 프로퍼티 네이밍 변경, spacingBetweenTypes 은 어댑터의 파라미터로 옮긴다

* [AN-FEAT] Ability, Dex List InMemory 캐싱 (#149)

* feat: ability List 캐싱

* feat: dex List 캐싱

* style: ktLintFormat

* refactor: Dex로 네이밍 변경, Fake 레포지토리 변경

* style: ktFormat

* [AN-FEAT] 설문조사 링크 연결 및 Analytics 적용 (#160)

* feat: 피드백 링크 연결

* ui: 메뉴 아이템 위치 조절

* ui: 상성 결과 텍스트 디자인 수정

* feat: 로깅 적용

* feat: logScreenView msg 수정

---------

Co-authored-by: murjune <[email protected]>

* [AN-UI] 홈,특성 상세 가로 화면 대응 (#161)

* ui: 가로화면 drawable 추가

* ui: 가로화면 xml 작성

* chore: androidTest 패키지 구조 변경

* test: home 회전 테스트 추가

* test: home 회전 테스트 수정

* feat: 특성화면 세로모드로 고정

* fix: 특성 detail api 통신 수정

* fix: 포켓몬 detail api 통신 수정

* test: home ui test 추가

* test: api 27-29 테스트시 onIdle 추가

* chore: 세로고정 삭제

* ui: 특성 상세 가로 xml 작성

* feat: api testOptions 추가 (#148)

* chore: ktlintCheck

* [AN-UI] 포켓몬 상세, 목록 화면의 타입 위치 수정 (#136)

* refactor: pokemon detail 화면의 view 계층 개선

* refactor: pokemon detail 화면에서 type chip 사용

* refactor: pokemon detail 타입을 보여주는 방법 변경

- 포켓몬 이름 아래에 타입들을 보여준다
- 리사이클러뷰 제거, LinearLayout 에 동적으로 타입들을 추가

* refactor: pokemon detail 화면에서 타입을 추가하는 역할을 어댑터에 위임

* refactor: item pokemon list pokemon 프리뷰 화면의 타입 디자인 개선

- 타입을 포켓몬 이름 아래에 위치시킨다
- 무거운 리사이클러뷰를 삭제한다
- 어댑터의 함수 파라미터에 글자와 아이콘 크기를 넘긴다

* chore: PokemonTypesAdapter 의 패키지 위치 변경

* fix: 아이템 뷰에 타입이 중복해서 추가되는 경우를 방지한다

- viewGroup.removeAllViews() 메서드 추가

* feat: layoutParams 의 높이와 너비를 지정하는 바인딩 어댑터

* refactor: TypeChip 에 ui 설정 데이터 클래스를 만들고 이를 item_type 에 데이터바인딩

* refactor: 상성 보기에서 사용하는 xml 파일을 변경한다

* chore: 타입 사이의 공간 spacing 네이밍

* fix:포켓몬 목록에서 포켓몬 사진 padding 조정

* fix: PoketmonViewHolder -> PokemonViewHolder 네이밍 변경

* refactor: 포켓몬 상세 xml 파일 뷰 계층 제거

- 스탯을 제외하고 뷰 계층 제거

* refactor: 포켓몬 상세 포켓몬 이미지 cropped 가 아닌 이미지 사용

* fix: 포켓몬 목록 리사이클러뷰 아이템 사이 간격 조정

* fix: 타입 사이의 spacing 의 크기를 dp 로 적용

* refactor: PokemonTypeViewConfiguration 의 프로퍼티 네이밍 변경, spacingBetweenTypes 은 어댑터의 파라미터로 옮긴다

* [AN-FEAT] Ability, Dex List InMemory 캐싱 (#149)

* feat: ability List 캐싱

* feat: dex List 캐싱

* style: ktLintFormat

* refactor: Dex로 네이밍 변경, Fake 레포지토리 변경

* style: ktFormat

---------

Co-authored-by: murjune <[email protected]>
Co-authored-by: sh1mj1 <[email protected]>

* [AN-FIX] 베타 버전 배포 전 2차 QA 버그 수정  (#166)

* ui: 가로화면 drawable 추가

* ui: 가로화면 xml 작성

* chore: androidTest 패키지 구조 변경

* test: home 회전 테스트 추가

* test: home 회전 테스트 수정

* feat: 특성화면 세로모드로 고정

* fix: 특성 detail api 통신 수정

* fix: 포켓몬 detail api 통신 수정

* test: home ui test 추가

* test: api 27-29 테스트시 onIdle 추가

* chore: 세로고정 삭제

* ui: 특성 상세 가로 xml 작성

* feat: api testOptions 추가 (#148)

* chore: ktlintCheck

* [AN-UI] 포켓몬 상세, 목록 화면의 타입 위치 수정 (#136)

* refactor: pokemon detail 화면의 view 계층 개선

* refactor: pokemon detail 화면에서 type chip 사용

* refactor: pokemon detail 타입을 보여주는 방법 변경

- 포켓몬 이름 아래에 타입들을 보여준다
- 리사이클러뷰 제거, LinearLayout 에 동적으로 타입들을 추가

* refactor: pokemon detail 화면에서 타입을 추가하는 역할을 어댑터에 위임

* refactor: item pokemon list pokemon 프리뷰 화면의 타입 디자인 개선

- 타입을 포켓몬 이름 아래에 위치시킨다
- 무거운 리사이클러뷰를 삭제한다
- 어댑터의 함수 파라미터에 글자와 아이콘 크기를 넘긴다

* chore: PokemonTypesAdapter 의 패키지 위치 변경

* fix: 아이템 뷰에 타입이 중복해서 추가되는 경우를 방지한다

- viewGroup.removeAllViews() 메서드 추가

* feat: layoutParams 의 높이와 너비를 지정하는 바인딩 어댑터

* refactor: TypeChip 에 ui 설정 데이터 클래스를 만들고 이를 item_type 에 데이터바인딩

* refactor: 상성 보기에서 사용하는 xml 파일을 변경한다

* chore: 타입 사이의 공간 spacing 네이밍

* fix:포켓몬 목록에서 포켓몬 사진 padding 조정

* fix: PoketmonViewHolder -> PokemonViewHolder 네이밍 변경

* refactor: 포켓몬 상세 xml 파일 뷰 계층 제거

- 스탯을 제외하고 뷰 계층 제거

* refactor: 포켓몬 상세 포켓몬 이미지 cropped 가 아닌 이미지 사용

* fix: 포켓몬 목록 리사이클러뷰 아이템 사이 간격 조정

* fix: 타입 사이의 spacing 의 크기를 dp 로 적용

* refactor: PokemonTypeViewConfiguration 의 프로퍼티 네이밍 변경, spacingBetweenTypes 은 어댑터의 파라미터로 옮긴다

* [AN-FEAT] Ability, Dex List InMemory 캐싱 (#149)

* feat: ability List 캐싱

* feat: dex List 캐싱

* style: ktLintFormat

* refactor: Dex로 네이밍 변경, Fake 레포지토리 변경

* style: ktFormat

* fix: 존재하지 않음 경우  filtering

* ui: ability pokemon cropImageUrl 적용

* ui: dex detail toolbar 적용

* fix: 뒤로가기 시 Type 없어지는 이슈 해결

* feat: 임시로 로딩뷰 띄우기

* style: ktFormat

* 버저닝

* fix: test 이슈 해결, 해결된 문제 삭제

---------

Co-authored-by: kkosang <[email protected]>
Co-authored-by: SangHyun Ko <[email protected]>
Co-authored-by: sh1mj1 <[email protected]>

* [0.1.20-alpha/AN-FEAT] Click Event에 Throttle 처리 (#174)

* feat: onSingleClick BindingAdapter

* ui: Home, Type, Ability, Dex 에 적용

* style: ktFormat

* [0.1.20-alpha/AN-FIX, AN-UI] 포켓몬 상세 화면 스탯 UI 색깔과 타입 UI  (#177)

* feat: 포켓몬 상세 화면에서 능력치 progress bar 의 크기 증가, 색 적용

* feat: color 추가 pokemon 회색

* refactor: 포켓몬 스탯 ui 에 색을 입힌다

* refactor: 포켓몬 상세 화면에서 타입 UI 를 동ㄱ라미로 변경

* test: 포켓몬 상세 데이터의 타입 ui model 의 변경에 따른 테스트 변경

* refactor: 기존에 사용하던 type to typeUiModel 매핑 함수 제거

* [0.1.20-alpha/AN-FIX] UI 이슈 사항 해결 (#176)

* fix: 상성 선택 위치 변경

* ui: add 버튼 추가

* feat: 로고 이미지 크기 변경

* feat: 특성, 포켓몬 디테일 화면에 홈버튼 추가

* ui: 플러스 버튼 수정

* refactor: 액티비티 이동 코드 수정

* chore: 린트 수정

* [0.1.20-alpha/AN-UI] 상성 가로 화면 대응 (#178)

* ui: type land 버전 xml 생성

* ui: 화면 모드에 따라 상성 spanCount 다르게 설정

* test: ui 테스트

* [0.1.20.alpha/AN-FEAT] 네트워크 ConnectException 및 HttpException Handling (#179)

* build: 버전업 1.2.0

* feat: 인터넷 연결 확인 함수

* feat: NetworkErrorActivity

* feat: startActivity util 함수 default args

* refactor: ErrorViewModel

* feat: AbilityDetail에 에러핸들링

* feat: AbilityList에 에러핸들링

* feat: PokemonList 에러핸들링

* style: ktFormat

* refactor: logger ViewModel 에서 주입 받도록 수정

* [0.1.20-alpha/AN-UI, AN-FIX] 특성 description 의 줄 수를 조정한다 (#181)

* feat: item_ability_description 가 다른 아이템의 간격을 변하게 하지 않도록 조정한다

* feat: 특성 상세 화면에서는 maxLine 이 동작하지 않도록 해서 특성 description 전체 내용을 보여주도록 한다

---------

Co-authored-by: murjune <[email protected]>

* [0.1.20-alpha/AN-UI, AN-FEAT] 포켓몬 이미지를 로딩 중에 progress indicator 를 보인다 (#180)

* feat: 포켓몬 상세 화면에 material progressbar 추가

* feat: 포켓몬 상세 화면 이미지 로드 전에 progress bar 보여주기

* fix: 포켓몬 상세에서 progress indicator 보여주는 방식 변경

* feat: 포켓몬 목록 화면에서 포켓몬 progress indicator 추가

* refactor: progress bar 를 사용하는 glide 리스너를 하나의 파일로 분리한다

* chore: progress indicator 색상 변경

* fix: 포켓몬 목록에서 spanCount 가 2

* fix: 포켓몬 아이템에 progressbar 제거

* feat: glide placeholder 에 피카츄 실루엣, 에러에는 메타몽 실루엣

* [0.1.2-alpha/AN-FEAT] Firebase Dev, Alpha 버전 로깅 툴 해제 (#184)

* fix: Firebase Dev 버전 로깅 툴 해제

* ktlint

* [0.1.20-alpha/AN-FIX, AN_UI] 특성 상세 화면에서 포켓몬의 타입의 위치 변경 (#186)

* feat: 포켓몬 상세 화면에 material progressbar 추가

* feat: 포켓몬 상세 화면 이미지 로드 전에 progress bar 보여주기

* fix: 포켓몬 상세에서 progress indicator 보여주는 방식 변경

* feat: 포켓몬 목록 화면에서 포켓몬 progress indicator 추가

* refactor: progress bar 를 사용하는 glide 리스너를 하나의 파일로 분리한다

* chore: progress indicator 색상 변경

* feat: item_ability_description 가 다른 아이템의 간격을 변하게 하지 않도록 조정한다

* feat: 특성 상세 화면에서는 maxLine 이 동작하지 않도록 해서 특성 description 전체 내용을 보여주도록 한다

* feat: 특성 상세에서 포켓몬들의 타입을 이름 아래의 추가한다

* refactor: 로딩 문자열을 strings 리소스로 옮긴다

* refactor: AbilityDetailViewHolder 에서 사용하던 포켓몬 타입 리사이클러뷰 제거

* fix: 타입 텍스트 2줄로 넘어가는 문제 해결

* ui: ability detail 이미지 크기 조정

* feat: 특성 도감 empty 뷰

* feat: dex List ladscape시 span 4개

* style: ktFormat

* feat: dex detail 기본 스탯 visible 처리

---------

Co-authored-by: murjune <[email protected]>

* [0.1.3-alpha/AN-FIX] 홈화면 이동 기능 수정 (#189)

* fix: 포켓몬 상세 페이지에서 홈 화면 이동

* ui: 상성 가로 화면 '+' 이미지 추가

* [0.1.30-alpha/AN-FIX, AN_UI] 포켓몬 디테일 화면 가로 화면 대응 (#195)

* feat: 포켓몬 상세 가로 화면 대응

* build: version 0.1.30 으로

* [0.2.0.alpha/AN_UI] 홈 화면 메뉴 추가 (#204)

* ui: 홈 메뉴와 관련된 아이콘 추가

* ui: 추가된 메뉴 xml 작성

* feat: 바이옴 화면 추가

* feat: 아이템 화면 추가

* feat: 홈 화면과 연결

* style: ktFormat

* [0.2.0.alpha/AN-FEAT] remote ApiResponse 로 적용, BaseResponse 삭제, app 단 retrofit 의존성 걷어내기 (#207)

* feat: ApiResponse

* feat: CallAdapter 를 통해 기존 Call intercept 후 Service Return 타입 ApiResponse

* refactor: injector 패키지로 이동

* feta: BaseResponse UnWrap

* test: Ability Service

* style: ktFormat

* feat: PokeException

* feat: ApiResponseExtensions

* refactor: PokeException 적용

* style: ktFormat

* feat: app 단에 PokeExcetion 적용

* style: ktFormat

* [0.2.0.alpha/AN-FEAT, AN_UI] 포켓몬 상세 화면 Tab layout 틀  (#209)

* feat: 포켓몬 상세 액티비티 이미지와 이름, 툴바 위치

* feat: 포켓몬 상세 포켓몬 이미지와 타입 위치

* feat: context 확장 함수 stringOf 추가해서 여러 파라미터를 받을 수 있다

* feat: 포켓몬 상세에서 viewmodel 로부터 데이터를 받아온다

* feat: 포켓몬 상세 하단에 탭 레이아웃과 뷰 페이저 스켈레톤

* refactor: 포켓몬 상세의 뷰페이저 클래스 분리, 메서드 분리

* refactor: 포켓몬 상세의 뷰페이저 클래스 분리, 메서드 분리

* refactor: 디폴트로 생성된 프래그먼트에서 필요없는 정보 지우기

* feat: 포켓몬 상세 tablayout 에 스타일 적용

* feat: 포켓몬 목록에서 포켓몬 상세 액티비티로 연결

* feat: 뷰페이저 프래그먼트들 lint

* feat: 포켓몬 상세 툴바 연결

* feat: 포켓몬 상세에서 능력치와 특성 연결

* feat: 포켓몬 상세에서 능력치와 특성 연결

* feat: Manifest 에 포켓몬 상세 액티비티를 추가한다

* feat: 포켓몬 상세에 스크롤 뷰 추가

* refactor: PokemonDetailPagerAdapter 프래그먼트를 Listof 로

* refactor: PokemonActivity 의 intent 제거

* refactor: 포켓몬 목록 프래그먼트의 주석 제거

* [0.2.0.alpha/FEAT-AN] RemoteDataSource 에서 erro log 심기 (#208)

* feat: ApiResponse

* feat: CallAdapter 를 통해 기존 Call intercept 후 Service Return 타입 ApiResponse

* refactor: injector 패키지로 이동

* feta: BaseResponse UnWrap

* test: Ability Service

* style: ktFormat

* feat: PokeException

* feat: ApiResponseExtensions

* refactor: PokeException 적용

* style: ktFormat

* feat: app 단에 PokeExcetion 적용

* style: ktFormat

* feat: Analytics Stub

* build: data에 analytics 모듈 추가

* feat: 서버 통신 로직에 logger 추가

* [0.2.0.alpha/AN_UI] 바이옴 리스트 화면 추가 (#214)

* ui: 홈 메뉴와 관련된 아이콘 추가

* ui: 추가된 메뉴 xml 작성

* feat: 바이옴 화면 추가

* feat: 아이템 화면 추가

* feat: 홈 화면과 연결

* style: ktFormat

* ui: 바이옴 아이템 및 페이지 xml 작성

* feat: 바이옴 xml 연결

* feat: 바이옴 상세 화면 구현 및 연결

* feat: 바이옴 디테일 화면 이동

* style: ktFormat

* feat: dummy data 추가

* refactor: 불필요한 부분 삭제

* [0.2.0.alpha/AN-FEAT] 네트워크 ReConnection 시 Refresh (#212)

* feat: ApiResponse

* feat: CallAdapter 를 통해 기존 Call intercept 후 Service Return 타입 ApiResponse

* refactor: injector 패키지로 이동

* feta: BaseResponse UnWrap

* test: Ability Service

* style: ktFormat

* feat: PokeException

* feat: ApiResponseExtensions

* refactor: PokeException 적용

* style: ktFormat

* feat: app 단에 PokeExcetion 적용

* style: ktFormat

* feat: EventFlow, RefreshEventBus

* refactor: 패키지 이동, 네이밍 변경

* ui: poke dex empty 뷰

* feat: NetworkException 시 리프레시 하도록

* style: ktFormat

* chore: intent 삭제

* [0.2.0.alpha/AN_FEAT, AN_UI] 포켓몬 상세 화면에서 기술들을 보여준다 (#226)

* feat: 포켓몬 상세 액티비티 이미지와 이름, 툴바 위치

* feat: 포켓몬 상세 포켓몬 이미지와 타입 위치

* feat: context 확장 함수 stringOf 추가해서 여러 파라미터를 받을 수 있다

* feat: 포켓몬 상세에서 viewmodel 로부터 데이터를 받아온다

* feat: 포켓몬 상세 하단에 탭 레이아웃과 뷰 페이저 스켈레톤

* refactor: 포켓몬 상세의 뷰페이저 클래스 분리, 메서드 분리

* refactor: 포켓몬 상세의 뷰페이저 클래스 분리, 메서드 분리

* refactor: 디폴트로 생성된 프래그먼트에서 필요없는 정보 지우기

* feat: 포켓몬 상세 tablayout 에 스타일 적용

* feat: 포켓몬 목록에서 포켓몬 상세 액티비티로 연결

* feat: 뷰페이저 프래그먼트들 lint

* feat: 포켓몬 상세 툴바 연결

* feat: 포켓몬 상세에서 능력치와 특성 연결

* feat: 포켓몬 상세에서 능력치와 특성 연결

* feat: Manifest 에 포켓몬 상세 액티비티를 추가한다

* feat: 포켓몬 상세에 스크롤 뷰 추가

* chore: 포켓몬 상세 페이지 tab 재목 리소스로

* refactor: 포켓몬 상세에서 옵저빙 기능을 메서드로 분리한다

* feat: 포켓몬 상세 특성에 decoration

* feat: 포켓몬 상세에서 특성을 선택하면 특성 액티비티로 이동

* refactor: 특성 액티비티에 intent 함수 추가

* feat: Pokemon 능력치 프래그먼트에서 특성 상세로 가는 이벤트 핸들러를 바인딩한다

* feat: 특성 액티비티에서 디테일과 목록 프래그먼트로 네비게이팅한다

* refactor: 특성 상세 프래그먼트에서 포켓몬 상세 액티비티로 네비게이팅

* feat: 포켓몬 기술 데이터 클래스와 가짜 기술 데이터

* feat: 포켓몬 상세 데이터에 기술 리스트 프로퍼티 추가

* feat: 포켓몬 기술 카테고리(물리, 특수, 변화)

* feat: 포켓몬 기술의 카테고리를 MoveCategory 로

* feat: PokemonMove 에서 PokemonMoveUiModel 로 매핑

* feat: 포켓몬 디테일에서 ui 모델로 매핑할 때 기술 정보 추가

* test: 포켓몬 상세 뷰모델 데이터 로드

* fix: 포켓몬 상세의 tab 제목 버그 변경

* chore: PokemonMovesUiModel.kt -> PokemonMoveUiModel 네이밍 변경

* feat: 포켓몬 디테일 ui 매핑에 기술 추가

* chore: ktlint

* feat: 포켓몬 상세 기술 view 프로토 타입

* feat: 배틀 구도, 아이템 도감 기능 선택 시 coming soon toast message

* feat: 포켓몬 기술 모델 ui 모델 분리

* feat: 특수, 물리, 변화기 아이콘 추가

* feat: 텍스트 크기 조정

- issue: 빠르게 스크롤 시에 아이템이 날라가는 버그가 있다

* feat: 포켓몬 상세의 뷰 페이저 프래그먼트들의 height 를 다시 그림으로 구한다.

- `binding.root.requestLayout()``

* chore: 포켓몬 상세 기술 정보 텍스트 사이즈

* feat: 포켓몬 상세 기술에 itemDecoration 추가

* feat: 포켓몬 상세 기술에 divider 추가

* feat: 위력이 없는 기술은 - 로 표시한다

* test: PokemonDetailViewModelTest 테스트 수정

* chore: 포켓몬 상세 패키지 이동

* chore: 포켓몬의 기술을 move 에서 skill 이라는 네이밍으로 변경

* [0.2.0-alph/AN-UI,Fix] 화면 나갔다가 5초 이후에 오둥이 보이는 버그 수정 + clearFocus (#225)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* [0.2.0.alpha/AN-UI] 배틀 도우미 화면 구현 (#232)

* feat: 배틀 페이지 이동

* chore: 필요한 아이콘 추가

* chore: 필요한 배경 및 스타일 지정

* ui: 배틀 페이지 xml 작성

* ui: 날씨 선택 스피너 구현

* ui: 배틀 페이지 액티비티 구현

* feat: 날씨 데이터 연결

* refactor: adapter의 리스트 데이터를 업데이트할 수 있도록 변경

* fix: 린트 수정 및 충돌 해결

* [0.2.0.alpha/AN-FEAT] Pokemon FIlter, Sort data 로직 (#228)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* feat: Pokemon 프로퍼티 추가

* feat: Pokemon filter, sort

* feat: Pokemon filtering, Sort 로직

* test: FakeDexRepository

* style: KtFormat

* feat: 여러 filter 조건으로 받을 수 있도록 리팩토링

* refactor: filter 네이밍 변경

* [0.2.0.alpha/AN-UI] 바이옴 상세 화면 UI 구현 (#238)

* ui: tablayout xml 작성 및 연결

* ui: viewPager fragment xml 작성

* ui: tablayout(다음바이옴) xml 작성 및 연결

* ui: tablayout 디자인 변경

* ui: 야생 포켓몬 xml 작성

* ui: 야생 포켓몬 화면 구현

* ui: boss fragment 추가

* ui: tablayout(gym) 추가

* refactor: 야생 fragment uiModel 수정

* refactor: 바이옴 포켓몬 네이밍 수정

* ui: boss fragment 화면 작성 및 연결

* config: coil-svg 추가

* feat: svgUrl 바인딩 어댑터

* ui: 체육관 관장 fragment xml 작성 및 연결

* refactor: tablayout string-array 이용

* refactor: 패키지 이동 및 네이밍 수정

* ui: xml 수정

* style: ktFormat

* style: ktFormat

* refactor: ui 관련 코드리뷰 반영

* refactor: 다음 바이옴 네이밍 변경

* style: ktFormat

---------

Co-authored-by: kkosang <[email protected]>

* [0.2.0.alpha/AN-UI] 배틀 도우미 선택 화면 구현  (#239)

* ui: 배틀 선택 activity 정의

* ui: 포켓몬, 기술 선택 fragment 정의

* ui: 선택 UI 모델 정의

* ui: 포켓몬, 기술 선택 어댑터 정의

* chore: 패키지 분리

* ui: 아이템 선택 시 선택된 효과 표시

* ui: 선택된 포켓몬 정보 연결

* feat: 화면 이동 버튼 기능 구현

* chore: UiState 패키지 이동

- 배틀 선택 페이지 내에 있던 UiState를 배틀 패키지 내로 이동

---------

Co-authored-by: JoYehyun <[email protected]>

* [0.2.0.alpha/AN_FEAT] 포켓몬 상세에서 정보 화면, id(Long -> String) (#240)

* chore: 포켓몬 상세 탭 타이틀을 string-array 로 한다

* chore: strings 리소스에 dex 를 pokemon_list 와 detail 로

* feat: 포켓몬 상세에서 필요한 데이터 정의

* feat: 포켓몬 상세에서 필요한 데이터 바이옴 추가

* feat: 데이터 레이어 Biome 추가

* feat: 포켓몬 상세 정보에서 바이옴 정보 item UI

* feat: 포켓몬 상세 정보에서 바이옴 뷰 홀더

* feat: 포켓몬 상세 정보 프래그먼트 ui xml

* feat: 포켓몬 상세 정보에서 바이옴 어댑터

* feat: 포켓몬 상세 뷰모델에 바이옴 상세로 네비게이션하는 이벤트 추가

* feat: 바이옴 상세 액티비티 동반 객체에 intent 추가

* feat(PokemonInformationFragment): 포켓몬 상세 액티비티 뷰모델, 어댑터 연결

* feat(PokemonDetailActivity): 포켓몬 상세에서 바이옴 상세로 네비게이션

* fix(Biome): 바이옴 이미지 url 변경

* feat(PokemonInformationFragmen): 바이옴 라사이클러뷰에 데코레이션

* feat: 바이옴 타이틀과 바이옴 아이템 사이 구분선 추가

* feat(NewPokemon,NewPokemonUiModel): id 를 Long -> String

* feat presentation layer 에 NewPokeMonUiModel 적용

* feat(DexRepository): 포켓몬 리스트 리턴을 NewPokemon 으로

* feat(DexDataSource): 포켓몬 리스트 리턴을 NewPokemon 으로

* feat(NewPokemonDetail, NewAbility): response 에서 데이터로

* feat(DexRepository,RemoteDexDataSource.kt) 에서 데이터를 NewPokemonDetail 로

* feat(AbilityDetail): NewPokemon 리스트로

* refactor: 포켓몬 상세 액티비티 뷰모델에서 pokemonId 는 String

* feat: PokemonSkill 의 클래스 변경됨

* feat: 포켓몬 특성 id 를 Long -> String 으로

* refactor: Ability 의 id 를 Long -> String

- issue: 포켓몬 상세에서 특성 상세로 이동 시 예외

* refactor: 포켓몬 상세에서 특성 상세로 이동하도록 한다
- 이전 커밋(80872b6f) 이슈 해결

* chore: ktlint

* refactor: NewPokemon -> Pokemon

* refactor: NewSKill -> PokemonSkill

* refactor: NewPokemonDetail -> PokemonDetail

* chore: 네이밍 NewPokemonSKills -> PokemonDetailSkills

* refactor: NewAbility -> PokemonDetailAbility

* refactor: id: Long 을 모두 id: String 로 변경

* fix(data/unitTest): id 값을 String 으로

* fix: 특성 상세 프래그먼트에서 bundle 이 null 일 때 처리

* fix: Pokemon 클래스의 더미데이터 복구

* chore: 포켓몬 상세 특성 ui model 네이밍 변경

* feat: 기술머신으로 배우는 PokemonSkill 리스트 추가

* test: data 레이어의 모델의 id String 으로

* chore: ktlint

* refactor: getStringArrayOf 를 확장 유틸함수로

---------

Co-authored-by: sh1mj1 <[email protected]>

* [0.2.0.alpha/AN_FEAT_UI] PokemonList Filter, PokeChip, PokeChipGroup Component 구현 (#242)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* feat: Pokemon 프로퍼티 추가

* feat: Pokemon filter, sort

* feat: Pokemon filtering, Sort 로직

* test: FakeDexRepository

* style: KtFormat

* [2.0.0-alph/AN-UI,Fix] 화면 나갔다가 5초 이후에 들어오면 오둥이 보이는 버그 수정 + clearFocus (#225)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* [2.0.0.alpha/AN-UI] 배틀 도우미 화면 구현 (#232)

* feat: 배틀 페이지 이동

* chore: 필요한 아이콘 추가

* chore: 필요한 배경 및 스타일 지정

* ui: 배틀 페이지 xml 작성

* ui: 날씨 선택 스피너 구현

* ui: 배틀 페이지 액티비티 구현

* feat: 날씨 데이터 연결

* refactor: adapter의 리스트 데이터를 업데이트할 수 있도록 변경

* fix: 린트 수정 및 충돌 해결

* ui: PokeChip, PokeChipGroup

* [0.2.0.alpha/AN-FEAT] Pokemon FIlter, Sort data 로직 (#228)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* feat: Pokemon 프로퍼티 추가

* feat: Pokemon filter, sort

* feat: Pokemon filtering, Sort 로직

* test: FakeDexRepository

* style: KtFormat

* feat: 여러 filter 조건으로 받을 수 있도록 리팩토링

* refactor: filter 네이밍 변경

* refactor: packaing

* ui: Chip select 시 bold 처리

* fix: DexRepository isBlanck() 로 변경

* build: crashlytics impl 위치 변경

* chore: sample Activity 삭제

* feat: PokeFIlter 구현

* style: ktFormat

* refactor: 코드 정리

* chore: PokeChipSpec -> Spec

* chore: 불필요한 Timber 삭제

* style: ktFormat

* ui: PokeChip - ConerRadius, Padding 추가

* ui: PokeSpec - color, sizes naming 변경

---------

Co-authored-by: Yehyun Jo <[email protected]>

* [0.2.0.alpha/AN_FEAT] PokemonList Sort Chip 구현, Sort BottomSheet 구현 (#254)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* feat: Pokemon 프로퍼티 추가

* feat: Pokemon filter, sort

* feat: Pokemon filtering, Sort 로직

* test: FakeDexRepository

* style: KtFormat

* [2.0.0-alph/AN-UI,Fix] 화면 나갔다가 5초 이후에 들어오면 오둥이 보이는 버그 수정 + clearFocus (#225)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* [2.0.0.alpha/AN-UI] 배틀 도우미 화면 구현 (#232)

* feat: 배틀 페이지 이동

* chore: 필요한 아이콘 추가

* chore: 필요한 배경 및 스타일 지정

* ui: 배틀 페이지 xml 작성

* ui: 날씨 선택 스피너 구현

* ui: 배틀 페이지 액티비티 구현

* feat: 날씨 데이터 연결

* refactor: adapter의 리스트 데이터를 업데이트할 수 있도록 변경

* fix: 린트 수정 및 충돌 해결

* ui: PokeChip, PokeChipGroup

* [0.2.0.alpha/AN-FEAT] Pokemon FIlter, Sort data 로직 (#228)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* feat: Pokemon 프로퍼티 추가

* feat: Pokemon filter, sort

* feat: Pokemon filtering, Sort 로직

* test: FakeDexRepository

* style: KtFormat

* feat: 여러 filter 조건으로 받을 수 있도록 리팩토링

* refactor: filter 네이밍 변경

* refactor: packaing

* ui: Chip select 시 bold 처리

* fix: DexRepository isBlanck() 로 변경

* build: crashlytics impl 위치 변경

* chore: sample Activity 삭제

* feat: PokeFIlter 구현

* style: ktFormat

* refactor: 코드 정리

* chore: PokeChipSpec -> Spec

* chore: 불필요한 Timber 삭제

* style: ktFormat

* ui: PokeChip - ConerRadius, Padding 추가

* ui: PokeSpec - color, sizes naming 변경

* test: fake 객체 값 수정

* ui: check, sort icon 추가

* refactor: pokemon filter 코드 정리

* ui: SelectableUiModel parcelable 적용

* feat: pokemon Sort 구현

* feat: PokeFilterViewModel SavedStateHandle 적용

* style: ktformat

* feat: ui test margin 변경

* chore: Fake 삭제

* chore: ktFormat

* ci: Pr_builder 수정

* fix: test 수정

* ktFormat 이다 이말이야

---------

Co-authored-by: Yehyun Jo <[email protected]>

* [0.2.0.alpha/AN_FEAT] 바이옴 네트워크 연결 (#256)

* ui: tablayout xml 작성 및 연결

* ui: viewPager fragment xml 작성

* ui: tablayout(다음바이옴) xml 작성 및 연결

* ui: tablayout 디자인 변경

* [2.0.0-alph/AN-UI,Fix] 화면 나갔다가 5초 이후에 들어오면 오둥이 보이는 버그 수정 + clearFocus (#225)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* ui: 야생 포켓몬 xml 작성

* ui: 야생 포켓몬 화면 구현

* [2.0.0.alpha/AN-UI] 배틀 도우미 화면 구현 (#232)

* feat: 배틀 페이지 이동

* chore: 필요한 아이콘 추가

* chore: 필요한 배경 및 스타일 지정

* ui: 배틀 페이지 xml 작성

* ui: 날씨 선택 스피너 구현

* ui: 배틀 페이지 액티비티 구현

* feat: 날씨 데이터 연결

* refactor: adapter의 리스트 데이터를 업데이트할 수 있도록 변경

* fix: 린트 수정 및 충돌 해결

* ui: boss fragment 추가

* ui: tablayout(gym) 추가

* refactor: 야생 fragment uiModel 수정

* refactor: 바이옴 포켓몬 네이밍 수정

* ui: boss fragment 화면 작성 및 연결

* config: coil-svg 추가

* feat: svgUrl 바인딩 어댑터

* ui: 체육관 관장 fragment xml 작성 및 연결

* refactor: tablayout string-array 이용

* refactor: 패키지 이동 및 네이밍 수정

* ui: xml 수정

* style: ktFormat

* style: ktFormat

* feat: 바이옴 리스트 dto 작성

* feat: 바이옴 디테일 dto 작성

* feat: 바이옴 remote ApiService

* refactor: biomeDetail response 네이밍 변경

* feat: biome list mapper

* feat: biome detail mapper

* refactor: 다음 바이옴 네이밍 변경

* refactor: biome data -> pokemonBiome으로 네이밍 변경

* refactor: BiomeService 변경

* feat: biome pokemon data & mapper

* feat: biomeDataSource 구현

* feat: biomeRepository 구현

* feat: fake repo 생성

* feat: fake repo test 추가

* style: ktFormat

* refactor: 불필요한 코드 삭제

* feat: 바이옴 포켓몬 dto id값 추가

* test: 바이옴 포켓몬 dto id값 추가에 따른 테스트 수정

* style: ktFormat

---------

Co-authored-by: JUNWON LEE <[email protected]>
Co-authored-by: Yehyun Jo <[email protected]>

* [0.2.0.alpha/AN_FEAT, AN_UI] 포켓몬 상세 화면에서 진화 정보 (#257)

* feat: 단일 진화 UI Model

* feat(EvolutionsUiModel): 여러 진화 UIModel 을 목록으로 가진다

* feat(item_pokemon_detail_evolution): 진화 아이템

* feat: 포켓몬 진화 UiModel 에 imageUrl 추가

* fix(PokemonDetailViewModel): lint 깨지는 문제 해결

* feat(SingleEvolutionUiModel): add more dummy data 고라파덕

* feat(EvolutionsUiModel): 진화 체인이 있는지 확인한다

* feat(item_pokemon_detail_evolution): 진화 정보에서 하나의 포켓몬 개체

* feat: 진화 정보 뷰 홀더와 어댑터

* feat: 포켓몬 진화 아이템에 레벨 텍스트뷰 추가

* feat: 포켓몬 진화 정보 UI 완성

* feat: 포켓몬 진화 정보 이브이 더미 데이터 추가

* feat(NestedScrollableHost): viewpager2 와 리사이클러뷰의 스크롤 중첩을 위한 기능

* feat(PokemonEvolutionViewGroup): 포켓몬 진화 뷰그룹 커스텀 뷰

* refactor(PokemonEvolutionFragment): 포켓몬 진화 뷰 그룹 커스텀 뷰 사용

* feat: 포켓몬 상세 탭 레이아웃에 배경

* chore: 더미 데이터 이브이로

* [0.2.0.alpha/AN_FEAT]  배틀 도우미 세부 기능 구현  (#260)

* feat: 포켓몬 선택 시 이동 기능

* feat: 내 포켓몬, 상대 포켓몬 선택에 따라 페이지 구성 및 버튼 다르게 설정

* feat: 포켓몬을 선택해야만 다음 단계로 넘어가도록 설정

* feat: 선택한 데이터 BattleActivity로 전송

* feat: 선택된 데이터 반영

* feat: 선택 결과 불러오기 기능

* feat: 선택 결과 공유 로직

* refactor: 포켓몬, 기술 선택 뷰모델 분리

* feat: 기존 선택했던 데이터 유지

* feat: 기존 선택했던 스킬 데이터 유지 및 갱신 로직 구현

* refactor: 검색바 설정

* fix: 기존 데이터 유지 로직 수정

* [0.2.0.alpha/AN-FEAT] PokeList Room Cache, Splash 화면, Pokemon Api v2 서버 연결 (#262)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* feat: Pokemon 프로퍼티 추가

* feat: Pokemon filter, sort

* feat: Pokemon filtering, Sort 로직

* test: FakeDexRepository

* style: KtFormat

* [2.0.0-alph/AN-UI,Fix] 화면 나갔다가 5초 이후에 들어오면 오둥이 보이는 버그 수정 + clearFocus (#225)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* [2.0.0.alpha/AN-UI] 배틀 도우미 화면 구현 (#232)

* feat: 배틀 페이지 이동

* chore: 필요한 아이콘 추가

* chore: 필요한 배경 및 스타일 지정

* ui: 배틀 페이지 xml 작성

* ui: 날씨 선택 스피너 구현

* ui: 배틀 페이지 액티비티 구현

* feat: 날씨 데이터 연결

* refactor: adapter의 리스트 데이터를 업데이트할 수 있도록 변경

* fix: 린트 수정 및 충돌 해결

* ui: PokeChip, PokeChipGroup

* [0.2.0.alpha/AN-FEAT] Pokemon FIlter, Sort data 로직 (#228)

* refactor: PokeListFragment -> PokeActivity

* test: EventFLowTest

* chore: RefreshEventBus 네이밍 변경

* fix: 5초 지나고 화면 다시 돌아오면 오둥이 보이는 버그 수정

* feat: SearchView clearFocus

* style: ktFormat

* ui: margin 늘리기

* feat: Pokemon 프로퍼티 추가

* feat: Pokemon filter, sort

* feat: Pokemon filtering, Sort 로직

* test: FakeDexRepository

* style: KtFormat

* feat: 여러 filter 조건으로 받을 수 있도록 리팩토링

* refactor: filter 네이밍 변경

* refactor: packaing

* ui: Chip select 시 bold 처리

* fix: DexRepository isBlanck() 로 변경

* build: crashlytics impl 위치 변경

* chore: sample Activity 삭제

* feat: PokeFIlter 구현

* style: ktFormat

* refactor: 코드 정리

* chore: PokeChipSpec -> Spec

* chore: 불필요한 Timber 삭제

* style: ktFormat

* ui: PokeChip - ConerRadius, Padding 추가

* ui: PokeSpec - color, sizes naming 변경

* test: fake 객체 값 수정

* ui: check, sort icon 추가

* refactor: pokemon filter 코드 정리

* ui: SelectableUiModel parcelable 적용

* feat: pokemon Sort 구현

* feat: PokeFilterViewModel SavedStateHandle 적용

* style: ktformat

* feat: ui test margin 변경

* chore: Fake 삭제

* chore: ktFormat

* ci: Pr_builder 수정

* fix: test 수정

* ktFormat 이다 이말이야

* feat: pokemons2 서버 연결

* ui: 포켓몬 Splash 이미지

* feat: dexRepository warmUp 함수 추가

* feat: Intro 뷰

* ui: new type icon 반영

* build: local android junit5, kotest 추가

* feat: pokemon db에 저장

* feat: local Database 캐싱 연동

* style: ktFormat

* feat: stats 필드 추가

* ui: pokemonList 에 stat ui

* style: ktFormat

* fix: select 된 Sort 한 번 더 누르면 팅기는 문제

* feat: connection 시간 줄이기

* feat: home으로 이동시 종료

* chore: 불필요한 코드 삭제

* style: ktlintFormat

---------

Co-authored-by: Yehyun Jo <[email protected]>

* [0.2.0.alpha/AN_FEAT] 바이옴 리스트 Api 연결 (#266)

* feat: biome mapper

* feat: fetch remote data

* feat: loading view

* refactor: uiModel id값 변경

* style: ktFormat

* feat: ViewModel test

* style: ktFormat

* test: biome id값 변경에 따른 테스트 수정

* refactor: biome type dto 수정

* feat: biome Detail 서버 연동 및 기타 작업

* fix: test

---------

Co-authored-by: murjune <[email protected]>

* [0.2.0.alpha/AN_FEAT] 배틀 도우미 API 연결 (#279)

* feat: 배틀 api 연결 세팅

* feat: 날씨 api 연결

* feat: 포켓몬에 해당 하는 기술 api 연결

* feat: 배틀 계산 결과 api 연결

* ui: 피드백 반영

* feat: 수정된 서버 데이터 대응

* feat: 스킬 검색 기능 구현

* chore: 주석 제거

* feat: 포켓몬 선택 검색 기능 구현

* chore: 린트 체크

* [1.0.0/AN/Release] (#280)

* fix: idx로 hashID

* �chore: 바이옴에서 포켓몬 상세페이지 이동 일단 막기

* chore: 포켓몬 리스트에서 포켓몬 상세페이지 이동 일단 막기

* fix: PokeChip spec이 null일 때 처리

* feat: item도감, 꿀팁 도감 삭제(주석처리)

* style: ktFormat

* build: 1.0.0으로 버전업

* .gitignore 추가

* fix: PokeChip

* build: release gradle

* build: 프로가드, signKey

* build: 1.0.1로 배포

* fix: firebase fragment1.1.0, activity1.1.0 참조되는 문제 해결

* fix: backImage dto 추가

* chore: 테스트 임시 주석처리

* [0.2.0.alpha/AN_FEAT] 포켓몬 상세 서버 연결, 바이옴 <-> 포켓몬 상세 이동  (#281)

* feat: 단일 진화 UI Model

* feat(EvolutionsUiModel): 여러 진화 UIModel 을 목록으로 가진다

* feat(item_pokemon_detail_evolution): 진화 아이템

* feat: 포켓몬 진화 UiModel 에 imageUrl 추가

* fix(PokemonDetailViewModel): lint 깨지는 문제 해결

* feat(SingleEvolutionUiModel): add more dummy data 고라파덕

* feat(EvolutionsUiModel): 진화 체인이 있는지 확인한다

* feat(item_pokemon_detail_evolution): 진화 정보에서 하나의 포켓몬 개체

* feat: 진화 정보 뷰 홀더와 어댑터

* feat: 포켓몬 진화 아이템에 레벨 텍스트뷰 추가

* feat: 포켓몬 진화 정보 UI 완성

* feat: 포켓몬 진화 정보 이브이 더미 데이터 추가

* feat(NestedScrollableHost): viewpager2 와 리사이클러뷰의 스크롤 중첩을 위한 기능

* feat(PokemonEvolutionViewGroup): 포켓몬 진화 뷰그룹 커스텀 뷰

* refactor(PokemonEvolutionFragment): 포켓몬 진화 뷰 그룹 커스텀 뷰 사용

* feat: 포켓몬 상세 탭 레이아웃에 배경

* chore: 더미 데이터 이브이로

* feat(EvolutionResponse): 진화 응답

* feat(BiomeResponse): 상세에서 바이옴 응답

* feat(PokemonSkillResponse): 상세에서 포켓몬 스킬 응답

* feat(AbilityResponse2): 상세에서 포켓몬 특성 응답

* feat(PokemonDetailResponse2): 상세에서 포켓몬 상세 응답

* feat(PokeDexService): 포켓몬 상세 정보 불러오기

* feat(PokemonBiomeResponse): image 필드 추가, 네이밍 변경

* feat(Evolution): 진화 정보 dto -> data 매핑

* feat(PokemonBiome): 포켓몬 바이옴 dto -> data 매핑

* feat(PokemonDetailAbility): 포켓몬 상세의 특성 dto -> data 매핑

* feat(SkillCategory2): 카테고리 이름과 로고를 필드로 갖는다

* feat(PokemonSkill2): 포켓몬 기술 dto -> data 매핑

* feat(PokemonDetail2): 포켓몬 상세의 프로퍼티 수정, dto -> data 매핑

* feat(RemoteDexDataSource): PokemonDetail2 타입으로 데이터 요청

* chore(PokemonDetailSkills2): 네이밍 오타 수정

* feat: 포켓몬 상세 데이터 리턴

* feat(PokemonDetailUiState2): 포켓몬 상세 ui state 2

* feat(item_pokemon_detail_skill.xml): 포켓몬 상세의 스킬 아이템에 이미지는 String

* feat(fragment_pokemon_skills): 알 기술 프로토 타입 UI

* feat: 포켓몬 상세 ui state 2 로

* chore(Evolution): 더미데이터 추가

* chore(Stat): 더미데이터 추가

* chore(PokemonSkill): 더미데이터 추가

* feat(StatUiModel): 종족값 ui model 로 매핑

* feat(PokemonDetailAbility): 더미데이터 추가

* feat(FakeDexRepository): 포켓몬 상세 메서드 pokemon2 를 구현

* test(PokemonDetailViewModelTest): 포켓몬 상세 데이터(pokemon2 메서드)를 불러온다

* feat(fragment_pokemon_skills): 포켓몬 기술 프래그먼트에 알 기술 추가

* chore: ktlint

* refactor: AbilityResponse2 -> PokemonAbilityResponse 로 네이밍

* refactor: PokemonDetailUiState2 -> PokemonDetailUiState

* refactor(DefaultDexRepository): 포켓몬 상세를 불러오는 네이밍 변경 pokemon2 -> pokemon

* refactor(RemoteDexDataSource): 포켓몬 상세 api pokemon2 -> pokmon

* refactor(PokemonDetail): PokemonDetail2 -> PokemonDetail 교체

* refactor(PokemonDetailSkills): PokemonDetailSkills2 -> PokemonDetailSkills 교체

* refactor(PokemonSkill): PokemonSkill2 -> PokemonSkill 교체

* refactor(SkillCategory): SkillCategoryUiModel,SkillCategory2 삭제

* chore: ktlint

* feat(EvolutionsUiModel): 진화 데이터 ui 모델로

* chore: PokemonStatFragment 사용하지 않는 data -> ui 매핑 함수 제거

* feat(PokemonEvolutionFragment): 포켓몬 진화 데이터 viewmodel 과 연결

* feat(PokemonDetailResponse): 포켓몬 상세 응답 클래스 프로퍼티

* feat(PokemonDetail): 변경된 서버 API 스펙에 맞춰 변경

* feat: 포켓몬 바이옴 정보 연결

* feat: 포켓몬 진화 정보에서 아이템과 조건이 유효하지 않을 때 보이지 않게 한다

* feat(PokemonDetailAbility): 중복된 특성이 내려오는 경우 중복 제거

* feat(item_ability_title): 특성이 passive 인지, hidden 인지에 따라 색 지정

* feat: 포켓몬 진화 체인에서 포켓몬 클릭 시 해당 포켓몬 상세로 이동

* fix: 바이옴 상세 터지는 에러 해결

* fix: 바이옴 상세 -> 포켓몬 상세로 navigate

* test(PokemonDetailViewModelTest): 포켓몬 상세 데이터를 불러온다 fix

* feat: 진화 response api 명세에 맞게 변경

* [1.0.1/AN_FEAT] 배틀 페이지 뒷모습 이미지 추가 (#288)

* feat:뒷모습 이미지 추가

* chore: 테스트 실패 해결

* [1.0.1/AN_FEAT] 특성 목록, 특성 상세 API 연결 (#287)

* feat(AbilityResponse2): property includes id, name, description

* feat(AbilityDetailResponse2): property includes name, description, pokemons

* feat(ability2.json , abilities2.json): 특성 가짜 json 파일

* feat(AbilityService): 모든 특성 조회

* feat(AbilityDetailResponse2): property pokemons 타입 변경

* feat(AbilityService): id 로 특성 조회

* feat(RemoteAbilityDataSource): 특성 목록 불러온다

* feat(RemoteAbilityDataSource): 특성 상세

* refactor(AbilityService): 메서드 ability2 -> ability

* chore: 사용하지 않는 특성 응답 삭제

* refactor(AbilityResponse2 -> AbilityResponse): 네이밍

* hot-fix: battle 도우미 이전 버튼 color + 스킬 업데이트 안되는 문제 + 위력 없는 스킬 filter

* [1.0.1/AN_FIX] 포켓몬 상세 이미지와 진화 UI  (#295)

* feat(AbilityResponse2): property includes id, name, description

* feat(AbilityDetailResponse2): property includes name, description, pokemons

* feat(ability2.json , abilities2.json): 특성 가짜 json 파일

* feat(AbilityService): 모든 특성 조회

* feat(AbilityDetailResponse2): property pokemons 타입 변경

* feat(AbilityService): id 로 특성 조회

* feat(RemoteAbilityDataSource): 특성 목록 불러온다

* feat(RemoteAbilityDataSource): 특성 상세

* refactor(AbilityService): 메서드 ability2 -> ability

* chore: 사용하지 않는 특성 응답 삭제

* refactor(AbilityResponse2 -> AbilityResponse): 네이밍

* feat: crop 이미지 삭제

* feat: 진화 구분선 수정

* feat: 포켓몬 이미지 조정

* feat: 진화 뷰 그룹 spacing

* feat(PokemonSkillUiModel): 명줄률이 -1 인 것은 - 라는 문자열로

* [1.1.0.alpha/AN-FIX] 바이옴 디테일 페이지 UI 수정 (#300)

* feat: 관장 data 없을 시 empty view 추가

* feat: 보스 data 없을 시 empty view 추가

* fix: 야생 포켓몬 크기가 작아지는 이슈 해결

* ui: 다음 바이옴 탭 view 수정

* test: 테스트 픽스처 수정

* refactor: 코드리뷰 반영

* [1.1.0-AN/Feat] id 기반으로 로그 심기 + 로그 이벤트 비동기 처리 AN_FEAT ✨ (#303)

* feat: AnalyticsScope 적용

* feat: 바이옴, 포켓몬, 특성 Detail analytics 적용

* feat: Pokemon filter, sort analytics 달기

* feat: 배틀 로그

* style : ktFormat

* [1.1.0/AN_FEAT,AN_UI] 바이옴 전체 지도 toolbar에 웹뷰 구현  (#306)

* fix: 바이옴 디테일 타이틀 툴바로 이동

* feat: toolbar에 웹뷰로 가는 아이콘 추가

* feat: 바이옴 전체 지도를 볼 수 있는 웹뷰 구현

* style: ktFormat

* test: 웹뷰 화면이동 테스트 추가

* refactor: 코드리뷰 반영

* refactor: 다음 바이옴 확률 xml 수정

* [1.1.0/AN_FIX] 배틀 디테일 로직 수정 (#310)

* feat: 검색창 외 화면 터치 시 키보드 내리기 설정

* fix: 포켓몬에 해당 하지 않는 기술 데이터 출력 오류 해결

* fix: 포켓몬이 사용 가능한 기술 불러오기 오류 해결

* feat: 선택 모드 값 정의

* feat: 기술 선택 시 바로 기술 선택 화면으로 이동

* refactor: type 어댑터 파일 분리

- 기존 바이옴 타입 어댑터 사용에서 배틀 페이지 전용으로 파일 분리

* refactor: 키보드 이슈 해결

* refactor: 에러 반환 코드 리팩토링

* refactor: touchListener를 clickListener로 변경

* refactor: 피드백 반영 및 불필요한 코드 제거

* refactor: 키보드가 올라가 있는 경우에만 숨김 처리 하도록 설정

* fix: UI dp 값 조절

* feat: 배틀 선택 페이지 로그 심기

---------

Co-authored-by: murjune <[email protected]>

* [1.1.0.alpha/AN_FEAT, AN_UI] 도감 상세 UI 수정, 바이옴에서의 포켓몬 타입 가져오기 (#308)

* feat(PokemonBiomeUiModel): 포켓몬 바이옴 리스트와 모든 바이옴 정보를 통해 ui 모델로

* refactor(PokemonBiomeUiModel): 포켓몬 바이옴 리스트와 모든 바이옴 정보를 통해 ui 모델로

* feat(PokemonDetailUiState2): PokemonUiModel 을 가진다

* refactor(PokemonDetailViewModel): 바이옴 레포지토리를 추가로 가진다

* feat(PokemonDetailSkillFragment): PokemonDetailUiState2 에 대한 함수 추가

* feat(PokemonEvolutionFragment): PokemonDetailUiState2 에 대한 함수 추가

* feat(PokemonInformationFragment): PokemonDetailUiState2 에 대한 함수 추가

* feat(PokemonStatFragment): PokemonDetailUiState2 에 대한 함수 추가

* feat(PokemonDetailBiomeAdapter): PokemonDetailUiState2 에 대한 함수 추가

* refactor(PokemonDetailActivity): PokemonDetailUiState 에 대한 참조 제거

* refactor(PokemonEvolutionFragment): PokemonDetailUiState 에 대한 참조 제거

* refactor(PokemonInformationFragment): PokemonDetailUiState 에 대한 참조 제거

* refactor(PokemonDetailSkillFragment): PokemonDetailUiState 에 대한 참조 제거

* refactor(PokemonStatFragment): PokemonDetailUiState 에 대한 참조 제거

* refactor(PokemonDetailUiState.kt): PokemonDetailUiState2 -> PokemonDetailUiState

* test(PokemonDetailViewModelTest): 포켓모 상세에서 바이옴 정보

* ui(PokemonDetailBiomeTypesAdapter): 바이옴의 타입 정보 추가

* ui(PokemonDetailBiomeViewHolder): 바이옴의 타입 정보 추가

* feat(PokemonInformationFragment.kt): 체중, 키를 서버로부터 로드한 데이터 보여준다

* feat(PokemonBiome): 바이옴에서 출연하는 포켓몬 타입 프로퍼티 추가

* feat(DefaultDexRepository): 바이옴 레포지토리 생성자 추가

* feat(PokemonBiomeUiModel): PokemonBiome 에서 ui 모델로 매핑

* refactor(PokemonBiomeUiModel): 포켓몬 뷰모델은 이전처럼 dex repository 하나만 갖는다

* refactor(PokemonBiomeUiModel): ui 모델로 매핑할 때 다른 파라미터를 갖지 않는다

* test(PokemonDetailViewModelTest): 포켓몬 상세 로드

* chore: ktlint

* refactor(DefaultDexRepository): 포켓몬 상세 로직 가독성 개선

* [1.1.0/AN_CD] Discord로 alpha 버전 apk 전달 (#290)

* 🎉 Chore: PR_Comment_Notification.yml

PR Comment 에 '/noti' 를 포함할 경우 Andorid 채널 혹은 Backend 채널로 노티가 간다

* 🎉 Chore: �Avatar, Content, Description 수정

* docs: README v0.1

* CD: discord로 apk 전달

* CD: cd되는지 확인

* ci: artifact 버전 v3로 수정

* test

* build : 병렬처리

* Revert "Merge branch 'main' into an/cd/send_to_discord"

This reverts commit 925c8db99bb655c11f5f31bbf51bb6627b8741b3, reversing
changes made to 346391c13691baeaf9ac17e41afd7ce98fe61f86.

* ci: google-service추가

* ci: 버저닝 label 추가
[1.1.0/AN_CD] Discord로 alpha 버전 apk 전달 (#290)

* 🎉 Chore: PR_Comment_Notification.yml

PR Comment 에 '/noti' 를 포함할 경우 Andorid 채널 혹은 Backend 채널로 노티가 간다

* 🎉 Chore: �Avatar, Content, Description 수정

* docs: README v0.1

* CD: discord로 apk 전달

* CD: cd되는지 확인

* ci: artifact 버전 v3로 수정

* test

* build : 병렬처리

* Revert "Merge branch 'main' into an/cd/send_to_discord"

This reverts commit 925c8db99bb655c11f5f31bbf51bb6627b8741b3, reversing
changes made to 346391c13691baeaf9ac17e41afd7ce98fe61f86.

* ci: google-service추가

* ci: 버저닝 label 추가

* ci, cd  분리 (#321)

* [1.1.0/AN-FEAT] 배틀 선택 / 결과 UI 개선  (#316)

* feat: 기술 위력이 마이너스 값일 경우, 화면 표시 변경

* feat: 배수 값에 따라 색상 다르게 설정

* feat: 선택했던 값 위치로 스크롤 되도록 설정

* chore: 변수명 수정

* feat: 명중률이 마이너스 값일 경우 -로 표시

* feat: 위력이 마이너스일 경우, 배수 표기 방식 변경

* refactor: App -> analytics 모듈로 FIrebase init 로직 이동 (#318)

* [1.1.0-AN_FEAT] 스플래시 때 포켓몬 front 이미지 캐시 (#319)

* feat: Splash 화면에서 24개 사진 Preload

* [1.1.0/AN_CD] Discord로 alpha 버전 apk 전달 (#290)

* 🎉 Chore: PR_Comment_Notification.yml 

PR Comment 에 '/noti' 를 포함할 경우 Andorid 채널 혹은 Backend 채널로 노티가 간다

* 🎉 Chore: �Avatar, Content, Description 수정

* docs: README v0.1

* CD: discord로 apk 전달

* CD: cd되는지 확인

* ci: artifact 버전 v3로 수정

* test

* build : 병렬처리

* Revert "Merge branch 'main' into an/cd/send_to_discord"

This reverts commit 925c8db99bb655c11f5f31bbf51bb6627b8741b3, reversing
changes made to 346391c13691baeaf9ac17e41afd7ce98fe61f86.

* ci: google-service추가

* ci: 버저닝 label 추가

* fix: 매직 넘버 상수화 및 예외처리 문 추가

* fix

* style: ktFormat

* fix: withContext -> coroutineScope, 주석 변경

* fix: Splash 시간 최소 시간 설정

* [1.1.0/AN_FEAT] 바이옴 리스트 검색 기능 구현 (#320)

* feat: toolbar에 검색 아이콘 넣기

* feat: biome repository 검색 구현

* feat: biome 리스트 검색 바인딩 어뎁터

* test: 바이옴 조회 repository 테스트 작성

* feat: 바이옴 검색 기능 구현

* feat: 검색시 리싸이클러뷰 스크롤 항상 맨위로 이동

* feat: 키보드 아웃포커싱 내리기

* style: ktFormat

* refactor: 리싸이클러뷰 스크롤 위치 이동

* style: ktFormat

* [1.1.0/AN_FEAT] 배틀 선택 데이터 저장 (#324)

* chore: DataStore 의존성 설정

* feat: Datastore 저장 로직 추가

* feat: 저장된 선택 데이터 UI 에 반영

* refactor: Skill 캐싱

* refactor: Test 객체 수정

* refactor: context 참조 수정

* refactor: 리팩토링 리뷰 반영

* refactor: 아이디 저장값 분리

* refactor: Map 형태 변경

* [1.1.0-AN-CI/CD] WorkFlow PR CI 2번 돌아가는거 수정, CI/CD actions 파일로 분리 (#327)

* [CI/CD] ktlint, unit test workFlow 파일 분리

* fix: Input BaseURL 로 수정

* fix: wokring-directory 수정

* fix: working-directory 개별 step 마다 적용

* add debuger

* unitTest파일 분리 되돌리기..

* [1.1.0/AN-UI] 타입 아이콘 불일치 수정 (#345)

* refactor: 타입 아이콘 불일치 변경

* refactor: 타입 색상 변경

* refactor: 독 타입 변경

* refactor: 독 타입 색상 변경

* [1.1.0/AN_FEAT] 배틀 구도 날씨 저장  (#343)

* chore: DataStore 의존성 설정

* feat: Datastore 저장 로직 추가

* feat: 저장된 선택 데이터 UI 에 반영

* refactor: Skill 캐싱

* refactor: Test 객체 수정

* refactor: context 참조 수정

* refactor: 리팩토링 리뷰 반영

* refactor: 아이디 저장값 분리

* feat: Spinner 초기화 시 0으로 자동 선택되는거 방지하는 ItemSelectListener 구현

* feat: 날씨저장

* fix: BattleActivity  Context 수정

* refactor: xxStream postFix 붙이기, suspend 함수 제거

* ktlintFormat

* fix: weather 가 결과에 영향 안주던거 수정

* refactor : Flow 반환 함수 네이밍 (Stream) 붙이기

* refactor: hashMap -> mutableMap

* ktLintFormat

---------

Co-authored-by: JoYehyun <[email protected]>

* feat: 룸 엔티티의 스키마가 바뀌었을 때만 감지해서 DB 재생성 (#355)

* [1.1.0/AN-Refactor] Koin 기초 세팅, App, data, local, remote, testing, analytics 모듈 세팅 (#361)

* feat: remote 모듈에 Koin 적용

* feat: local 모듈에 Koin 적용

* feat: Analytics 모듈 Koin 적용

* build :android core ktx, robolectric bundle 추가

* fix: module 변수에서 getter 로 변경

* feat: Testing Module

* feat: TestApplication

* feat: KoinAndroidUnitTestRule

* feat: testing 모듈 test에 Koin 적용

* build : app 모듈 managedDevices 리팩토링

* feat: app 모듈 Koin 세팅

* ktFormat

* ci 돌아가기 위한 커밋

* fix: repository internal 키워드 추가

* [1.1.0/AN-FEAT] 인앱 업데이트 기능 구현 (#358)

* feat: In-App update 의존성 추가

* feat: 인앱 업데이트 하는 기능 구현

* style: ktFormat

* refactor: In-App update 불필요한 의존성 제거

* feat: updateManager lifecycle 관리

* refactor: splash 화면으로 업데이트 로직 이동

* refactor: 다시 Home화면으로 로직 이동

* refactor: 불필요한 파일 삭제

* feat: 업데이트 거절시 24시간 뒤에 다이얼로그 보여주기

* feat: 다운로드 완료시 설치 안내 메시지 추가

* feat: 업데이트 로깅 달기

* style: ktFormat

* style: ktFormat

* [1.1.0/AN-UI, AN-REFACTOR] 포켓몬 상세 화면 스크롤 시 애니메이션 (#369)

* feat(activity_pokemon_detail2): first coordinatorlayout

* feat(activity_pokemon_detail2): title

* chore: PokemonDetailActivity 안 쓰는 부분 일단 주석

* feat(PokemonDetail2Activity): 샘플 코드 가져와보기

* feat: activity_pokemon_detail2.xml 타입만 해결하면 되는데

* feat: OuterEvolutionAdapter, OuterEvolutionViewHolder

* feat: 진화 프래그먼트 outer evolutions 로 변경

issue: 화면이 안나옴..

* fix: feat: 진화 프래그먼트 outer evolutions 로 , 화면 나옴

* fix: activity_pokemon_detail2 의 nestedScrollview 를 각 프래그먼트로 이동

* chore: ktlint, 사용하지 않는 파일 제거

* chore: ktlint, 사용하지 않는 파일 제거

* refactor(EvolutionsUiModel): ui 에서 사용하는 리스트로 변환

* refactor(EvolutionStageAdapter): 네이밍

* fix: activity_pokemon_detail.xml 최상단일 때만 상단이 가려진다

fix: https://github.com/woowacourse-teams/2024-pokerogue-helper/pull/369#pullrequestreview-2377127135

* chore: 로그 삭제

* fix(activity_pokemon_detail): progress indicator 위치 조정

* [1.1.0/AN-FEAT] Splash 화면에서 포켓몬 데이터 캐싱 교체 전략 추가 (#385)

* fix: Weather PlaceHolder 반환하도록 수정

* feat: 서버 데이터베이스 VersionService

* feat: dataStore에 서버 버전 저장

* feat: 서버의 데이터베이스 버전이 달라지면 디스크 캐시를 리프레쉬한다

* fix: @Serializable 어노테이션 추가

* fix: dataStore 2번 만들어지는거 임시 해결 (나중에 koin으로 다 마이그레이션하면 없어짐)

* fix: Koin Single Component  인 DexRepository warm up

* refactor: Flow 반…
  • Loading branch information
7 people authored Oct 23, 2024
1 parent 557cb11 commit 759ba23
Show file tree
Hide file tree
Showing 158 changed files with 3,653 additions and 1,265 deletions.
49 changes: 40 additions & 9 deletions .github/actions/add_labels/action.yml
Original file line number Diff line number Diff line change
@@ -1,50 +1,81 @@
name: Add Labels Action

permissions:
contents: read
pull-requests: write
description: "Add labels to a pull request based on its title"

inputs:
title:
description: "title of the pull request or issue"
required: true

runs:
using: 'composite'
steps:

- name: Input title
shell: bash
run: |
echo "Input Title: ${{ inputs.title }}"
- name: add FEAT ✨ labels
uses: actions-ecosystem/action-add-labels@v1
if: ${{ contains(github.event.pull_request.title, 'FEAT') }}
if: ${{ contains(inputs.title, 'FEAT') }}
with:
labels: |
AN_FEAT ✨
- name: add UI 🎨 labels
uses: actions-ecosystem/action-add-labels@v1
if: ${{ contains(github.event.pull_request.title, 'UI') }}
if: ${{ contains(inputs.title, 'UI') }}
with:
labels: |
AN_UI 🎨
- name: add REFACTOR ✍️ label
uses: actions-ecosystem/action-add-labels@v1
if: ${{ contains(github.event.pull_request.title, 'REFACTOR') }}
if: ${{ contains(inputs.title, 'REFACTOR') }}
with:
labels: |
AN_REFACTOR ✍️
- name: add FIX 🐛 label
uses: actions-ecosystem/action-add-labels@v1
if: ${{ contains(github.event.pull_request.title, 'FIX') }}
if: ${{ contains(inputs.title, 'FIX') }}
with:
labels: |
AN_FIX 🐛
- name: add CI/CD 🤖 label
uses: actions-ecosystem/action-add-labels@v1
if: ${{ contains(github.event.pull_request.title, 'CI') || contains(github.event.pull_request.title, 'CD') }}
if: ${{ contains(inputs.title, 'CI') || contains(inputs.title, 'CD') }}
with:
labels: |
AN_CI/CD 🤖
- name: add CONFIG 🧭 label
uses: actions-ecosystem/action-add-labels@v1
if: ${{ contains(github.event.pull_request.title, 'CONFIG') }}
if: ${{ contains(inputs.title, 'CONFIG') }}
with:
labels: |
AN_CONFIG 🧭
- name: Extract Version Name
shell: bash
env:
title: ${{ inputs.title }}
run: |
version=$(echo '${{ env.title }}' | grep -oP '\d+\.\d+\.\d+')
if [ -z "$version" ]; then
echo "No version found in the title."
echo "version=none" >> $GITHUB_ENV
else
echo "version=v$version" >> $GITHUB_ENV
fi
- name: Add version 🏷️ label
uses: actions-ecosystem/action-add-labels@v1
if: ${{ env.version != 'none' }} # 버전이 존재할 때만 실행
with:
labels: |
${{ env.version }} 🏷️
50 changes: 50 additions & 0 deletions .github/actions/ktlint_check/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: 'ktLint Check'

description: 'Run ktLint Check using Gradle'

inputs:
POKE_BASE_URL:
description: 'Base URL for local.properties'
required: true


runs:
using: 'composite'
steps:

- name: Gradle cache
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17

- name: Create Local Properties
shell: bash
run: touch local.properties
working-directory: ./android

- name: Access Local Properties
shell: bash
run: |
echo POKE_BASE_URL=\"${{ inputs.POKE_BASE_URL }}\" >> local.properties
working-directory: ./android

- name: Grant execute permission for gradlew
shell: bash
run: chmod +x gradlew
working-directory: ./android

- name: Lint Check
shell: bash
run: ./gradlew ktlintCheck
working-directory: ./android
71 changes: 71 additions & 0 deletions .github/actions/unit_test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: 'Test Alpha Unit Test'

description: 'Run Alpha Unit Tests using Gradle'

inputs:
POKE_BASE_URL:
description: 'Base URL for local.properties'
required: true
GOOGLE_SERVICES_ALPHA:
description: 'Google Services JSON for alpha build'
required: true
GOOGLE_SERVICES_BETA:
description: 'Google Services JSON for beta build'
required: true
GOOGLE_SERVICES:
description: 'Google Services JSON for release'
required: true

runs:
using: 'composite'

steps:
- name: Gradle cache
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17

- name: Create Google-Services.json
shell: bash
run: |
touch ./android/app/src/debug/google-services.json
touch ./android/app/src/alpha/google-services.json
touch ./android/app/src/beta/google-services.json
mkdir ./android/app/src/release
touch ./android/app/src/release/google-services.json
echo ${{ inputs.GOOGLE_SERVICES_ALPHA }} >> ./android/app/src/debug/google-services.json
echo ${{ inputs.GOOGLE_SERVICES_ALPHA }} >> ./android/app/src/alpha/google-services.json
echo ${{ inputs.GOOGLE_SERVICES_BETA }} >> ./android/app/src/beta/google-services.json
echo ${{ inputs.GOOGLE_SERVICES }} >> ./android/app/src/release/google-services.json
- name: Create Local Properties
shell: bash
run: touch local.properties
working-directory: ./android

- name: Access Local Properties
shell: bash
run: |
echo POKE_BASE_URL=\"${{ inputs.POKE_BASE_URL }}\" >> local.properties
working-directory: ./android

- name: Grant execute permission for gradlew
shell: bash
run: chmod +x gradlew
working-directory: ./android

- name: Run Alpha Unit Tests
shell: bash
run: ./gradlew testAlphaUnitTest
working-directory: ./android
126 changes: 126 additions & 0 deletions .github/workflows/Android_Develop_CD.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: Android PR Builder

on:
pull_request:
types:
- closed
branches: [ an/develop ]

defaults:
run:
working-directory: ./android

jobs:
CI_Android_Develop:
uses: ./.github/workflows/Android_Develop_CI.yml
secrets: inherit

Distribution_To_Discord:
name: Alpha APK to Discord
runs-on: ubuntu-latest
needs: [ CI_Android_Develop ]
steps:
- uses: actions/checkout@v4
- name: Gradle cache
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17

- name: Create Google-Services.json
env:
GOOGLE_SERVICES_ALPHA: ${{ secrets.GOOGLE_SERVICES_ALPHA }}
GOOGLE_SERVICES_BETA: ${{ secrets.GOOGLE_SERVICES_BETA }}
GOOGLE_SERVICES: ${{ secrets.GOOGLE_SERVICES }}
run: |
touch ./app/src/debug/google-services.json
touch ./app/src/alpha/google-services.json
touch ./app/src/beta/google-services.json
mkdir ./app/src/release
touch ./app/src/release/google-services.json
echo $GOOGLE_SERVICES_ALPHA >> ./app/src/debug/google-services.json
echo $GOOGLE_SERVICES_ALPHA >> ./app/src/alpha/google-services.json
echo $GOOGLE_SERVICES_BETA >> ./app/src/beta/google-services.json
echo $GOOGLE_SERVICES >> ./app/src/release/google-services.json
- name: Check google-services.json content
run: cat ./app/src/debug/google-services.json

- name: Create Local Properties
run: touch local.properties

- name: Access Local Properties
env:
POKE_BASE_URL: ${{ secrets.POKE_BASE_URL }}
run: |
echo POKE_BASE_URL=\"${{ secrets.POKE_BASE_URL }}\" >> local.properties
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build alpha APK
run: ./gradlew assembleAlpha

- name: Upload alpha APK artifact
uses: actions/upload-artifact@v4
with:
name: android-artifact
path: android/app/build/outputs/apk/alpha/
if-no-files-found: error

- name: Check APK existence
run: ls -al app/build/outputs/apk/alpha/

- name: Extract Version Name
env:
title: ${{ github.event.pull_request.title }}
run: |
version=$(echo '${{ env.title }}' | grep -oP '\d+\.\d+\.\d+')
echo "version=v$version" >> $GITHUB_ENV
- name: Send alpha version APK to Discord with Embeds
env:
DISCORD_WEBHOOK_URL: ${{ secrets.AlPHA_APK_DISCORD_WEB_HOOK }}
VERSION: ${{ env.version }}
PR_TITLE: ${{ github.event.pull_request.title }}
PR_URL: ${{ github.event.pull_request.html_url }}
run: |
CONTENT="최신 개발 버전 APK 가 나왔어요!🎉
[배포 버전] : $VERSION!
[해당 PR 제목] : $PR_TITLE"
EMBED=$(jq -n \
--arg title "PR Merged: $PR_TITLE" \
--arg url "$PR_URL" \
--arg description "Version: $VERSION 🎉" \
'{
"title": $title,
"url": $url,
"description": $description,
"color": 3066993
}'
)
PAYLOAD=$(jq -n \
--arg content "$CONTENT" \
--argjson embeds "[$EMBED]" \
'{
"content": $content,
"embeds": $embeds
}'
)
curl -F "payload_json=$PAYLOAD" \
-F "file=@app/build/outputs/apk/alpha/app-alpha.apk" \
$DISCORD_WEBHOOK_URL
Loading

0 comments on commit 759ba23

Please sign in to comment.