본문 바로가기

전체 글25

[Android] Jetpack Compose에서 Scaffold와 Surface의 차이점 Scaffold와 Surface는 UI 레이아웃을 구성할 때 자주 사용되는 두 가지 주요 구성 요소예요. 이들의 기능과 예시, 그리고 차이점에 대해 정리해볼게요.1. ScaffoldScaffold는 Material Design의 기본 레이아웃 구조를 구현하는 데 사용돼요. 전체 화면의 주요 UI 컴포넌트를 배치할 수 있는 프레임워크를 제공하여 앱의 구조를 쉽게 설정할 수 있어요.주로 앱의 메인 레이아웃을 설정할 때 사용돼요. 예를 들어, 상단 앱바, 하단 네비게이션 바, 플로팅 액션 버튼을 포함한 화면을 구성할 때 유용해요.특징앱바: `topBar` 파라미터를 사용하여 화면 상단에 앱바를 배치할 수 있어요.하단 바: `bottomBar` 파라미터를 통해 하단 네비게이션 바를 설정할 수 있어요.플로팅 액션.. 2024. 9. 3.
[Android] 발생할 수 있는 Exception종류와 처리 방법 안녕하세요. 개발을 하다 보면 다양한 예외 상황에 직면하게 돼요. 이러한 예외는 프로그램의 흐름을 방해하고 예상치 못한 종료를 초래할 수 있기 때문에, 각 예외의 특성을 이해하고 적절히 처리하는 것이 중요해요.오늘은 개발 중 자주 발생하는 Exception과 그 처리 방법에 대해 알아볼게요.1. NullPointerException NullPointerException은 null 객체의 속성이나 메서드를 호출하려고 할 때 발생해요. Kotlin은 기본적으로 null-safety를 지원하지만, 자바 라이브러리와의 상호작용 등으로 인해 발생할 수 있어요. val str: String? = nullval length = str!!.length // NullPointerException 발생 이를 방지하기 위해.. 2024. 6. 14.
[보험] 치과진료 실비보험 청구(스케일링 실비청구) 안녕하세요. 치과치료받은 후 실비보험 청구한 후기 올려요. 보통 치과치료는 실비 보험이 안 된다고 생각을 많이 하고, 저도 그랬는데요. '급여'부분에 한해서는 실비 청구가 가능하다고 해서 청구해 봤어요! 스케일링받은 것도, 급여에 해당한다고 해서 같이했어요. 진료비영수증 첫 번째 영수증은 스케일링만 받은 것이고, 두 번째 영수증은 충치가 생겨 인레이 치료를 받은 영수증입니다! 저는 이 2개의 영수증으로 실비보험에 보상청구를 했어요. 보험금 지급 저는 2건을 한 번에 청구해서 총 24,667원을 보상받았어요. 총 40,100(17,300 + 22,800) 원을 지출했으니, 15,433원을 제하고 보상받았네요. 여태 치과 진료받은 것은 실비보험이 안 된다고 생각하고 있었는데, 앞으로는 급여인지 확인 후 청구.. 2024. 3. 27.
[Android] Instagram Story 인스타그램 스토리 공유기능 안녕하세요.오늘은 인스타그램 스토리에 공유하는 기능을 구현해보려고 해요.문서에는 Java코드로 되어있지만, 저는 Kotlin코드로 구현해 볼게요.시작하기 전에https://developers.facebook.com/docs/android/getting-started 시작하기 - Android용 Facebook SDK - 문서 - Meta for DevelopersAndroid용 Facebook SDK 시작하기 이 문서에서는 Android용 Facebook SDK를 사용하여 Facebook과 Android 앱의 통합을 시작하는 방법을 설명합니다. Android용 Facebook SDK의 현재 버전은 12.0.0이고 Android API 15가 필요developers.facebook.com우선 해당 기능개발.. 2024. 3. 27.
[Kotlin] Coroutine Suspend function 사용자 경험을 개선하고, 애플리케이션의 성능을 최적화하기 위해서는, 네트워크 요청, 데이터베이스 작업, 파일 I/O 등의 작업을 비동기적으로 처리해야 해요. Kotlin에서 비동기 프로그래밍을 지원하기 위해 suspend 함수와 코루틴을 제공해요. 오늘은 Kotlin의 suspend 함수가 무엇이고, 어떻게 사용되는지, 그리고 이를 사용함으로써 얻을 수 있는 장점에 대해서 알아볼게요.Kotlin의 Suspend 함수란?Kotlin에서 suspend 키워드가 붙은 함수는 코루틴 내에서 실행되며, 실행을 중단(suspend)하고 재개(resume)할 수 있는 "중단점(suspension point)"을 가져요. 이 중단점을 통해, suspend 함수는 실행 중에 다른 코루틴으로 제어를 양보할 수 있고, 비동.. 2024. 3. 25.
[Android] 갤러리에서 사진 가져오기 ActivityResultContracts.GetContent을 이용해서 내부 저장소에서 이미지를 가져올게요.이전 글에서 설명한 카메라에서 가져오는 방식과는 다르게 미리 파일을 생성하지 않아도 돼서 더 간단해요.Manifest에 READ_MEDIA_IMAGES권한을 먼저 받아와야하는데, 권한을 받는 과정은 다음에 설명해볼게요.1. registerForActivityResult() 구현이미지를 선택하면 content://로 시작하는 uri를 반환해요.private val pickImageLauncher = registerForActivityResult(ActivityResultContracts.GetContent()) { uri -> uri?.let { imageUri -> //이미지를.. 2024. 3. 23.
[Android] 카메라 앱으로 사진 촬영 기기의 기본 카메라 애플리케이션을 사용하여 사진이나 동영상 촬영과 같은 기본적인 카메라 작업을 실행하기 위해서는 Intent를 활용하면 되는데요.안드로이드 개발자 문서에서는 startActivityForResult()를 사용한 예제로 안내하고 있어요.저는 registerForActivityResult()을 이용해서 구현해 봤어요.1. AndroidManifest.xml에 FileProvider설정FileProvider설정은 AndroidManifest.xml및 file_paths.xml에서 정의해야 합니다. 이미지 파일 저장을 위한 FileProvider구성은 다음과 같아요.AndroidManifest.xml ... ...res/xml/file_paths.xml .. 2024. 3. 22.
은평성모병원 구파발역 셔틀버스 운행안내(2024년 11월 동일) 은평성모병원을 내원할 때 셔틀버스를 이용하면 편하게 가실 수 있어요.아래 내용을 통해 승차/하차 장소를 말씀드릴게요.[목차여기]1. 병원 홈페이지 내 셔틀버스 운행안내 내용현재 병원 홈페이지에서 안내하고 있는 내용은 아래와 같습니다.구파발역 4번 출구 승차/하차병원 출발평일 첫차 : 06시 45분, 막차 : 18시 00분 / 매시 00, 15, 30, 45분(15분 간격)토요일 첫차 : 08시 00분, 막차 : 12시 00분 / 매시 00, 20, 40(20분 간격)구파발역 4번 출구 출발평일 첫차 : 06시 52분, 막차 : 18시 07분 / 매시 07, 22, 37, 52분(15분 간격)토요일 첫차 : 08시 07분, 막차 : 12시 07분 / 매시 07, 27, 47(20분 간격)2. 구파발역 승.. 2024. 3. 22.
[Android] Deep Link 딥링크 딥링크의 작동 원리딥링크는 URL 형태로 제공되며, 이 URL을 클릭하면 앱의 특정 부분으로 직접 이동할 수 있습니다. 웹에서 특정 페이지의 링크를 클릭해 바로 그 페이지로 이동하는 것과 유사한 원리입니다. 하지만 딥링크는 앱 내부의 특정 화면으로 직접 이동한다는 점에서 차이가 있습니다.딥링크의 종류딥링크 : 앱이 이미 설치되어 있어야만 작동하는 링크입니다. 앱이 없으면, 링크를 눌러도 아무 일도 일어나지 않습니다.웹 URL 딥링크 : 앱이 설치되어 있지 않으면 웹사이트로 이동하는 링크입니다. 이 방식으로, 앱이 없어도 내용을 볼 수 있습니다.앱 링크 : 가장 진화된 형태의 딥링크로, 앱이 있으면 바로 앱으로, 없으면 웹사이트로 이동합니다.딥링크의 장점사용자 경험 개선: 사용자는 검색이나 여러 단계의 탐.. 2024. 3. 18.