본문 바로가기

전체 글

(96)
[91ft] 이미지를 스크롤하여 Crop 하기 굉장히 굉장히 욕심낸 기능이 하나 있었는데 그것은 바로 커스텀 갤러리 .. 커스텀 갤러리 중에서도 크롭 .. 크롭 ..왜냐면 사진을 1:1의 정방향으로만 등록할 수 있는데 그 부분을 사용자가 컨트롤하지 못한다?바로 앱삭제 날릴 것 같았음 (물론 아직 사용자 1이긴한데 (나)) 그런데 라이브러리를 사용하지 않고 하자니 엄청난 여정이 시작된ㄷ ㅏ... ... 왜 라이브러리를 사용하지 않았냐고 묻는다면 마음에 안들었다나는 그냥 해당 화면에 크롭 기능만 있으면 좋겠는데, 살펴보니1. 하나같이 다이얼로그의 형태로 보여지고 + 크롭된다거나 2. 자기들만의 크롭 화면이 따로 있었다는 것 3. 연속으로 크롭이 가능한가?에 대해선 안될 것 같았음 (이미지로만 보긴했지만) 그래서 시작된 커스텀 갤러리, 크롭, 미리보기 레..
[91ft] 최신 버전 정보를 통해 업데이트 여부 판단하기 (Firebase Remote Config) 많은 어플에서 버전 정보를 사용자에게 제공하고, major가 업데이트되면 강제 업데이트 다이얼로그를 표시한다.minor 수준의 버전이 업데이트 되면 사용자에게 업데이트 해야 함을 알려주고 있다! 현재 내 앱에서는 버전에 대한 정보를 제공하지 않고 있기 때문에 이번에 버전 정보를 제공하는 기능을 개발하고자 한다! 처음 사용해보는 Firebase Remote Config이기에 늘 그렇듯 블로그들을 보고 .. 공식문서를 보고 .. 한 후에 기능을 만들어 낼 수 있었다. 아래는 적용한 결과 화면이다! 요구사항1. 사용자는 현재 버전 정보와 최신 버전 정보를 확인 할 수 있다.2. major, minor 수준의 버전이 업데이트되면 업데이트 버튼이 보여지며, 해당 버튼을 클릭하면 플레이 스토어로 이동한다. 요즘에..
[91ft] MVVM에서 MVI로 변경 서론배포해놓은 앱을 혼자 쫌쫌따리 사용하다가 기능을 더 추가하고싶어서 또 리팩토링을 하고있다.기존에 수정하다 만 코드들을 열어서 현재 코드들을 모두 하나하나 수정하고, 그 이후에 기능을 추가하는 방향으로 잡았다.그 중에는 MVVM 패턴을 MVI로 변경하는 과정이 있었다.물론 모두 MVI로 변경한 것은 아니지만 대부분의 UI에 MVI로 적용할 것 같다. 본론1) MVVM -> MVI 변경하게 된 이유일단 MVI로 변경하게 된 이유에 대해서 말해보자면, 팀 프로젝트를 진행하고 있는데 화면이 복잡해지면서 ViewModel이 관리하고 있는 상태가 너무 많아졌다.그러다보니 가독성이 떨어지게되어 한 눈에 파악하기가 힘들었고 그로인해 유지보수가 좋지 않다는 생각을 하고있었다.이 상태를 어떻게해야 가독성이 올라가고 ..
직접 구현해 본 ArrayList - 1 첫 시작은 Stack을 직접 구현해보는 것이었는데 어쩌다보니 ArrayList를 직접 구현해보는 중그 다음은 LinkedList를 할 예정이다! 움하하 일단 ArrayList를 구현하게 된 계기는 ArrayList와 LinkedList의 차이에 대해 서칭해보던 중 한 블로그를 발견했다.그 글은 ArrayList에 대한 설명이었는데, 글 가장 하단에는 ArrayList를 직접 구현해보셨다는 문장을 보고 해보고싶어져서 해보았다. List interface 작성interface MyList { fun get(index: Int): Int fun add(element: Int) fun add(index: Int, element: Int) fun remove(element: Int): Int..
팀 프로젝트를 시작했다 ..! 혼자서만 프로젝트하다가 팀 프로젝트를 구해서 들어갔다 (드디어그런데 개발자만 모여있는 것이 아니라 기획자, 디자이너도 함께 있어서 조금 더 풍성한 경험을 해 볼 수 있을 것 같아 기대된다!!사실 이제 거의 2달정도 지났는데 최근에서야 세팅을 시작했다는 점 .. 그리고 생각보다 혼자 했을때보다 고려해야 할 점이 많구나를 느껴가고 있다!커뮤니케이션을 할 때에도 한번 더 생각해봐야 할 점이 많구나 아! 그리고 항상 혼자만 했다보니 View를 만들고 네트워크 부분을 연결하는 플로우로 진행을 했었는데, 기획과 백엔드가 함께 진행되는 시점에서는 프론트는 할 수 있는 일이 없나 ..? 하는 생각이 들었다디자인이 나와있지 않고, 백엔드에서 api도 나와있지 않다면 프론트는 무엇을 해야할까? 고민을 했었는데 알고리즘이 ..
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 에서 활동하면서 처음 접했고, 그때 당시에는 정말 아무것도 모르는 상태에서 얼레벌레 화면을 그렸는데 그런 코드들도 다 넘어가준 해리에게 감사를. .. 아무튼 이번에는 나름대로 컴포넌트들을 나누어보았으나, 다시 한 번 정리가 필요할 것 같다..