분류 전체보기 91

[코틀린(Kotlin)] 프래그먼트 (Fragment)

프래그먼트 (Fragment) 액티비티 위에서 동작하는 모듈화 된 사용자 인터페이스 액티비티와 분리되어 독립적으로 동작할 수 없다 여러 개의 프래그먼트를 하나의 액티비티에 조합하여 창이 여러 개인 UI를 구축할 수 있다 하나의 프래그먼트를 여러 액티비티에서 재사용할 수 있다 1. 액티비티와 프래그먼트 비교 액티비티 - 시스템의 액티비티 매니저에서 인텐트를 해석해 액티비티 간의 데이터를 전달 프래그먼트 - 액티비티의 프래그먼트 매니저에서 메서드로 프래그먼트 간의 데이터를 전달 2. 프래그먼트를 사용하는 이유? Activity로 화면을 넘기는 것보다 Fragment로 일부만 바꾸는 것이 자원 이용량이 적어 속도가 빠르기 때문 3. 프래그먼트를 정의하기 3-1. 안드로이드스튜디오에서 File → New → F..

[코틀린(Kotlin)] 리사이클러 뷰 (RecyclerView)

리사이클러 뷰 (RecyclerView) 안드로이드 앱에서 리스트 형태의 데이터를 표시하는 데 사용되는 위젯 여러 아이템을 스크롤 가능한 리스트로 표현하며, 많은 아이템을 효율적으로 관리하고 보여주는 역할을 한다 한정적인 화면에 많은 데이터를 넣을 수 있는 View View를 재활용(Recycle) 해서 사용 리스트 뷰(ListView)와 리사이클러 뷰(RecyclerView) 리스트 뷰 (ListView) - 사용자가 스크롤할 때마다 위에 있던 아이템은 삭제되고, 맨 아래의 아이템은 생성되길 반복한다 - 아이템이 100개면 100이 삭제, 생성을 반복하므로 성능에 좋지 않다 리사이클러 뷰 (RecyclerView) - 사용자가 스크롤할 때, 위에 있던 아이템은 재활용돼서 아래로 이동하여 재사용한다 - ..

[코틀린(Kotlin)] 어댑터 뷰(AdapterView), 리스트 뷰(ListView), 그리드 뷰(GridView)

어댑터 뷰 (AdapterView) 리스트 뷰 (ListView) 그리드 뷰 (GridView) 이미지그리드 뷰 1. 어댑터뷰 여러 개의 항목을 다양한 형식으로 나열하고 선택할 수 있는 기능을 제공하는 뷰 어댑터 뷰는 표시할 항목 데이터를 직접 관리하지 않고, 어댑터라는 객체로부터 공급한다 1-1. 어댑터 뷰의 종류 리스트 뷰(ListView) : 항목을 수직으로 나열시키는 방식 그리드 뷰(GridView) : 항목을 격자형태로 나열시키는 방식 1-2. 어댑터란? 데이터를 관리하며 데이터 원본과 어댑터 뷰 사이의 중계 역할 요약) 어댑터에 정의된 인터페이스를 바탕으로 필요한 정보를 요청하여 항목 뷰를 화면에 표시하거나 선택된 항목 뷰를 처리한다 1-3. 어댑터의 종류 BaseAdapter - 어댑터 클래..

[코틀린(Kotlin)] 뷰바인딩(ViewBinding)

뷰 바인딩(ViewBinding) findViewById를 대체하기 위해서 나왔다고 한다 모듈에서 사용 설정된 뷰 바인딩은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성한다 1. 우선 뷰바인딩을 쓰기 위해선 gradle 설정부터 해야 한다 android{}에 해당 코드를 추가해 준다 2. Activity의 코드를 수정해 준다 뷰바인딩을 사용할 Activity에서 해당 코드를 추가해 준다 (9, 14, 15, 17 라인) 번외) gradle, activity 코드 결과 두 방법 모두 결과는 똑같다 findViewById와 차이점 NullSafe 직접 참조를 생성하므로 유효하지 않은 뷰 ID로 인해 null 포인터 예외가 발생할 위험이 없다 Type safety 각 바인딩 클래스에 있는 필드의 ..

[코틀린(Kotlin)] 깃 에러 LF CRLF git error

팀 프로젝트 중 push 하려고 커밋하기 위해 git add .을 하니까 떴던 에러 warning: in the working copy of '.gitignore' LF Will be replaced by CRLF the next time Git touches it 항상 문제가 생기면 구글링부터 해보는데, 내가 겪은 문제를 겪어보신 분들은 항상 계신다 그리고 그걸 정리까지.. 까먹을 수 있으니 복기하도록 한다.. 보통 운영체제가 다른 개발들이 협업할 때 발생하는 에러라고 한다 유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어지는데, 윈도우에서는 줄 하나가 CR(Carriage Return)와 LF(Line Feed) = CRLF로 이루어진다고 한다 그래서 Git이 어떤 걸 선택할지 몰라..

