Android (65) 썸네일형 리스트형 Firebase Auth + 구글 / 페이스북 로그인 (with Compose) 간간히 다운로드수가 발생하지만 정작 가입하는 사람이 없다! 이메일로 가입해야하고 -> 이메일로 로그인해야하니 귀찮아서 더이상 진행을 안하는 것 같다는 생각이 들었다.그래서 파이어베이스와 연동해서 사용할 수 있는 구글/페이스북 로그인을 구현해보았다.사실 카카오/네이버 로그인도 넣어보고싶은데 서버가 있어야 진행이 가능할 것 같아서 일단은 보류하기로 했다! PlayStore Senty - 선물 기록 어플리케이션 - Google Play 앱소중한 사람들과 정성스레 주고받은 선물을 기록해보세요.play.google.com 결과화면 원형 아이콘으로 깔끔하게 버튼을 만들어주었다. 구글 버튼은 아래의 링크에서 다운로드 받아 사용했고, 로그인 브랜드 가이드라인 | Google ID 플랫폼 | Google for.. [Senty] xml 기반의 view에서 Compose로 100% 모든 뷰를 변경 안드로이드 앱 개발을 학습한 이후로, 가장 처음 배포했던 나의 앱 Senty를 리팩토링했다.넣고 싶었던 기능을 더 추가로 넣어주었고, 그 사이에 더 학습한 내용들도 적용해주었다.새삼 .. 이런 것도 할 줄 알게되었구나 느낄 수 있었던 시간 .. (코쓱 가장 하고싶었던 것은 사실 Compose를 적용하는 일이었다!Compose로 변경한 이유?Compose를 처음 알게된 것은 GDSC에서였고, 그때 얼레벌레 사용해보면서 호기심을 자극했었다.상태를 관리하는 것 때문인지 러닝커브가 높다는 평이 있었고, 그래서 더욱 내 프로젝트에 적용해보고싶었다.가장 최근에 진행한 랜덤리즘은 왜 컴포즈를 사용하지 않았냐고 묻는다면, 빠르게 결과물을 내고 싶었기 때문이었다.컴포즈는 익숙하지 않았고 그렇기에 xml으로 레이아웃을 .. 제대로 갈아엎는, 이름까지 갈아엎어버릴 나의 첫 앱, Senty 이번에 예전에~ 아주 처음으로 내가 배포를 해보았던 앱인 Senty 를 갈아엎기로 마음을 먹었고, 거의 완성이 되어간다.(당연함 당장 내일인 5월 31일에 다시 배포하는 것으로 데드라인 정해놓음) 이름도 Senty 에서 91ft 로 변경할 예정 !!gift 에서 gi를 91로 변경 .. 한 것.. ㅋㅋㅋ;ㅋㅋㅋㅋㅋㅋㅋ(아무도 그렇게 생각 못하겠지 ..?)가장 큰 변경점[1] 100% View 기반으로 이루어져있었던 것을 100% Compose 로의 변경컴포즈를 gdsc 에서 활동하면서 처음 접했고, 그때 당시에는 정말 아무것도 모르는 상태에서 얼레벌레 화면을 그렸는데 그런 코드들도 다 넘어가준 해리에게 감사를. .. 아무튼 이번에는 나름대로 컴포넌트들을 나누어보았으나, 다시 한 번 정리가 필요할 것 같다.. [랜덤리즘] 로그인 구현 대작전 (수정) -3 지난번 포스팅 [랜덤리즘] 로그인 구현 대작전(구현) -2 일단 로그인을 구현하기 위해서는 아래의 2가지 상황이 있기 때문에 온보딩 페이지가 필요하다고 생각이 들었다. 1. 로그인을 하는 경우 2. 로그인을 하지 않는 경우 -> 둘러보기 로그인을 하지 w36495.tistory.com 로그인을 구현하는 포스팅 2편의 내용이 잘못되었음을 .. 알게되었다. 잘못되었다고 생각한 부분 LoginFragment 에서 HomeFragment 로 넘어올 때 UserRepository 에 데이터를 캐싱해보자! 해서 UserRepository 의 LiveData 에 데이터를 넣어주었었다. HomeFragment 에서 해당 LiveData 를 관찰자로 설정해주면, 그 값을 사용할 수 있지 않을까? 싶은 마음이었다. 그런데.. [랜덤리즘] 로그인 구현 대작전(구현) -2 일단 로그인을 구현하기 위해서는 아래의 2가지 상황이 있기 때문에 온보딩 페이지가 필요하다고 생각이 들었다. 1. 로그인을 하는 경우 2. 로그인을 하지 않는 경우 -> 둘러보기 로그인을 하지 않는 경우(2번)는 기존에 만들었던 화면으로 이동시켜주었다. 기능을 구현한 순서대로 차근차근 작성해보자고 .. 레스고 .. 아! 그리고 현재 repository에서 LiveData를 사용하고 있는데, LiveData를 사용하는 것이 안좋다는 포스팅을 본 것 같아서 왜 사용하면 안되는지에 대해서 알아 볼 필요가 있을 것 같다. (LiveData 대신 Flow 사용하는 것이 좋다고 함) LiveData 를 사용한 이유는 ViewModel 에서 LiveData 를 사용했기때문에 자연스레 repository 의 변수에도 .. [랜덤리즘] 로그인 구현 대작전 -1 지금까지는 사용자가 풀지 않았거나 풀었거나의 여부와는 상관없이 문제를 보여주었다. 사용자가 풀었던 문제는 보여주지 않고 풀지 않았던 문제들을 보여주기 위해서는 로그인 기능이 필요하게 되었다. 그래서 작성하는 로그인 구현 대작전! 솔브드에서의 로그인은 솔브드에서 로그인 버튼을 누르게 되면 백준 온라인 저지 사이트로 이동한다. 백준 사이트에서 로그인이 완료되어 솔브드로 연동된다는 버튼을 클릭하게 되면, 솔브드에서의 로그인 과정이 성공적으로 끝난다. 그렇다면 솔브드의 api를 사용하는 나는 어떻게 로그인을 구현해야 할까? 가장 먼저 생각한 것은 랜덤리즘에서도 로그인 버튼을 클릭하면 솔브드처럼 로그인의 과정을 거치는 것이다. 근데 생각해보라 ... 그렇다면 사용자는 랜덤리즘 .. 솔브드 .. 백준 .. 의 과정.. [랜덤리즘] Fragment와 ViewModel의 책임을 명확하게 하기 현재 랜덤리즘은 위와 같은 흐름으로 되어있다! 각각의 Fragment 에서 ProblemFragment 로 화면이 전환될 때 네트워크 통신할 때 필요한 소스를 ProblemFragment 의 newInstance 메서드를 통해 arguments 로 전달해주고 있었다. // ProblemFragment.kt fun newInstance(tag: String, value: T): Fragment { return ProblemFragment().apply { arguments = Bundle().putValue(tag, value) } } 아래의 코드는 TagFragment 에서 ProblemFragment 의 newInstance 를 통해 화면을 전환하는 코드이다. // TagFragment.kt paren.. [랜덤리즘] 예외 처리하기, 다이얼로그보다 사용자에게 선택권을 주기 흔한 알고리즘에 대해서는 문제가 많았지만, 덱, 연결 리스트와 같이 100개 미만의 문제를 가진 알고리즘이 많다는 것을 알게되었다. 문제 수가 많은 알고리즘에 대해서만 클릭해보고 기능이 잘 되는지 확인을 해보았기때문에 뒤늦게 알게된 것이겠지 .. 싶다.. 마주한 문제 위의 사진과 같이 덱 알고리즘에서 브론즈에 해당되는 문제는 존재하지 않았다. 네트워크 통신에서는 200으로 성공이었지만, 왜 문제가 보이지 않을까? 해서 주소로 접속해보았다. 일단 결과가 보내졌기 때문에 200으로 성공이 떴지만, 그 속의 내용은 문제가 존재하지 않는다는 count : 0 이 있었다! count가 0인 경우에 대한 예외처리가 필요하구나를 알게되었다. 해결을 위해 생각한 방법 [1] count 가 0으로 전달되었을 때, 다이얼.. 이전 1 2 3 4 ··· 9 다음