본문 바로가기
728x90

ⓢⓣⓤⓓⓨ24

[Android] BaseActivity와 BaseFragment 얘의 사용 이유? BaseActivity, BaseFragment 를 통해 보일러 플레이트 코드(반복되는 코드)를 정리하기 위해서! 간단히 말하자면, "코드의 중복을 줄이고 가독성을 높이기 위해"서 프로젝트의 뼈대로 사용되는 클래스이다. 보통 binding이나 그 외 여러 activity/fragment 걸처 공통적으로 수행하는 코드에 대하여 초기화나 이벤트 등을 정리해둠으로서 나중에 다른 activity/fragment에서 이를 상속하여 사용한다. 기존 방식 class MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding override fun onCreate(savedInstanceState: Bu.. 2022. 5. 25.
[Android] databinding과 bindingAdapter 데이터바인딩이란? => 데이터와 뷰를 연결하는 작업을 레이아웃에서 처리 할 수 있게 해주는 라이브러리 즉, 예전에 이런씩으로 findViewById로 썼던 양식을 findViewById(R.id.sample_text).apply { text = viewModel.userName } 아래의 @{} 양식으로 바꿔쓸 수 있는 것을 의미한다 이에따라 Activity에서 많은 UI 프레임워크 호출을 삭제할 수 있어 파일이 더욱 단순화되고 유지관리 또한 쉬워진다. 따라서 앱 성능이 향상되며 메모리 누수 및 null pointer exception을 방지할 수 있다. 🧐 쓰는 법 🧐 1. gradle에 추가 android{ buildFeatures { dataBinding = true } } 2. 데이터 클래스 세팅.. 2022. 5. 25.
[Android] 클린 아키텍처(Clean Architecture) 앱 구성요소는 개별적이고 비순차적으로 실행될 수 있으며, 운영체제나 사용자가 언제든지 앱 구성요소를 제거할 수 있습니다. 이러한 이벤트는 직접 제어할 수 없기 때문에 앱 구성요소에 애플리케이션 데이터나 상태를 저장해서는 안 되며 앱 구성요소가 서로 종속되면 안됩니다. 즉, Android 앱은 크기가 커지기 때문에 앱을 확장하고 앱의 견고성을 높이며 앱을 더 쉽게 테스트할 수 있도록 아키텍처를 정의하는 것이 중요합니다. 위의 내용은 안드로이드 공식 문서 중 앱 아키텍처 가이드에 기재되어있는 내용이다. 이러한 내용을 읽어보면 아키텍처 공부를 해야하는 이유가 점점 더 명확해진달까 ..~ 관심사 분리 보통 처음 코딩을 시작하면 Activity와 Fragment에 모든 코드를 작성하는데, 이런 UI 기반의 클래스.. 2022. 1. 28.
[Android] MVVM 패턴 앱잼을 진행하면서 MVVM 패턴을 적용해보자는 우리팀 리드 선배의 말에 따라 1주일 동안 MVVM을 찍먹했다. 그리고 바로 코딩에 들어가니 제대로 이해 못하고 넘어간 부분이 많아 아쉬웠다. 그래서 앱잼이 끝난 지금, 다시 제대로 차근차근 공부해보려고 한다. 여기저기서 찾아보고 이해한 바를 작성하기 때문에 잘못된 정보가 있을수도 있다 :( - MVVM 패턴을 적용하는 이유 기존에 사용하던 MVC패턴에 따라 Activity에 모든 코드를 넣으면 여러 문제가 발생하기 때문이다. 1️⃣ 앱 동작이 많을수록 Activity 자체가 무거워짐 2️⃣ View와 Model 간의 의존성의 높아져 코드가 복잡해짐 3️⃣ View의 UI Refresh를 위해 Model을 참조하므로 앱 규모가 커질수록 코드가 복잡해짐 즉, .. 2022. 1. 27.
Git/Naming Convention 이번에 동아리 앱잼이 시작되면서 Convention 정리를 했는데 나중에 계속계속 쓰고싶어서 끌고왔다 ! Git Convention 📌 Branch branch 이름은 snake_case 표기법 사용 타입/이슈번호_이슈명 으로 통일ex) refactor/3_login ex) feat/1_detail_view default branch : develop 개발이 완료되면 develop 브랜치로 merge합니다! 📌 Commit Base Structure #{issue_number} [TYPE] : subject body(선택사항) footer(선택사항) 예시 하나의 이슈를 처리하고 커밋할 때 #1 [FEAT] : 로그인 버튼 클릭 이벤트 처리 여러개의 이슈를 처리하고 커밋할 때 [REFACTOR] : ReF.. 2022. 1. 7.
728x90