Android
-
[Android] compose에 폰트 적용하기Android 2024. 6. 17. 16:03
폰트 저장하기폰트를 사용하려면 일단 해당 폰트 파일을 저장해야 합니다. 위치는 res/font 에 저장하면 됩니다. 이 때 각 폰트의 굵기 파일도 각각 사용할 필요가 있다면 모두 저장해두면 좋습니다. 폰트 불러오기폰트를 선언해주어야 해요. 위에서 정한 폰트를 아래와 같이 선언해주세요. 참고로 폰트 클래스는 사진과 같습니다. 이 때 Font의 weight에 각각 파일 별로 weight를 지정해주면 TextStyle을 사용할 때 원하는 weight를 줬을 때 해당 파일이 적용됩니다.@Stablefun Font( resId: Int, weight: FontWeight = FontWeight.Normal, style: FontStyle = FontStyle.Normal, loadingStr..
-
[Android] 프로젝트에 Android의 Hilt를 사용해보자Android 2024. 5. 12. 16:58
Hilt?Android에서 가장 유명한 의존성 주입 (Dependency Injection) 라이브러리입니다. 이전에 있던 Dagger를 기반으로 만들어서 사용법 및 작동 방식도 굉장히 유사한데, 원래 Dagger가 Android를 타겟으로 만든 라이브러리가 아니다보니까 환경 구축 부담 + 러닝 커브 비용 부담 때문에 쓴소리를 많이 먹었다고 합니다. 그래서 좀 더 환경을 구축하기 쉽고 이해하기도 쉬운 Koin을 사용하는 경우도 많았는데요. 그래서 구글이 Android에서 사용하기 편하라고 만든 것이 Hilt입니다. Dagger 기반으로 만들다보니까 비슷한 점도 많고 혼합해서 쓰기도 해서 그냥 Dagger Hilt라고 말하곤 합니다. Hilt 환경 세팅일단 환경 세팅을 해줍시다. 환경을 맞추지 않는다..
-
[Android] Android 14: Broadcast Receiver와 Foreground Service 유형 정책 변경Android 2024. 5. 2. 02:42
배경기존에 Broadcast Receiver와 Foreground Service를 사용하는 앱이라면 신경 써주어야 하는 정책적인 변경점이 하나 생겼는데요. 최근에 Android 14가 나오고 SDK가 34 이상으로 올라감에 따라 해당 버전 값으로 올리게 되면 정책이 변경됨에 따라 처리해주어야 할 것이 많아졌습니다. 기존에는 권한 정도만 하나 올려주고, 버전 별로 사용에 다른 분기 처리 정도만 해주면 되었지만, 이게 뭔가 좀 더 바뀌었습니다. 만약 아래와 같이 추가 선언을 하지 않는다? Broadcast Receiver의 경우 이제 아래와 같은 Exception이 발생하면서 앱이 죽어버리고 Foreground Service의 경우 그냥 서비스가 실행이 되지 않습니다...java.lang.SecurityEx..
-
[Android] 버전 카탈로그로 Gradle 버전 관리하기Android 2024. 4. 24. 00:42
멀티 모듈에서의 버전 컨트롤의 중요성이건 플러터를 할 때도 있었던 문제인데, 멀티 모듈을 사용하게 되면 꼭 한 번 겪는 문제가 있습니다. 각 모듈 별로 여러 가지 라이브러리를 사용할테고, 이 때 같은 라이브러리를 각 모듈이 사용할 때 다른 버전을 쓰게 된다면 반드시 충돌이 난다는 것이었습니다. 당연하게도 같은 라이브러리라도 다른 버전을 사용한다면 해당 버전에서 사용하는 메서드 형태나 속성 등이 달라지게 될테니, 무엇을 사용해야하는 지 모를테지요. 그렇기 때문에 일일이 버전을 통일화 시켜줘야 하는 문제가 있었습니다. 놀랍지 않게도 안드로이드 또한 마찬가지입니다. 많이들 사용하는 Clean Architecture를 위한 모듈 (레이어) 분리를 한다고 한다면, 같은 현상이 발생할 수 있습니다. 버전이..
-
[Computer Science] MVC, MVP, MVVMAndroid 2024. 4. 4. 01:12
MVC, MVP 등의 MV-Whatever는 개발자가 다른 개발자와 협업을 할 때 약속된 패턴으로 개발함으로써 개발을 쉽게 할 수 있도록 만들어진 디자인 패턴이죠. 이것들이 무엇인지, 어떻게 사용하는 지 한 번 자세하게 정리할 필요가 있다고 느꼈습니다.MVC소프트웨어 아키텍처 패턴 중에서 가장 유명한 3형제 중 첫째입니다. 다른 얘기할 것 없이 바로 확인해 봅시다. Controller는 여러 개의 View를 선택할 수 있습니다.사용자의 입력이 Controller로 들어옵니다.Controller는 Model을 업데이트합니다.Model이 변경됨에 따라 3가지로 View를 업데이트할 수 있습니다.Model이 Notify를 날려 View를 일깨워줍니다.Model에 Observer를 달아놓은..