728x90
반응형

Android/StoreInfo 51

<정리> 챌린지반 과제 2

오늘 수업을 들었다. 흐음... 뷰모델을 잘 썼다고 생각했었는데 너무나 많이 부족했다. 다 한 사람이나 어느 정도 완성한 사람 손 들어보라고 해서 들었던 내가 부끄러웠다...ㅎ 그래서 수업을 마치고 달리기 시작했다. 1. Spinner 관리 이게 진짜 제일 어렵고 이해 안되고 머리를 띵- 하게 만들고 결국 약간의 타협으로 결과가 나온 부분이다. 참 여러가지 상황이 나왔다. 스피너가 클릭 이벤트를 무시하거나 넘어가거나 튕기거나... 이러한 상황을 유발하는데 가장 큰 공헌을 한 것은 관리하는 변수에 대한 역할을 크게 잡았다는 것이다. 조금 더 작게 나누니까 해결이 되더라 처음에 나는 서비스제공자를 가지고 EditText 텍스트 값도 채우고 스피너의 값도 조절하려고 했었다. 이렇게 했더니 원하지 않을 때 실행..

Android/StoreInfo 2024.01.08

<정리> 사과마켓 앱 구현 2

어쩌다보니 오늘 2개를 올리게 됐다. 저번 구현 1은 필수 구현 과제가 다 올라가서 거기다 붙혀서 올리기는 좀 그렇더라 1. 플로팅 액션 버튼을 이용한 스크롤 상단 이동 1) 플로팅 액션 버튼 세팅 플로팅 액션 버튼은 xml 상에서 세팅하는게 제일 어려웠다. 뭐하나 기존에 알던 대로 하면 원하는대로 작동을 안 하더라 그렇게 알게 된 것들을 정리해보겠다. app:shapeAppearance="@style/FloatingButtonTheme” - 버튼의 모양을 커스텀할 수 있는 속성인듯함 - 기본 : 약간 모서리 깎은 사각형 - 스타일에서 cornerSize값을 조절해서 원형으로 만듬 android:backgroundTint="@color/selector_fab_click" - 배경 색 지정 - 기본 : 회..

Android/StoreInfo 2024.01.05

<정리> 사과마켓 앱 구현 1

이번주 개인 과제로 나온 사과마켓 앱 처음 들을 때 당근마켓의 느낌이 물씬났는데 맞았다. 지금은 필수구현과제까지 마무리한 내용을 적어놓으려고 한다. 최대한 예제와 비슷하게 하려다 보니 기능 구현보다 레이아웃에 시간을 더 많이 사용했던 거 같다. 기능 자체는 이번주차 강의를 수강했다면 약간의 구글링으로 해결할 수 있었던 거 같다. 1. 레이아웃 관련 요즘은 ConstrainLayout에 푹 빠져있다. 아주 편하고 좋다. 이 과제를 하면서 Layout은 다 ConstraintLayout을 썼다. 레이아웃을 짜면서 가장 어려웠던 건 id를 붙이는 거였다. '어떻게 하면 id 딱 보고 어떤 건지 알 수 있을까?'라는 고민이 많이 들었었다. 그러다보니 좀 길어지고 그러는데 이건 나중에 피드백을 받아보겠다. 메인 ..

Android/StoreInfo 2024.01.05

<정리> 챌린지반 과제 1

예전에 자기소개 앱 구현 글에서 이어지는 거지만 이제는 앱 구현이 아니라 세부 기능들에 대한 조정과 최적화만 들어가있기 때문에 따로 글을 뺐다. 저번 글 이후로 벌써 2주나 지났다... 아마 계속 지금 프로젝트에 겹쳐서 진행이 될 거 같아 또 시리즈로 적어나갈 생각이다. 1. enum class 나는 enum class를 쓰라고 하셨을 때 도대체 어디에 쓰라고 하시는건가 싶었다. 그래서 이 부분은 손도 안 대고 갔었는데 에러 메세지를 한 곳에 모아놓는데 사용할 수 있다는 걸 알게 되었다. 또한 액티비티 이동 간 엔트리 타입들을 모아놓는데에도 사용하는 것도 봤다. 첫 번째로 에러 메세지를 모아둔 enum class다. enum class SignUpErrorMessage( @StringRes val mes..

Android/StoreInfo 2024.01.05

<강의> 안드로이드 앱 개발 숙련 1주차

1. 뷰 바인딩 혼자서 앱 개발을할 때는 그냥 검색해서 편하다고 하니까 그냥 썼었다. 그런데 강의에 나오기도 했으니 정리하고 지나가야겠다. 1) 소개 뷰 바인딩이 나오게 된 가장 주된 이유는 findViewById를 대체하기 위해서다. 정말로 코드를 작성하다보면 뷰 객체를 많이 만들게 되는데 이를 초기화할 때마다 findViewById를 쓰고 있자면 좀 귀찮았다. 그런데 뷰 바인딩을 쓰게 되면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있을 뿐만 아니라 짧고 간결하고 가독성 좋게 작성할 수 있다. 안 쓸 이유가 없다고 생각한다. 모듈에서 사용 설정된 뷰 바인딩은 모듈에 있는 각 xml 레이아웃 파일의 결합 클래스를 생성한다고 하는데 코틀린 코드 파일과 xml 레이아웃 파일을 연결시킨다고 생각하면 될 거 같..

