Android/UI-UX 디자인(20)
-
Jetpack Compose에서 나만의 커스텀 테마 만들기
Step 1. 색상 정의 (Color.kt)import androidx.compose.ui.graphics.Colorobject AppColors { val PrimaryBlue = Color(0xFF01b9ff) val BackgroundGray = Color(0xfff7f7f7) val TextRed = Color(0xffff4b4b) val ButtonRed = Color(0xFFEDC9C9) val TextBlue = Color(0xff264d92) val ButtonBlue = Color(0xFFBCD6ED)}Step 2. 폰트 스타일 정의 (Typography.kt)import androidx.compose.material3.Typographyimport and..
2025.05.19 -
Android Compose 앱에서 발생한 오류: java.lang.NoSuchMethodError
1. 오류 내용앱 실행 시 다음과 같은 치명적인 런타임 오류가 발생:java.lang.NoSuchMethodError: No static method setContent$default(...)V in class Landroidx/activity/compose/ComponentActivityKt;1-1. 발생 환경Kotlin 2.0.21Compose Compiler 1.5.13org.jetbrains.kotlin.plugin.compose 플러그인 사용단일 모듈 구조 (멀티모듈 아님)2. 원인build.gradle.kts (app 모듈)에서 아래 설정 누락:buildFeatures { compose = true}해당 설정이 없으면 Compose 관련 코드가 컴파일조차 되지 않음.그로 인해 런타임 시 ..
2025.05.12 -
Jetpack Compose에서 TextField와 OutlinedTextField의 차이점
1. TextField기본적인 Material Style의 입력 필드내부에 밑줄이 있는 형태Material Design System에서 기본적으로 제공하는 스타일보통 일반적인 텍스트 입력 필드에 사용TextField( value = text, onValueChange = { text = it }, label = { Text("기본 TextField") })2. OutlinedTextField테두리가 있는 입력 필드OutlinedTextField는 사각형 외곽선(border)이 있는 형태더 명확한 경계를 제공하여 구분이 필요한 경우 사용3. 사용 시점TextField기본적인 입력 필드가 필요한 경우배경과 자연스럽게 어울려야 하는 경우OutlinedTextField입력 필드를 더 명확하게 구..
2025.02.28 -
Android UI 관리하기 | 하드코딩 된 string을 모두 resource 파일로 옮기기
🌟 들어가기 전요즘 같은 국제적인 시대에 앱에서 다국어 처리는 매우 중요하다.strings.xml 리소스 파일을 통해 다들 다국어를 지원하고 있을 것이다. 하지만 개발을 하다보면 “나중에 해야지~” 하고 우선 큰 따옴표로 하드코딩 텍스트를 박아놓고 까먹은 경우가 있지 않을까?아니면 내가 신규로 맡은 앱에서 이전 개발자가 귀찮다는 이유로 리소스 관리를 하지 않은 경우도 있지 않을까? 그렇다면 나는 어떻게 하드코딩 된 string을 한번에 찾아낼 수 있을까? 🔍 세부 내용첫번째 방법. 전체 검색을 활용하자우리에겐 Ctrl+Shift+F 라는 전체 검색 기능이 존재한다. 하지만 단순 검색이 아니다.검색을 할 때도 정규표현식을 이용하여 검색하면 더 쉽게 검색할 수 있다.“.*” 라는 정규 표현식을 사용하면 ..
2025.02.04 -
Android Jetpack ComposeUI 기초 문법 및 특징
ComposeUI 강의를 열심히 봤는데, 아무리 따라해도 머리에서 휘발되어버리는 느낌이다.직접 Compose를 이용한 토이 프로젝트를 하기 전에 전체적으로 문법 정리를 먼저 해야할 것 같았다. 1. @Composable 애너테이션 Composable 함수Jetpack Compose에서 UI를 정의하는 기본 단위함수에 @Composable 애너테이션을 붙이면 이 함수는 UI 요소를 그릴 수 있게 된다.@Composablefun Greeting(name: String) { Text(text = "Hello, $name!")} 2. Text 텍스트 출력텍스트를 화면에 표시하는 가장 기본적인 컴포넌트이다.@Composablefun SimpleText() { Text(text = "Hello, Wor..
2024.08.24 -
[Android/Webview]안드로이드 웹뷰에서 html 코드 가져오기
1. WebView를 초기화하고 웹 페이지 로드 javaCopy code WebView webView = findViewById(R.id.webView); // 웹뷰 레이아웃과 연결 // WebView 설정 webView.getSettings().setJavaScriptEnabled(true); // JavaScript 활성화 webView.setWebViewClient(new WebViewClient()); // WebViewClient 설정 // 웹 페이지 로드 webView.loadUrl("https://example.com"); // 웹 페이지의 URL을 여기에 입력 2. WebViewClient를 사용하여 페이지 로드 완료 후 HTML body 얻기 javaCopy code webView.set..
2023.08.26