본문 바로가기
728x90

Android11

[Android] - Retrofit으로 이미지 업로드 with Kotlin 안드로이드 앱을 개발하며 서버와 네트워크 작업을 하는 일이 종종 있습니다. Get요청이나 Post요청 등 여러 요청을 보낼 때 단순히 텍스트로 정보를 보내는 것이 아닌 이미지를 보낼 때 어떻게 해야 할지 설명해 보겠습니다. 단순히 정보를 보내기 위해서 gradle을 추가하거나, internet 관련 권한이나 서버 통신을 위한 작업들은 이번 글에서 주로 다루는 주제가 아니므로 다른 글에서 제대로 설명하겠습니다. 먼저 서버로 이미지를 업로드할 때에는 주로 이미지를 파일로 전송합니다. Retrofit에서는 편리하게 이미지를 전송할 수 있도록 지원해 줍니다. api 관련 로직 작성 import okhttp3.MultipartBody import retrofit2.http.Multipart import retro.. 2023. 2. 21.
Composable 에서 ViewModel 공유하기 Android 앱을 개발하다 보면 값들을 공유해야 하는 상황이 있습니다. 하지만 Compose에서 지원해 주는 ViewModel은 Composable 간에 공유가 되지 않습니다. viewModel @Composable inline fun viewModel( viewModelStoreOwner: ViewModelStoreOwner = checkNotNull(LocalViewModelStoreOwner.current) { "No ViewModelStoreOwner was provided via LocalViewModelStoreOwner" }, key: String? = null, factory: ViewModelProvider.Factory? = null, extras: CreationExtras = if.. 2023. 2. 19.
[Android] - ConstraintLayout 장점 ConstraintLayout을 사용한다면 LinearLayout이나, RelativeLayout을 사용할 때보다 복잡한 레이아웃 구조를 편리하게 사용할 수 있습니다. ConstraintLayout은 android.view.ViewGroup에 속한 레이아웃이며 위젯의 위치(position)와 크기(size)를 지정할 수 있게 해 줍니다. ConstraintLayout을 사용하면 제약조건에 따라 뷰를 배치할 수 있습니다. 그렇다면 제약조건은 무엇일까요? 제약 조건 ConstraintLayout에서는 하나 이상의 수평 구속조건과 수적 구족조건을 추가하여 각 요소를 배치합니다. 제약 조건은 다른 요소, 상위 레이아웃, 보이지 않는 가이드라인 등이 있습니다. 하나 이상의 제약 조건을 배치하여 뷰의 위치와 사이즈.. 2023. 2. 17.
[Android] - Activity의 라이프 사이클 Activity는 안드로이드 앱의 entry point입니다. 그리고 앱을 만드는 주요 Component 중 하나입니다. 사용자와 앱이 interaction(터치, 텍스트 입력, 화면 이동 등) 할 수 있도록 지원합니다. 이러한 Activity에서는 사용자와 직접적으로 직면할 수 있는 요소이기 때문에 사용자가 하는 작업에 따라 사이클을 관리해줘야 합니다. Activity에서는 onCreate() onStart() onResume() onPause() onStop() onDestroy() 총 6가지 콜백을 제공합니다. 시스템은 새로운 상태에 들어가면 콜백을 호출합니다. 위 그림은 안드로이드 Activity의 라이프 사이클을 그림으로 표현한 것입니다. 유저가 어떤 행동을 하는지나 시트템에 의해 사이클이 변경.. 2023. 2. 15.
[Android] - Android Studio에서 SVG 파일 사용하기 Android에서 이미지를 넣어줄 때 상황에 따라 적절한 이미지의 포맷이 있습니다. 그중에서 용량을 줄이고, 크기에 따라 대응이 되는 SVG를 자주 이용합니다. 오늘은 SVG 파일을 Android Studio에 추가하는 방법을 설명하겠습니다. Android에서 SVG 파일을 사용하는 방법은 아주 간단합니다. res 파일을 우클릭하고, New에서 Vector Asset을 클릭합니다. Asset Type을 선택합니다. Asset Type을 Clip Art로 선택한 경우 Clip Art를 선택하여 아이콘들을 확인할 수 있습니다. 해당 아이콘은 Material Icon으로 제공해주는 아이콘들입니다. 해당 아이콘의 이름과 기본색을 입력한 후 Next를 클릭하면 됩니다. Local file Type을 Clip Ar.. 2023. 2. 15.
[Android] - View와 ViewGroup란 무엇일까 안드로이드 앱을 개발하며 기능에만 집중하다 보면 정말 기본과 관련된 내용에 소홀히 할 수 있습니다. 하지만 UI를 구성하는 능력은 신입 안드로이드 앱 개발자로서의 기본적인 역량입니다. 따라서 오늘은 View와 ViewGroup에 대해 알아보겠습니다. View는 화면에 보이는 모든 것, 즉 사용자가 볼 수 있는 요소들을 View라고 이야기합니다. 그렇다면 ViewGroup은 무엇일까요?? 레이아웃의 구조를 정의하는 container 역할을 해주는 것이 ViewGroup입니다. 흔히 이름 뒤에 layout들이 들어가 있는 경우들이 많습니다. 예를 들자면 ConstraintLayout이나, LinearLayout 등이 있습니다. 위에서 흔히라고 말했듯이 예외도 있습니다. 자세한 사례들은 아래에서 설명하겠습니다.. 2023. 2. 11.
728x90