전체 글
-
[Android] [당근마켓 클론 코딩] 메인페이지 구현2 - 키워드 알림 (Notification)안드로이드 2024. 4. 17. 18:01
✏️ TIL(Today I Learned) 지난번에 이어서 이번에는 종 이미지뷰 클릭 시, 알림이 오도록 설정했다. 채널의 중요도를 IMPORTANCE_HIGH로 설정해서, 헤드업 알림이 뜨는 것을 확인할 수 있다. 알림을 클릭하면 MainActivity로 이동하도록 했다. 우선 AndroidManifest.xml에서 권한을 설정해 준다. ... 따로 알림 클래스를 만들었다. 알림을 클릭 시 Intent에 이동할 activity 담아야 하므로, KeywordNotification을 생성할 때 context를 전달하도록 했다. 그리고 Android 8.0 (API 26) 이상의 경우는 알림을 만들기 전에 알림 채널을 먼저 만들어야 한다. init에서 if문을 사용해서 Android 8.0 이상이면 채널을 ..
-
[Android] [당근마켓 클론 코딩] 메인페이지 구현1 (RecyclerView/ addItemDecoration()/ Spinner/ ArrayAdapter)안드로이드 2024. 4. 16. 21:06
✏️ TIL(Today I Learned) 당근마켓을 조금 간소화해서 구현했다. activity_main.xml은 아래와 같이 constraintlayout으로 만들었다. 상단에는 Spinner와 Notification을 생성할 수 있는 종모양의 이미지뷰를 넣었다. 그 아래로는 RecyclerView로 구성했다. 스크롤을 최상단으로 이동시키는 FloatingActionButton도 만들었다. 우선 invisible로 해두고, 스크롤이 거의 마지막에 왔을 때, visible 하도록 바꿔서 클릭 시 상단으로 이동한다. 아이템 사이에 회색줄은 MainActivity.kt 에서 만들었다. // 아이템들 사이에 회색 라인을 추가 binding.recyclerView.addItemDecoration( Divider..
-
[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 파일을 생성하고,동일한 이름을 붙이면 된다.