일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 문제개선
- compose
- 앱심사대응
- 개발자도전기
- Developer
- 코틀린
- WorkManager
- 코루틴
- Android
- 앱심사경험
- Swift
- 상태관리
- 초보개발자
- Jitpack
- coroutines
- SwiftUI
- 개발시작
- 문제해결
- androidstudio
- Java
- chatGPT
- Kotlin
- 안드로이드
- 앱개발
- 모바일앱개발
- foregroundservice
- 클래스 설계
- ios
- SharedPreference
- EncryptedSharedPreferences
- Today
- Total
목록Dev Lab ✧.·˚ (16)
개발린생
안드로이드 기본 잠금 화면 위에 특정 화면을 띄워야하는 기능을 구현해야해서 코드와 글을 작성하게 되었다. 혹시 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..
학교에서 수강하는 파이썬프로그래밍 과목을 수강하며 파이썬 시작 /^0^/학교 강의는 윈도우 환경에서 작업하지만 나는 맥북을 사용한다.그러므로 chatGPT의 도움을 받아 파이썬을 설치하고 실행해보겠다. Homebrew를 사용한 Python 설치 명령어brew install python나의 경우 위 명령어 실행 후 아래 에러가 발생했다.==> Deleted Installed Formulaepkg-config ✘ pkg-config ✘는 pkg-config라는 Homebrew 패키지가 삭제되었음을 의미하여 아래 명령어를 통해 패키지 재설치를 진행함brew install pkg-config VSCode 설치VSCode 설치 링크 : https://code.visualstudio.com/ Visual Stud..
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..
💬 Android XML 기반 개발도 충분한데 Android Compose를 배워야할까?안드로이드 개발자로써, 나는 오랫동안 XML 기반으로 UI를 구현해왔고, 컴포즈에 대한 언급이 많아졌을 때도 굳이 새롭게 배워야 할 이유가 있을까? 의문이 들었다. XML로도 충분히 잘 개발할 수 있었고, 새로운 것을 도입하는 게 실제로 얼마나 큰 이점이 있을지 의문이었다. 솔직히 말하면, 기존 방식에 익숙하고 불편함도 없었기 때문에 귀찮음이 앞섰다..^^XML로 이미 원하는 결과를 쉽게 얻을 수 있었으니, 굳이 컴포즈를 배울 필요를 느끼지 못했다. 나처럼 이미 안드로이드 개발 경험이 있는 사람에게는 XML은 기본적으로 사용 가능한 옵션이기 때문에, 처음 안드로이드를 배우는 개발자에게는 컴포즈가 최신 기술이니 XML..
안드로이드 개발을 예전부터 해왔던 분이라면 언제적 AsyncTask냐 싶을 것이다.AsyncTask는 예전에 비동기 작업을 처리하기 위해 흔히 사용되던 클래스지만 현재로써는 RxJava와 Coroutines가 대표적으로 사용된다.AsyncTask > RxJava > Coroutines 이 외에도 중간중가 여러가지가 있긴 하다. 현재 AsyncTask는 디플리케이트 되었고 Coroutines이 많이 사용되고 있다.(가끔 유지보수건 프로젝트를 보면 AsyncTask를 많이 마주치긴 함) 💬 AsyncTask를 사용할 때를 주절거려보자면 과거 Android Java로 앱을 개발하던 시절, 화면을 띄운 상태에서 네트워크 통신이나 파일 처리 등 무거운 작업을 하면 UI가 멈추는 문제가 있었다. 이것을 해결하기 ..