안드로이드
-
[Android] Fragment 데이터 전달안드로이드 2024. 4. 11. 20:57
✏️ TIL(Today I Learned) 프래그먼트의 데이터 전달에 대해 알아보기 위해 프로젝트를 만들었다. 우선 액티비티에서 프래그먼트로 데이터를 전달하는 것을 확인하기 위해 메인 엑티비티와 프래그먼트를 2개 만들었다. activity_main.xml에 FrameLayout을 만들어서 이곳에 프래그먼트를 위치할 것이다. MainActivity에서 supportFragmentManager를 사용해 frameLayout에 동적으로 프래그먼트 추가했다. [1] Activity ➝ FirstFragment 데이터 보내기 그리고 각 버튼의 클릭 리스너 안에서 FirstFragment의 인스턴스를 생성하고, newInstance 메소드에 데이터를 전달하여 프래그먼트를 설정(set)했다. 클릭 시, 데이터 전달과..
-
[Android] 간단한 RecyclerView안드로이드 2024. 4. 11. 16:48
✏️ TIL(Today I Learned) RecyclerView를 사용하는 방법을 이해하기 위해 간단한 앱을 만들었다. activity_main.xml에는 RecyclerView하나만을 넣었다. 그리고 RecyclerView의 아이템을 나타낼 item_recyclerview.xml을 원하는 형태로 만들었다. 그다음, RecyclerView에 표시될 각 항목의 뷰를 생성하고 관리할 Adapter를 만들어줬다. onBindViewHolder() 메소드를 사용하여 데이터를 해당 뷰에 바인딩했다. class MyAdapter(val myItems: MutableList) : RecyclerView.Adapter() { interface ItemClick { fun onClick(view : View, posi..
-
[Android] MVVM 패턴 회원가입 유효성 검사안드로이드 2024. 4. 9. 20:58
✏️ TIL(Today I Learned) 기존에 만들어둔 회원가입 유효성을 확인하는 프로젝트가 모든 로직을 뷰모델에만 의존하는 것 같아서 분리해 봤다. [Android] 회원가입시 LiveData 사용한 비밀번호 유효성 검사 (ViewModel/ Pattern, Matcher 정규식) ✏️ TIL(Today I Learned) 회원가입시, 비밀번호의 조건을 만족할 때까지 아래에 주의문구가 보이도록 만들었다. LiveData를 사용하여 입력받은 text를 관찰하면서, 조건을 만족하면 주의문구의 visibility muk-clouds.tistory.com 우선 SignUpMember 데이터 클래스를 만들어서 회원가입 시 사용되던 변수들을 하나로 묶었다. data class SignUpMember( val ..
-
[Android] 인스타그램 클론 코딩 팀 프로젝트 KPT 회고록안드로이드 2024. 4. 8. 20:31
1. 원스타그램 프로젝트 소개 프로젝트 의미 '1조'의 '첫'번째 프로젝트 실제 Instasgram SNS의 디자인과 기능을 차용하여 구현 게시물과 스토리 버튼을 통해 회원가입 된 친구 목록 및 정보 확인 가능 2. 프로토타입 3. 앱 시연영상 4. 제작과정 및 협업과정 4.1 팀 플랜 복잡한 기술보다는 팀원 간 '협업과 의사소통'에 주안점 코드 컨벤션 해상도 통일 Emulator: nexus 5 api 31 통일 kt 파일: Camel Case / XML파일: Snake Case string 파일 이용하여 text 작성 주석 설명 구체적으로 달기 Git 컨벤션 4.2 타임라인 4/1: 기획 요구사항 명세서 👉 구현사항 분석 와이어 프레임 구상 기술 스택 선정 역할분배 4/2 ~ 4/3: 개발 Git과 ..
-
[Android] [인스타그램 클론 코딩] 갤러리 접근 허용 & 사진 이미지 뷰에 등록 (registerForActivityResult() 사용)안드로이드 2024. 4. 3. 15:34
✏️ TIL(Today I Learned) 맨 왼쪽의 파란색 + 버튼이 겹쳐진 이미지 뷰를 클릭하면, 갤러리 접근 허용 권한을 선택할 수 있게 했다. 사용자가 허용한다면, 갤러리를 열어 선택된 사진이 이미지 뷰에 등록되도록 했다. 권한을 얻기 위해, AndroidManifest.xml에 아래 코드를 추가한다. // AndroidManifest.xml 그다음 Activity에서 이미지뷰 클릭 시, 갤러리 접근 권한을 확인한다. registerForActivityResult()를 사용하여, 권한이 허용되어 있으면 갤러리를 열어 선택한 사진을 이미지뷰에 등록한다. 권한이 없으면, 권한을 허용 여부를 묻도록 했다. class MainActivity : AppCompatActivity() { private lat..
-
[Android] Dark theme 구현 (다크 모드 전용 리소스 정의)안드로이드 2024. 4. 3. 11:57
✏️ TIL(Today I Learned) 다크 모드 전용 리소스를 정의했다. 애뮬레이터에서 어두운 테마를 적용하면, 다크 모드 전용 리소스가 불러와진다. 다크모드 여부에 따라 다른 이미지를 사용하려면, 우선 drawable-night 폴더를 res 밑에 생성한다. 여기에 동일한 이름의 다크모드용 이미지를 넣은 뒤, android:src 대신 app:srcCompat을 사용하면 된다. 그러면 다크모드로 전환될 때, 자동으로 drawable 대신 drawable-night 폴더에 있는 이미지를 사용한다. // activity_main color도 마찬가지이다. values-night 폴더에 color.xml 파일을 생성하고,동일한 이름을 붙이면 된다.
-
[Android] [Kotlin] addTextChangedListener와 setOnFocusChangeListener의 차이 (EditText 입력 변화 이벤트 처리)안드로이드 2024. 4. 2. 20:55
✏️ TIL(Today I Learned) EditText 입력 변화 이벤트 처리에 사용되는 addTextChangedListener와 setOnFocusChangeListener의 차이에 대해서 공부했다. addTextChangedListener는 EditText에서 텍스트가 변경될 때마다 호출되는 리스너를 설정하는 메소드이다. 사용자가 EditText에 텍스트를 입력하거나 수정할 때마다 호출된다. 따라서, 텍스트의 변화에 반응하여 실시간으로 검증이나 처리를 수행하는 데 사용된다. 예를 들어, 실시간으로 입력한 텍스트의 길이를 체크하거나 특정 형식에 맞는지 검증할 때 사용한다. setOnFocusChangeListener는 뷰의 포커스가 변경될 때 호출되는 리스너를 설정하는 메소드이다. 이 리스너는 사..
-
[Android] [인스타그램 클론 코딩] 스토리 UI 만들기 (원형 이미지 뷰: CircleImageView)안드로이드 2024. 4. 2. 18:19
✏️ TIL(Today I Learned) 팀 프로젝트로 간단하게 인스타그램을 구현해 보기로 했다. 메인 페이지를 맡게 되어서 우선 스토리 UI를 만들어봤다. 우선 제일 왼쪽의 파란색 + 버튼이 겹쳐진 이미지 뷰를 클릭하면, 갤러리를 열어 사진을 선택할 수 있게 했다. 선택된 사진이 이미지 뷰에 등록되도록 했다. HorizontalScrollView으로 스토리들이 좌우로 스크롤되도록 만들었다. android:scrollbars="none"으로 설정하여 아래에 스크롤바를 숨겼다. 그리고 FrameLayout을 사용해 파란색 + 이미지가 겹쳐지도록 했다. // activity_main // 중간 생략 de.hdodenhof.circleimageview.CircleImageView를 사용해 스토리 이미지 뷰를..