[코틀린(Kotlin)] android uri is not registered 에러

레이아웃을 공부한답시고 무지성 레이아웃 생성하다가 android uri is not registered 에러가 떴다 android uri is not registered android uri is not registered 에러는 manifest 파일에서 xmlns에 해당하는 uri를 인식하지 못해서 생긴다고 한다 해결법 File → settings → languages and frameworks → schemas and DTDS 선택 후 ignoredschemas and DTDs에 에러가 뜬 uri를 추가해 주고 OK 한다 (xmlns 다 안치고 큰 따옴표("") 안에 있는 것들만 추가해 주면 된다)

[코틀린(Kotlin)] KPT 회고 방법론을 통한 팀과제 회고

KPT 회고 방법이란? Keep : 이번 프로젝트에서 진행한 과정 중 다음 프로젝트에서도 유지했으면 하는 부분 Problem : 이번 프로젝트에서 발생한 문제점을 객관적으로 판단 Try : 다음 프로젝트를 위해 해야 할 노력 + Feel : 이번 프로젝트를 통해 느낀 점 KPT를 하는 이유? 단체의 성장을 위해서 팀원 간의 불화, 애로사항은 큰 방해 요소이다. 그런 방해 요소를 가장 효율적이고 합리적으로 제거하는 방법이 바로 KPT 회고이다. [팀 프로젝트] 간단한 SNS 만들어보기 KPT Keep : 다음 프로젝트에서도 유지했으면 하는 부분 문제가 생겼을 때 지속적으로 대화를 하면서 풀어가는 과정을 유지했으면 좋겠다. 하나의 기능을 여러 명의 시점으로 보고 다양한 방법을 공유하는 것을 유지하는 것이 좋..

[코틀린(Koltin)][팀 프로젝트] 간단한 SNS 만들어보기 (4

오늘 구현한 것 로그인, 회원가입 페이지(SignInActivity, SignUpActivity) 회원 정보 관리 기능 → 1. [중복 체크] 회원가입 시에 이름, 이메일 등이 담긴 UserInfoList.kt에서 값을 받아와 이미 존재하는 이메일을 입력 후 중복체크 버튼을 누르면 회원가입이 완료(로그인 액티비티로 데이터 intent 및 전환)되지 못하도록 함 → 2. [임의로 생성해 둔 회원 정보로 로그인]? 로그인 시에 이름, 이메일 등이 담긴 UserInfoList.kt에서 값을 받아와 이미 존재하는 이메일을 입력하면, 로그인이 되고 우측 상단에 UserInfoList에서 해당 이메일이 있는 리스트의 name값을 받아와 적용시킨다 1-1. 중복체크 SignUpActivity.kt - btn_repe..

[코틀린(Kotlin)][팀 프로젝트] 간단한 SNS 만들어보기 (3

오늘 구현 & 해야 할 것 로그인, 회원가입 페이지(SignInActivity, SignUpActivity) - 1. 회원가입 페이지에서 완료버튼 누르면 이메일, 패스워드 로그인 페이지로 보내주기 - 2. 회원가입 페이지에서 완료버튼 누르면 이름 메인페이지로 보내기(SignUp → SignIn → MainActivity) - 3. 유효성 검사 (간단하게 이메일 형식인지만 체크) - 4. 하드 코딩 → strings.xml에 문자열 관리 - 5. (해야 할 것) 회원 정보 관리 기능 1-1. 회원가입 페이지에서 완료버튼 누르면 이메일, 패스워드 로그인 페이지로 보내주기 SignInActivity에서 registerForActivityResult()를 사용해서 SignUpActivity에서 이름, 이메일, ..

[코틀린(Kotlin)][팀 프로젝트] 간단한 SNS 만들어보기 (2

오늘 구현 & 도전한 것 로그인, 회원가입 페이지(SignInActivity, SignUpActivity) - 1. 비밀번호 입력 시, 보안을 유지하기 위해 ***로 표시하기 - 2. 로그인, 회원가입 중 예외 발생 시 사용자에게 안내 메시지 - 3. (도전) 유효성 검사 1. 비밀번호 입력 시, 보안을 유지하기 위해 ***로 표시하기 비밀번호가 입력되는 EditText의 inputType = "textPassword"로 바꿔준다 2. 로그인, 회원가입 중 예외 발생 시 사용자에게 안내 메시지(토스트 이용) 3. (도전) 유효성 검사 SignUpActivity에서 Email과 비밀번호에 유효성 검사를 추가하려고 TextWatcher에 대해서 하루종일 봤는데도 구현은커녕 프로그램이 자꾸 다운됐다 팀원분들이..