라이브러리 | 목적 |
---|---|
Retrofit2 | 서버 통신 |
Gson | 서버에서 받아온 Json 객체를 Gson으로 변환 |
Glide | url을 이용한 이미지 뷰에 이미지 처리 |
DotIndicator | 뷰페이저 인디케이터 |
Cropper | 프로필 이미지 크기 조절을 위한 Crop 기능 |
MaterialSearchBar | 검색창 구현 |
TedPermission | 갤러리 이용 시 권한 설정 |
TedKeyboardObserver | 키보드 show/hide 리스너 |
RecyclerView_+ SearchView | 최근 검색어 검색창 |
Sticky ScrollView | 메인 뷰 헤더 Sticky 스크롤 구현 |
EasySharedPreference | SharedPreference를 더 쉽게 사용하기 위해 사용 |
ViewModelProviders, ViewModel | 프래그먼트 간 데이터 전달에 필요한 ViewModel을 사용하기 위한 설정 |
CircleImageView | 사진을 원형으로 삽입하기 위해 사용 |
RatingBarCustom | 기록하기 뷰에서 레이팅 바 커스텀을 위해 사용 |
-
activity_login.xml : Guideline, chain (packed) 사용
-
activity_sign_up.xml : 하단 버튼에 chain(packed) 사용
-
activity_sign_up_finish.xml : 레이아웃 사용
-
fragment_email_check.xml : Guideline 사용
-
fragment_id.xml : Guideline 사용
-
fragment_password.xml : Guideline 사용
-
item_searchmain_similar.xml : chain(spread) 사용 (*하단 이미지에 LinearLayout 사용)
-
그 외 비사용처를 제외한 모든 곳에서 사용
-
activity_home.xml : CoordinatorLayout, RelativeLayout 사용
- 이유 : BottomAppBar 구현을 위한 레이아웃 채택
-
activity_product_review.xml : CoordinatorLayout, RelativeLayout 사용
- 이유 : CollapsingToolBarLayout을 사용하기 위해 채택
-
activity_record.xml : CoordinatorLayout 사용
- 이유: CollapsingToolBarLayout을 사용하기 위해 채택
-
fragment_search.xml : LinearLayout 사용
- 이유: 텍스트, 리소스 수평, 수직 간격 효율적인 설정을 위함
-
item_product_review_review.xml : LinearLayout 사용
- 이유: 텍스트, 리소스 수평, 수직 간격 효율적인 설정을 위함
-
item_product_review_review.xml : LinearLayout 사용
- 이유: 텍스트, 리소스 수평, 수직 간격 효율적인 설정을 위함
-
main_review_list_item.xml : LinearLayout 사용
- 이유: 텍스트, 리소스 수평, 수직 간격 효율적인 설정을 위함
-
item_searchmain_similar.xml : 하단 이미지에 LinearLayout 사용
- 이유: 리소스 수평 간격 효율적인 설정을 위함)
- 키보드 액션과 EditText 커스텀
- Fragment에 ViewPager 삽입
- ViewPager에 화면전환효과 삽입
- StickyLayout을 이용한 헤더에 뷰 붙이기
- 뷰 새로고침 하기
- SearchView 포커스 시 하단 창 변경
- 상단 스크롤 시 툴바 변경
- 검색창에서 검색 시 하단 창에 결과 보여주기
- 프래그먼트에 뷰페이저 달기
- 웹 페이지 창을 앱에서 띄워주기
- 프로필 이미지 서버에 업로드
- 기록하기 화면 구현
- clear() : 리스트의 요소 전부 삭제
HomeFragment.kt, OtherActivity.kt -> 리뷰 필터 적용 후 리사이클러 아이템 초기화 시 사용
정렬기준이 변경 시 새로운 정렬 데이터를 받기 위해 사용
- addall() : 리스트의 모든 요소를 전부 arrayList에 저장
HomeFragment.kt, OtherActivity.kt-> 리사이클러뷰 최하단 도착 시 추가적으로 데이터를 보여주기 위해 사용
-
split(String) : 구분자를 기준으로 문자열들을
List<String>
으로 파싱 -
map(List) : 리스트 각각의 원소에 map안에 있는 함수를 실행하여 그 원소들로 다시 List를 생성
-
trim(String): 문자열 앞 뒤에 있는 공백 제거
ItemSearchActivity.kt
-
로그 출력을 위한 확장 함수
fun String.showLog(message: String?) { if (message != null) { Log.d(this, message) } else{ Log.d(this,"null") } }
다음과 같이 사용 (HomeFragment.kt showBottomSheet()함수에서 사용)
팀원 | 역할 | 개인 목표 |
강민구 |
안드로이드 개발 | 역동적인 앱 + 플레이 스토어 출시! |
이현우 |
안드로이드 개발 | 실제로 사용해도 소비자들이 만족하는 어플리케이션을 출시, 좋은 사람들과 앱잼 잘 치뤄나가서 평생친구 먹기 |
박주예 |
안드로이드 개발 | Ounce 개발 맡은 역할 열심히 하기, 안드로이드 개발 과정 기록하기 |