일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코루틴
- Android
- 상태관리
- 문제개선
- Android Studio
- targetsdk
- ios
- 초보개발자
- compose
- coroutines
- 문제해결
- Java
- SharedPreference
- Kotlin
- EncryptedSharedPreferences
- chatGPT
- WorkManager
- SwiftUI
- Swift
- Developer
- foregroundservice
- 앱심사경험
- Google Play
- 앱개발
- Jitpack
- 개발시작
- 클래스 설계
- 개발자도전기
- 앱심사대응
- 안드로이드
- Today
- Total
목록Android (18)
개발린생
안드로이드 스플래시 화면은 앱이 실행될 때 가장 먼저 표시되는 화면이다.기본 스플래시 화면은 Android 12(API 31) 부터 적용되었으며, 예전에 안드로이드 앱을 개발할 때는 기본으로 제공되는 스플래시 화면이 없었기 때문에 개발자가 직접 구현해야했다. 기본 스플래시 화면이 제공되지만 별도의 스플래시 화면을 직접 구현하는 경우도 많다.복잡한 애니메이션, 앱의 고유한 디자인 적용, 네트워크 상태 체크, 데이터 로드 등 상태 로직이 들어가는 등 커스텀 요구사항이 있는 경우에는 스플래시 화면을 직접 구현한다.스플래시 화면에서 실행되는 기능UI 초기화앱 데이터 준비리소스 로드화면 전환 등스플래시 화면 설계 시 고려사항사용자 경험을 저해하지 않도록 간결한 화면으로 구성스플래시 화면에 과도한 작업을 넣지 말고..
회사에서 업무를 보거나 개인 프로젝트를 위해 프로젝트를 생성할 때, 그동안 무심코 지나쳤던 부분을 짚고 넘어가고자 글을 작성하게 됐다. 평소에 코드에서 경고가 발생하면, 빠르게 해결하기 위해 단축키로 경고문 권장 사항을 반영했지만, 이번 경고는 코드 수정을 바로 해주는 경고가 아니라서 내용을 직접 확인해보고자 했다. 사실, 단축키로 코드 수정이 가능한 경고라도 내용을 확인하며 짚고 넘어가는 습관을 들이는 것이 좋다..ㅎㅎ경고 발생 원인 코드사진과 같이 아래 코드에서 경고를 의미하는 노란줄이 표시된다.targetSdk = 34 경고문은 Launch Android SDK Upgrade Assistant, 직역하면 Android SDK 업그레이드 도우미를 실행한다는 말이다.위 경고문을 클릭하면 아래와같이 As..
업무가 바쁘다는 핑계로 실무는 경험했으니 제대로 이해하지 못한 부분들을 다루기 위해 안드로이드 공식 사이트를 찾았다.최근에 chatGPT를 애용하고 있지만 내가 직접 질의하며 학습해야하기 때문에 순차적이지 못한 느낌이 든다. 아래 Android 공식 사이트를 통해 학습할 수 있는 내용들은 개발 경험이 없는 사람을 타겟으로 작성된 것 같고, 공식 사이트에서 개발 경험이 없는 사람도 학습할 수 있다고 설명하고 있다.개인적으로는 훑어보기 느낌으로 개발 경험이 있는 사람이 봐도 좋을 것 같다. (기본 개념과 몰랐던 내용 확인차) https://developer.android.com/kotlin/androidbasics?hl=ko Compose 사용 시 알아야 하는 Android 기본사항 | Kotlin |..
안드로이드 기본 잠금 화면 위에 특정 화면을 띄워야하는 기능을 구현해야해서 코드와 글을 작성하게 되었다. 혹시 ForegroundService targetSDK 34 이슈로 찾아온 사람을 위해 미리 말하자면,예제 프로젝트가 컴포즈 프로젝트지만 컴포즈(컴포저블 함수 사용)로 구현한 부분은 단순 UI 쪽 밖에 없어서, 기존 XML 기반 프로젝트여도 도움이 될 것이다. 기본 잠금 화면 위에 특정 화면을 띄우기 위해서 중요한 기능은 아래와 같다.다른 앱 위에 표시 권한 요청ForegroundService 기능 구현 (Android 14, SDK 34 대응) 이전 글에서 ForegroundService로 구현했던 기능을 WorkManager로 구현했었는데 이번엔 다시 ForegroundService를 다뤄보겠다...
앱 심사 제출 후 앱이 거부되었는데 앱 거부 사유에 적힌 문제는 총 세가지 였고, 문제들의 원인은 크게 하나였다. 본문 요약:진행하는 프로젝트에서 푸시 알림을 받았을 때, 다른 앱 위에 특정 화면을 표시하기 위해 Foreground Service를 활용하여 기능을 구현했고, 이것이 구글 정책에 위반되어 Foreground Service가 아닌 WorkManager를 활용하여 기능을 구현하도록 변경했다. 주의사항:내가 구현한 기능이 그렇다는거지 Foreground Service를 무조건 WorkManager로 대체하라는 것이 아니다.그냥 기능마다 Foreground Service를 활용하는 것이 적합한지, WorkManager를 활용하는 것이 적합한지 다른 것이다.아마 내가 구현한 기능도 무조건 Fore..
Rating Bar란, 별점 평가 UI 요소를 의미한다.안드로이드 공식 문서에서도 사용하는 용어이며, 개발 및 디자인 커뮤니티에서도 잘 쓰이는 용어라고 한다. 나의 경우 별점 평가 기능을 넣을때 활성화/비활성화 이미지를 넣는 방식으로 개발해왔기 때문에 용어를 몰랐었다.또, 평가 기능을 넣을때 0에서 5까지 있으며 설정 가능한 단위가 1 단위여서 충분히 활성화/비활성화 이미지 두장으로 구현 가능했다. 그러나 이번에 사이드 프로젝트를 진행하며 평가 최소, 최대 값이 0~5까지 있으며 단위가 0.5여서 평가 UI를 찾아보게 되었다.RatingBar를 구현할 당시에 검색했던 용어가 Rating Bar가 아니었던 건지, 직접 구현해서 적용했다.(내 기억으로는 어떤 용어로 검색을 했었고 그닥 결과가 나오지 않아서 ..
신규 프로젝트 진행, 나는 효율적인 개발을 위해 한 API를 공들여 붙였다! API 호출 후 응답 데이터 관련 주제이며 모든 Response의 값에서 공통으로 들어가는 필드에 대해 효율적으로 처리하는 방법을 공유하고자한다. 예시로 쓰일 API 호출, 응답 데이터는 아래와 같다. 유저 로그인 APIRequest{ "id": "blueland", // 유저 로그인 시 아이디 "password": "qwer1234" // 유저 로그인 시 비밀번호} Response{ "userId": "B0001", // 로그인 된 유저 식별자 "resultCode": "0000", // 응답 코드 "resultMessage": "사용자 로그인 성공" // 응답 메세지} 유저 정보 조회 APIRequest{ "us..
Android Compose의 리스트LazyColumn(⬇️)은 세로 목록, LazyRow(➡️)는 가로 목록을 표시할 때 사용한다.LazyColumn과 LazyRow 모두 항목이 화면에 나타날 때만 렌더링되어 메모리를 효율적으로 사용한다.또 Android RecyclerView와 비슷하지만 훨씬 간단한 문법으로 구현할 수 있다.LazyColumn 예시 코드:@Composablefun LazyColumnExample() { LazyColumn(modifier = Modifier.fillMaxSize()) { items(100) { index -> Text( text = "Item #$index", modifier ..
이전 포스팅에 이어 Compose와 SwiftUI 레이아웃 시스템에 대해 공부한 내용을 적어보려한다.Compose, SwiftUI 모두 뷰를 수직, 수평 방향이나 위로 쌓을 수 있는 레이아웃 시스템을 제공한다.Android Compose의 레이아웃 시스템 Column, Row, BoxColumn, Row, Box 레이아웃 컴포저블을 사용해 UI 요소를 배치한다.Column은 수직 방향(⬇️), Row는 수평 방향(➡️), Box는 겹쳐서 배치할 수 있는 레이아웃을 제공한다.Column 예시 코드:// VStack과 유사한 레이아웃 컴포저블 Column 예제 함수@Composablefun ColumnExample() { Column( modifier = Modifier ..
비교를 위해 UI 정의와 함수 구조를 유사하게 구현했으며,두 플랫폼 모두 GreetingView에서 이름을 인자로 받아, 그 값을 MainScreen 화면에 텍스트로 표시하는 예제를 작성해봤다.Android Compose의 @Composable 함수와 SwiftUI의 View 구조체가 각각 비슷한 역할을 수행한다.Android Compose의 Composable 함수@Composable 어노테이션을 사용해 함수로 UI를 정의한다.각 UI 컴포넌트는 재사용 가능한 함수로 만들 수 있으며, 컴포저블 함수는 컴포지션에 참여해 UI 트리를 형성한다.예시 코드:@Composablefun MainScreen() { // MainScreen에서 GreetingView 컴포저블을 호출하고 문자열을 전달 Gr..