일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- php
- Mocky
- github
- Emulator fails to Launch
- SharedPreference
- GPT
- systembar
- statusbar
- figma
- LinearLayout
- mvvm
- repositories
- TabLayout
- Kotlin
- Coroutine
- MVI
- constraintlayout
- 안드로이드
- retrofit
- Rotate
- AndroidStudio
- Backup Manager
- Swiftshader
- ViewPager2
- compose
- ToyProject
- 피그마
- ViewModel
- Android
- CoroutineScope
- Today
- Total
목록전체 글 (16)
Kwaang Tech
1.분리된 관심사 (Separation of Concerns) 'ViewModel' 은 뷰의 로직과 데이터를 처리하는 역할을 한다. 이를 통해 뷰와 비즈니스 로직을 분리할 수 있어 코드의 가독성이 향상되고, 재사용성과 테스트 용이성이 높아진다. 2. 재사용성 'ViewModel' 은 뷰와 분리되어 있기 때문에 여러 뷰에서 동일한 ViewModel을 재사용할 수 있다. 뷰의 구체적인 구현에 의존하지 않기 때문에 여러 UI 컴포넌트에서 동일한 로직과 데이터를 쉽게 사용할 수 있다. 3. 테스트 용이성 'ViewModel' 이 뷰의 구체적인 구현에 의존하지 않기 때문에 단위 테스트를 수행하기가 훨씬 쉽다. 뷰와의 상호작용 없이 'ViewModel' 의 로직과 데이터 처리를 테스트할 수 있다. 4. 라이프 사이..
앱 아키텍쳐 패턴 안드로이드 앱을 개발할 때, 이용할 수 있는 여러 아키텍쳐 패턴들이 있다. MVC (Model View Controller) MVP (Model View Presenter) MVVM (Model View ViewModel) MVI (Model View Intent) 기타 이름들을 보면 M(Model)과 V(View)를 공통적으로 가지고 있다. Model - 데이터 or 데이터를 생성하거나 업데이트 View - UI or 화면을 표시 Logic들이 커지고 복잡해짐에 따라서 의존성이 더 강해지고, 결국 앱을 유지 보수하기가 점점 더 어려워 지게 된다. 이러한 문제들을 해결하기 위해 여러 패턴들이 나왔고, 결국 M-V 사이의 관계를 어떻게 처리하느냐에 따라 패턴들을 구분을 짓는다. MVC(M..
프로젝트를 시작하기 전에, 이렇게 먼저 약속을 정한 후에, 전체적인 테마를 잡기 위해 Color & Style을 지정 한 후, 대락적인 UI를 Figma에 그려 본 후 프로젝트를 진행했다. 역할분담 노션에 칸반보드를 이용하여 진행사항을 체크하면서 진행했습니다. 제가 맡은 역할은 tabBinding.tabIcon.setImageResource(R.drawable.unclicked_contact) 1 -> tabBinding.tabIcon.setImageResource(R.drawable.unclicked_user) } tabBinding.tabTxt.typeface = Typeface.create(typeface, Typeface.NORMAL) tabBinding.tabTxt.setTextColor( Re..
ViewPager2스와이프로 화면전환을 할 수 있는 기존 ViewPager의 개선버전 ViewPager2는 기존 ViewPager 대비 기능 개선 및 세로 방향으로도 페이징이 되는 등의 장점이 있다.ViewPager2를 사용해야 하는 이유는 구글에서 기존 ViewPager는 더 이상 개발 지원을 하지 않고, ViewPager2의 사용을 권고하고 있기 때문임.Gradle 설정ViewPager2를 사용하기 위해 Gradle에 아래와 같이 추가dependencies { ... implementation 'androidx.viewpager2:viewpager2:1.0.0'}각 뷰페이지에 등록할 Fragment 생성FirstFragment.ktclass FirstFragment : Fragment() ..
LinearLayout수평 또는 수직 방향으로 컴포넌트를 배열하는 레이아웃android:orientation 속성을 사용하여 수평(horizontal) 또는 수직(vertical)으로 설정할 수 있음컴포넌트는 순차적으로 배치android:layout_weight 속성을 사용하여 각 컴포넌트의 크기를 가중치를 통해 조절할 수 있음ConstraintLayout유연하고 복잡한 레이아웃 설계를 가능하게 해주는 최신 레이아웃컴포넌트 간의 제약 조건(Constraints)을 정의하여 위치와 크기를 결정함여러 레이아웃의 중첩을 줄이고 복잡한 디자인을 단순화하는 데 유용함Android Studio의 레이아웃 에디터에서는 드래그 앤 드롭 방식으로 컴포넌트의 제약 조건을 쉽게 설정할수도 있음두 레이아웃의 차이점복잡성: L..
이름 : 라떼 종 : 샴 나이 : 13년 8월 8일생 비오는날을 제외하곤 매일 찾아오는 비둘기 한마리 저 비둘기는 라떼에게 눈길조차 주지 않는다. 진짜 쫄보 그자체 내 새꾸 자랑 하려고 쓰는거 맞음
Github Repositories 생성할때 대소문자 구분의 중요성이 잇을까? URL 중복: GitHub에서는 대소문자를 구분한다. 예를 들어, MyRepository와 myrepository는 서로 다른 저장소로 인식된다. 하지만, 웹 브라우저의 주소창에서는 대소문자를 구분하지 않을 수 있기 때문에, 이를 인식하지 못하는 경우가 발생할 수 있다. 첫인상 및 가독성: 대소문자를 적절히 사용하면 저장소의 이름이 더 읽기 쉬워진다. 예를 들어, mynewawesomeproject보다는 MyNewAwesomeProject가 더 읽기 쉽다. 코딩 표준 및 관례: 여러 프로그래밍 언어나 프로젝트에서는 대소문자 규칙을 따르는 경우가 많다. 예를 들면, Java에서는 클래스 이름은 대문자로 시작하는 카멜케이스를 사용..
SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk.dir path in your project's local properties file ....... properties 파일에 sdk 경로가 맞지 않아서 생기는 문제로 환경변수 등록을 통해서 쉽게 해결이 가능했다. 새로만들기 버튼을 클릭하여 아래와 같이 입력한다. 내컴퓨터 오른쪽 클릭 > 설정 > 고급 시스템 설정 > 환경 변수 클릭 user 본인 경로를 알고 입력하길! 확인을 누르고 안드로이드스튜디오가 실행되어 있는 상태라면 재실행을 시키고 다시 빌드를 진행하면 전에 발생한 에러가 해결 가능하다. 저는 위 방법..