Android/StoreInfo 2024.01.04

LiveData에 대한 이해

1. LiveData 소개 LiveData는 데이터의 변경을 관찰할 수 있는 데이터 홀더 클래스다. LiveData는 생명주기를 인식하기 때문에 액티비티, 프래그먼트, 서비스 등 다른 앱 구성요소의 생명 주기를 고려한다. 따라서 앱 구성요소가 활성 상태(STARTED or RESUMED)일때만 데이터를 업데이트한다. LiveData가 생명주기를 인식할 수 있는 이유는 안드로이드 생명주기를 알고 있는 LifeCyleOwner 클래스를 가지고 있기 때문이다. LiveData는 옵저버 객체와 함께 사용하는데 LiveData가 가지고 있는 데이터에 변화가 생기는 경우, LiveData는 등록된 옵저버 객체의 생명주기가 활성 상태인지 확인한 다음 활성 상태라면 데이터 변화를 알려주고, 옵저버의 onChanged(..

Android/StoreInfo 2024.01.03

ViewModel에 대한 이해

1. ViewModel 소개 MVVM 디자인 패턴으로부터 파생된 ViewModel은 Android Jetpack의 구성요소 중에 하나이고 Android Architecture Components 중에 하나이며, 비즈니스 로직 또는 화면 수준 상태 홀더다. UI에 상태를 노출하고 관련 비즈니스 로직을 캡슐화한다. 좀더 덧붙이면 UI 컨트롤러의 로직에서 UI에 노출되는 데이터를 다루는 로직을 분리하기 위해 등장한 요소이다. 장점은 UI 관련 데이터를 저장하고 관리하여 UI 상태를 유지함으로 여러 구성 변경에도 이를 유지한다는 것과 비즈니스 로직에 대한 액세스 권한을 제공한다는 것이다. 기존에 UI 관련 데이터를 가지는 일반 클래스로 UI 데이터를 표시했는데 이는 이벤트나 화면 이동할 때 문제가 될 수 있었다..

Android/StoreInfo 2024.01.02

<정리> 자기소개 앱 구현 4

저번 3까지는 거의 챌린지반의 내용만 들어가있었는데 오늘 과제를 제출하고 해설영상을 보고 나니까 기본 개인 과제도 보완할 점들이 생겨서 이 부분들을 정리해놓으려고 한다. 1. 문자열 정리 이건 저번에 적어놨던 내용인데 그건 챌린지반 과제에서만 했었고 여기에서는 안 했었다. 그래서 이번에 추가를 했다. 전에는 일일이 적었었는데 마우스를 문자열에 클릭하고 잠시 기다리면 왼쪽에 노란 전구가 뜨고 거기에서 Extract string resource를 누르고 name만 입력하면 strings.xml에 추가가 되더라 이것도 자주 쓰게 될 거 같다. Introducemyself 종료 이름 이름을 입력하세요. 아이디 아이디를 입력하세요. 비밀번호 비밀번호를 입력하세요. 회원가입 로그인 회원가입 입력되지 않은 정보가 있..

Android/StoreInfo 2023.12.20

<정리> 자기소개 앱 구현 3

1차로 마무리되는 월요일이었다. 잘 마무리했고 더 이상 만질 게 없을 거라고 생각했지만 그 생각을 비웃기라도 하듯이 튜터님의 해설은 더 할 게 있다는 걸 많이 알려주었다. 1. 문자열 사용 나는 문자열, 특히 반복돼서 사용되거나 한 번 쓰이는 거 모두 그냥 따옴표 안에 코드로 작성했다. 그러나 오늘 튜터님 말하는 걸로는 그런 문자열을 strings.xml에 모아놓는 습관을 들이라고 하더라 이후의 번역 작업이나 수정의 용이성을 위해서... 정말 귀찮은 작업이지만 나도 튜터님의 예제를 받아서 잘 작성을 했다. 이름 이름을 입력해주세요. 이메일 gmail.com kakao.com naver.com 직접입력 이메일을 입력해주세요. 이메일 주소를 입력해주세요. 올바른 형식이 아닙니다.(예: xxx.com) 비밀번..

Android/StoreInfo 2023.12.18

<정리> 자기소개 앱 구현 2

[깃허브] 12.18 링크 추가 예정 어제 구현을 다 마치고 오늘은 궁금했던 것을 오전에 튜터님께 물어보러 갔었다. 챌린지반 담당 튜터님이라 더 편하게 얘기를 했는데... 뭔가 추가과제를 얻어온 느낌이랄까? 물론 궁금했던 것은 잘 해결되었다... 잘 해결되었는데 뭔가 할게 더 많아진 느낌? 궁금했던 거는 사실 이유가 궁금했던 거고 간단히 수정이 가능한거면 하고 아님 말고 수준의 내용이었다. 나만의 추가과제는 오전부터 시작해서 지금까지 진행하다가 내가 보기에 마무리가 된 거 같아서 스톱했다. 1. applicationContext 이걸 질문하러 갔었다. ContextCompat.getColor()를 사용할 때 Context를 넣어야하는데 어디에서는 this가 되고 어디서는 안되서 applicationCon..

Android/StoreInfo 2023.12.15
반응형