일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Android Studio
- ios
- 문제해결
- 상태관리
- chatGPT
- Jitpack
- 문제개선
- 앱개발
- 코루틴
- Java
- EncryptedSharedPreferences
- 초보개발자
- Google Play
- compose
- foregroundservice
- 앱심사대응
- Android
- targetsdk
- Kotlin
- 앱심사경험
- 개발시작
- WorkManager
- 안드로이드
- SharedPreference
- coroutines
- Swift
- 개발자도전기
- 클래스 설계
- SwiftUI
- Developer
- Today
- Total
목록Dev Lab ✧.·˚/Android & iOS (17)
개발린생
안드로이드 스플래시 화면은 앱이 실행될 때 가장 먼저 표시되는 화면이다.기본 스플래시 화면은 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를 다뤄보겠다...
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..
스위프트 컨퍼런스에 방문하기 전, 스위프트 입문자로써 어느정도 개념, 정보, 지식 등 알고가면 좋겠다는 생각이 들었다.내가 키워드를 알고 있다면 검색을 해보겠고, 시간의 여유가 있다면 전문 서적을 읽어보겠지만시간이 없으니 chatGPT를 통해 알아보자!! (미리 공부안함...역시 chatGPT는 누군가가 블로그에 작성할만한 개념 정도로 요약해줬고,항상 그랬듯이 난 꽂히는 키워드를 질의하는 식으로 접근했다.(요새는 새로운 정보를 찾다가도, 이미 겪어봤지만 제대로 짚고가지 못한 것을 공부하려고 함)chatGPT는 알고 가면 좋은 개념 중 Combine을 언급했다.Combine: 데이터 스트림과 SwiftUI에서 데이터 바인딩을 다룰 때 중요한 개념안드로이드 개발을 할 때도 dataBinding, viewBi..
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..