본문 바로가기
728x90

Android12

[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] - 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.
SVG 와 WebP 는 무엇일까? 안드로이드 앱이나 웹을 개발하다 보면 이미지 포맷이 대해 고민해야 할 때가 있습니다. 이번 포스트에서는 이미지 포멧 중 SVG와 WebP 각각 특징과, 둘을 비교해 보겠습니다. SVG란 Scalable Vector Graphics로 웹 친화적인 벡터 파일 포맷입니다. 벡터 파일은 점과 선을 기반으로 하는 수학 공식을 통해 이미지를 저장합니다. 따라서 SVG와 같은 파일은 품질을 그대로 유지하면서 크기를 마음대로 조정할 수 있으므로 로고와 복잡한 온라인 그래픽에 아주 적합합니다. 아래 사진을 보면 조금 더 이해하기 쉽습니다. 픽셀로 구성된 래스터 이미지는 사이즈를 조절하면 위처럼 손실이 생길 수 있지만, 벡터는 점과 선을 이용하기 때문에 품질을 유지할 수 있습니다. SVG가 인기인 이유는 크기 조정뿐만 아.. 2023. 2. 15.
[Android] - View와 ViewGroup란 무엇일까 안드로이드 앱을 개발하며 기능에만 집중하다 보면 정말 기본과 관련된 내용에 소홀히 할 수 있습니다. 하지만 UI를 구성하는 능력은 신입 안드로이드 앱 개발자로서의 기본적인 역량입니다. 따라서 오늘은 View와 ViewGroup에 대해 알아보겠습니다. View는 화면에 보이는 모든 것, 즉 사용자가 볼 수 있는 요소들을 View라고 이야기합니다. 그렇다면 ViewGroup은 무엇일까요?? 레이아웃의 구조를 정의하는 container 역할을 해주는 것이 ViewGroup입니다. 흔히 이름 뒤에 layout들이 들어가 있는 경우들이 많습니다. 예를 들자면 ConstraintLayout이나, LinearLayout 등이 있습니다. 위에서 흔히라고 말했듯이 예외도 있습니다. 자세한 사례들은 아래에서 설명하겠습니다.. 2023. 2. 11.
728x90