Skip to content
This repository has been archived by the owner on May 26, 2021. It is now read-only.

Latest commit

 

History

History
204 lines (140 loc) · 10.6 KB

README.md

File metadata and controls

204 lines (140 loc) · 10.6 KB

😸We-are-OUNCE 'Android' Developer

WE ARE OUNCE!!

OUNCE의 멋있는 Logo

목차

Library

라이브러리 목적
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 기록하기 뷰에서 레이팅 바 커스텀을 위해 사용

ConstraintLayout 사용처

  • 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 사용)

  • 그 외 비사용처를 제외한 모든 곳에서 사용

ConstraintLayout 비사용처

  • 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 사용

    • 이유: 리소스 수평 간격 효율적인 설정을 위함)

핵심 기능 소개 + 구현

프로젝트 구조

Kotlin

Collection 함수 사용

  • 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()함수에서 사용)

Project

팀원

팀원 역할 개인 목표

강민구
안드로이드 개발 역동적인 앱 + 플레이 스토어 출시!

이현우
안드로이드 개발 실제로 사용해도 소비자들이 만족하는 어플리케이션을 출시, 좋은 사람들과 앱잼 잘 치뤄나가서 평생친구 먹기

박주예
안드로이드 개발 Ounce 개발 맡은 역할 열심히 하기, 안드로이드 개발 과정 기록하기