앱개발 숙련 과제 스크롤 상단 이동 구현 사항- 스크롤을 최상단으로 이동시키는 플로팅 버튼 기능 추가- 플로팅 버튼은 스크롤을 아래로 내릴 때 나타나며, 스크롤이 최상단일때 사라집니다.- 플로팅 버튼을 누르면 스크롤을 최상단으로 이동시킵니다.- 플로팅 버튼은 나타나고 사라질때 fade 효과가 있습니다.- 플로팅 버튼을 클릭하면 아이콘 색이 변경됩니다. 플로팅 버튼 추가메인 레이아웃의 우측하단에 플로팅 버튼을 배치한다.스크롤에 따른 애니메이션을 구현하기 위해 초기에는 안보이게 설정한다. 플로팅 버튼의 아이콘은 기본적으로 검은색이지만app:tint="@null" 속성을 추가해 원래 아이콘 색상으로 설정할 수 있다. 플로팅 애니메이션 구현private fun fbAnimation(){ // 플로팅 버튼..
앱개발 숙련 과제 필수 과제 구현 구현 사항// 메인 페이지 구현 사항- 상품 데이터는 아래 dummy data 를 사용합니다. (더미 데이터는 자유롭게 추가 및 수정 가능)- 뒤로가기(BACK)버튼 클릭시 종료하시겠습니까? [확인][취소] 다이얼로그를 띄워주세요.- 상단 종모양 아이콘을 누르면 Notification을 생성해 주세요.- 상품 가격은 1000단위로 콤마(,) 처리해주세요.- 상품 선택시 아래 상품 상세 페이지로 이동합니다.- 상품 상세페이지 이동시 intent로 객체를 전달합니다. (Parcelize 사용)// 상세페이지 구현 사항- 메인화면에서 전달받은 데이터로 판매자, 주소, 아이템, 글내용, 가격등을 화면에 표시합니다.- 상단 데이터 클래스 설계// build.gradle.kts(..
앱개발 숙련 개인 과제 레이아웃 구현 구현 사항// 메인 페이지 구현 사항- RecyclerViewer를 이용해 리스트 화면을 만들어주세요.- 상단 툴바를 제거하고 풀스크린 화면으로 세팅해주세요. (상태바(시간/배터리 표시하는 최상단바)는 남기고)- 상품 이미지는 모서리를 라운드 처리해주세요.- 상품 이름은 최대 두 줄이고, 그래도 넘어가면 뒷 부분에 …으로 처리해주세요.- 상품 아이템들 사이에 회색 라인을 추가해서 구분해주세요.// 상세 페이지 구현 사항하단 가격표시 레이아웃을 제외하고 전체화면은 스크롤이 되어야합니다. 상단 툴바 제거 res/values/themes/themes.xml에서 앱의 테마를 NoActionBar로 설정한다. 매니패스트 파일에서 앱의 테마를 정의한 테마로 설정한다. 메..
챌린지반 4주차 세션 정리 RecyclerView의 패턴리사이클러뷰는 뷰홀더 패턴(ViewHolder pattern)을 강제한다. 뷰홀더 패턴은 뷰홀더를 선언해 각 항목 뷰에 대한 참조를 저장하여,뷰를 재활용할 때 매번 findViewById를 호출하지 않아도 되도록 한다. 이로 인해 리사이클러뷰의 성능이 크게 향상된다. RecyclerView 구성요소의 역할어댑터: 뷰와 데이터를 분리하는 역할을 한다.뷰홀더: 각각의 아이템뷰를 캡슐화하여 해당 아이템의 데이터를 바인딩한다. RecyclerView의 데이터 위치액티비티에서는 어댑터에 데이터를 넣어주고, 어댑터에서는 받은 데이터를 관리한다.결론적으로 리싸이클러뷰는 어댑터의 데이터를 가지고 있게 된다. RecyclerView의 OOP적 특징액티비티는 어..
앱개발 숙련 1주차 정리 - 3 다이얼로그 다이얼로그란? 사용자가 추가정보를 입력하거나 결정을 내리게 할 때 쓰이는 작은 창이다. 일반적으로 모달 형태로 나타나서 사용자가 다른 작업을 하기 전에해당 다이얼로그에서 요구하는 작업을 완료하도록 유도한다. 다이얼로그 구조다이얼로그는 제목(1), 콘텐츠 영역(2), 작업 버튼(3)으로 이루어져있다. 제목은 선택사항으로 단순 메시지나 질문을 하는 경우에는 없어도 된다.대화 상자 하나에 작업 버튼은 3개를 초과해서는 안된다. 다이얼로그 예제 각 버튼을 누르면 해당하는 다이얼로그를 띄운다. 기본 다이얼로그binding.btn1Alert.setOnClickListener { // 다이얼로그 생성 val builder = AlertDialog.Build..
앱개발 숙련 1주차 정리 - 2 프래그먼트 프래그먼트란? 프래그먼트는 액티비티 위에서 동작하는 모듈화된 인터페이스이다.프래그먼트를 사용하면 한 개의 액티비티 화면 안에서 특정 영역만 교체가 가능하다. 액티비티와 프래그먼트의 차이 액티비티는 인텐트를 통해서 데이터를 전달하지만,프래그먼트는 메소드를 호출시켜 다른 화면에 데이터를 전달한다. 프래그먼트 사용이유액티비티로 화면을 계속 넘기는 것보다, 프래그먼트를 이용하여화면의 일부만 바꾸는 것이 자원의 이동량이 적어 속도가 더 빠르다. 또한 액티비티를 적게 만들게 되어 액티비티의 복잡도가 줄어든다. 프래그먼트 전환 함수private fun setFragment(frag : Fragment) { // 프래그먼트 트랜잭션 시작 supportFragm..
앱개발 숙련 1주차 정리 - 1 뷰 바인딩 gradle 설정android{ ... buildFeatures{ viewBinding = true }}android studio 버전이 4.0이상이면 해당 구문을 그래들 파일에 추가한다. Activity 설정class MainActivity : AppCompatActivity(){ private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layou..
챌린지반 3주차 세션 과제 과제 1 과제 내용 요구사항에 맞춰 디자인 패턴 2개를 구현한다. Singleton 패턴object Logger{ fun log(message: String){ println("log: $message") }}fun main() { Logger.log("Hello, World")}Object로 Logger 클래스를 선언하여 싱글톤 패턴을 구현한다.해당 클래스는 시스템 전체에서 단 하나의 인스턴스만 존재하게 된다. 클래스.메소드 형식으로 오브젝트의 메소드를 호출할 수 있다. Stragety 패턴interface TextAlignmentStrategy { fun textAlign(text: String) : String}class LeftAl..