Kotlin_study (20) 썸네일형 리스트형 [HiStory 리팩토링] 2. 카카오 로그인 기능 적용 목차 1. 초기 세팅 2. 안드로이드 스튜디오에서의 세팅 3. 이후 계획 4. 참고문헌 이전에 개발 기간에 쫓겨 구현하지 못했던 소셜 로그인 기능을 추가하고자 한다. 1. 초기 세팅 KaKao Developer에서 앱을 추가해주어야 한다. 이때는 특별히 해줄 것 없이 설정을 완료해주게 되면 앱 키 목록이 나오는데 이 중 자신의 용도에 맞는 키를 선택하면 된다. 나는 안드로이드이기 때문에 네이티브 앱 키를 선택했다. 그 다음 카카오 로그인 설정을 들어가 활성화 시킨다. 활성화 시키지 않을 경우 카카오 로그인을 시도했을 때 KOE004 코드가 뜨게 된다. 그리고 플랫폼에 들어가서 키 해시 값을 입력해주어야 하는데, Android | Kakao Developers 문서 이 링크를 참고하면 쉽게 할 수 있다. .. [HiStory 리팩토링] 1. 리팩토링을 시작하다 목차 1. 첫 프로젝트 HiStory 2. 리팩토링을 하는 이유 3. BottomNavigation 수정 4. 참고문헌 1. 첫 프로젝트 HiStory HiStory는 UMC 1기 활동을 하며 처음으로 안드로이드 개발자이자 PM으로 진행했으며, 런칭까지 했던 프로젝트이다. 안드로이드 개발자 2명, 서버개발자 3명, 디자이너 1명이 팀이 되어 진행했다. 2. 리팩토링을 하는 이유 부끄럽지만, 당시는 런칭을 하는데에 급급해 구글링을 통해 앱이 굴러가게만 하는데에 집중했다. 그래서 발생한 결과가 왼쪽과 같은 모습이다. 지난 학기 객체지향프로그래밍 수업을 들으면서 설계를 한 후 진행한다면 개발이 얼마나 빠르게 진행될 수 있는지 경험할 수 있었다. (물론 설계가 잘못되었을 때는 수정사항이 많이 발생했지만..) 또.. [Kotlin] Custom Calendar Library(kizitonwose) 사용하기 ## 다이어리 프로젝트 with SandBurger [Kotlin] CosmoCalendar library 사용하기 (tistory.com) 지난 포스팅에서 cosmocalendar 라이브러리를 사용하여 calendar를 커스텀하는 작업을 진행했습니다. 하지만 커스텀하는 과정에서 저희 프로젝트에서 원하는만큼의 커스텀이 어렵다고 판단하여 새로운 라이브러리를 찾게 되었고, 그 결과 kizitonwose CalendarView 라는 라이브러리를 사용하게 되었습니다. 완성된 화면은 아래와 같습니다 CalendarFragment.kt class DayViewContainer(view : View) : ViewContainer(view) { val textView = ItemCalendarDayBinding.bin.. [Kotlin] 동기와 비동기 살펴보기 코드를 짜면서 계속해서 나의 부족함에 대해 생각했다. 현재 너무 주먹구구식으로 코드를 작성하고 있고, 팀에 안드로이드 개발자가 혼자이다 보니 코드에 대한 피드백을 받을 수 없어 실력이 늘지 않는다는 생각을 했다. 이 문제를 해결하기 위해 개발과 병행하며 기초를 공부해야겠다는 생각을 하였고, 마침 오늘 Room DB 관련하여 코드를 작성하며 비동기 처리에 대해 살펴볼 기회가 있었다. 동기, 비동기 동기란 이전 작업이 종료될 때까지 기다렸다가 다음 작업을 진행하는 것, 비동기란 이전 작업이 종료될 때까지 기다리지 않고 실행하는 것. 이렇게 보았을 때 비동기는 동시에 여러 작업을 처리할 수 있으니, 늘 비동기적으로 동작하도록 코드를 작성해야 하는 것인가? 라는 생각이 들었다. 내 생각은 우선 NO였다. 작업에.. [Kotlin] Android font 적용하기 ## 다이어리 프로젝트 with SandBurger 영어 폰트는 Roboto를 사용하여 추가할 필요가 없지만, 한글 폰트는 Spoqa Han Sans Neo를 사용하여 추가하였다. 폰트 다운로드 링크 : Spoqa Han Sans Neo Spoqa Han Sans Neo Spoqa unveil the new Spoqa Han Sans Neo, which has evolved in many ways. | 여러모로 개선을 거쳐 진화한 스포카 한 산스 네오를 공개합니다. | これまでいろいろ改善して進化した新しいスポカーハンサンスネオ spoqa.github.io res/font font directory 생성 후, 다운로드 받은 폰트 파일을 넣어줍니다. 이때 파일명은 소문자로 해야합니다. app_font.xml 안.. [Kotlin] Custom Dialog 사용하기 ## 다이어리 프로젝트 with SandBurger 디자이너분께서 버튼을 눌렀을 때 위의 이미지처럼 Dialog를 호출하는것을 요청하셔서 AlertDialog를 커스텀하게 됐다. + 2022.07.06 수정 기존에 xml에 적용했던 background 속성을 지우고 alertDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) dialog 호출 전 위와 같은 코드를 추가해주었다. 여기서 window가 무엇이길래 기존에는 둥글게 보이지 않던 것을 둥글게 보이게 해주는 것인지 궁금하여 찾아보았다. What is an Android window? - Stack Overflow 화면을 가리키는 속성인데 여기서는 alertDialog가 화면.. [Kotlin] CosmoCalendar library 사용하기 ## 다이어리 프로젝트 with SandBurger 종강과 함께 잠시 쉬고있던 프로젝트를 다시 시작했습니다. 프로젝트의 핵심 기능을 구현하기 위해 달력 커스텀이 필요하여 cosmocalendar 라이브러리를 사용하여 구현하였습니다. 동작과정은 아래와 같습니다 일정 추가 화면입니다. 여기서 시작일, 종료일 클릭 시 각각 하단에 calendar가 보이며 날짜를 선택할 수 있고, timePicker를 사용하여 시간 선택을 하게 했습니다. fragment_add_schedule.xml AddScheduleFragment.kt 원하는 날짜를 선택하고 이를 원하는 방식으로 처리하기 위해서는 calendarview.selectedDays를 통해 선택한 날짜를 가져와서 필요한 데이터를 이용하여 처리해야합니다. 제 경우.. [Kotlin] Bottom Navigation Icon Click Event 처리 Flo 클론코딩을 할 때도 그랬지만, Bottom Navigation Bar는 요즘 사용하는 어플에서 빼놓을 수 없는 요소라고 생각한다. 아이콘을 클릭하는 걸로 Fragment가 전환되게끔 하는 코드는 짜봤었지만, 유저가 어느 화면에 위치해 있는지 알기 위해서는 현재 화면의 아이콘만 색상을 변경해줄 필요가 있다고 느꼈다. 그래서 이를 코드로 짜봤다. //menu.xml menu.xml에는 하단에 위치할 아이콘들을 넣어줄 수 있다. 내 경우에는 5개의 아이콘을 사용하기 때문에 item도 5rofmf 만들어줬다. //navigation_my_selector.xml selector를 사용해서 클릭을 하면 아이콘을 ic_menu_my_selected 로 변경하게끔 설정했다. 이렇게 설정하면 아래와 같이 보여지게.. 이전 1 2 3 다음