본문 바로가기
반응형

Kotlin30

[Kotlin] Android Camera 사용하기 Android Camera 사용하기 권한 카메라를 사용하기 위해서는 카메라 권한부터 얻어야 합니다. 흐름은 아래와 같습니다. Manifest 에 다음 항목 추가 ..생략.. dependencies 추가 build.gradle(app) 의 dependencies 에 다음 항목 추가하고 우측상단에 [Sync Now] 클릭해서 받아옵니다. def camerax_version = "1.0.0-rc01" def camerax_view_version = "1.0.0-alpha20" implementation "androidx.camera:camera-camera2:${camerax_version}" implementation "androidx.camera:camera-lifecycle:${camerax_versio.. 2023. 8. 4.
[Kotlin] Json String (List) 을 Data Class 로 변환 (GSON) Json String (List) 을 Data Class 로 변환 (GSON) 이전 글에서 휴일 정보를 Json 으로 가져왔습니다. 참고 https://date.nager.at/api/v2/publicholidays/2023/KR 위의 호출 결과를 Data Class 로 매핑할 경우 아래와 같은 data class 로 만들 수 있습니다. data class PublicHolidays( @SerializedName("date") val date: Date, @SerializedName("localName") val dateName: String, @SerializedName("name") val engName: String, @SerializedName("countryCode") val locale: St.. 2023. 8. 2.
[Kotlin] HttpUrlConnection 사용하여 api 호출하기 manifest 에 권한 추가 Activity 생성 HttpActivity ViewBinding 하도록 소스 수정 class HttpActivity : AppCompatActivity() { private lateinit var binding: ActivityHttpBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityHttpBinding.inflate(layoutInflater) setContentView(binding.root) } } layout UI Thread 가 아닌 Background Thread 에서 작업하기 위해서 ThreadExecutor.. 2023. 8. 2.
[Kotlin] Class 생성자 간단한 Class class User(var name: String) val user1 = User("Hello") println(user1.name) // Hello user1.name = "Bryan" println(user1.name) // Bryan 위의 class 에서 var 대신 val 로 수정하면, 아래 라인에서 오류 발생 user1.name = "Bryan" // 오류 일반적인 Class class User { var name: String? = null var age: Int? = null lateinit var group: String } val user1 = User() user1.name = "hello" print(user1.name) // hello lateinit 를 할당하지 .. 2023. 8. 1.
[Kotlin] FrameLayout 사용해서 Fragment 써보기 androidx.fragment 1.2.0 이상부터 쓸 수 있는 FragmentContainerView 가 있습니다. FragmentContainerView 를 사용하는 방법은 여기에 작성했습니다. Fragment 를 생성합니다. 생성할 위치에서 New > Fragment > Fragment(Blank) 를 클릭해서 만듦니다. 그리고 fragment 의 layout 에 EditText 나 Button 등을 몇개 추가합니다. 그리고 Activity 에 아래와 같은 FrameLayout 을 추가합니다. 그리고 MainActivity.kt 의 onCreate 에 아래 코드를 입력합니다. supportFragmentManager .beginTransaction() .replace(binding.mainFrame.. 2023. 7. 28.
[Kotlin] Activity 에서 Fragment 변경하기 Activity 에서 Fragment 변경하기 Fragment 1 에서 버튼을 클릭하여 상위 Activity 의 method를 호출하고, (이전 글 참고) 그 method 에서 Fragment 1 을 Fragment 2 로 변경하는 것을 해보겠습니다. 이전 글에 이어서 작성하는 것이라서 혹시 따라하기를 원하신다면 이전 포스트를 먼저 보시고 오시면 됩니다~ 우선 Fragment 하나를 더 만들어보겠습니다. 이름은 LogoutFragment 자동으로 생성된 코드는 지우고, viewBinding 으로 사용할것이므로, 다음과 같이 코드를 작성합니다. class LogoutFragment : Fragment() { lateinit var binding: FragmentLogoutBinding override fu.. 2023. 7. 28.
[Kotlin] Fragment 사용하기 Fragment Android에서 Fragment는 UI 조각을 나타내는 컴포넌트로, 하나의 화면 내에서 재사용 가능한 UI 요소를 구성하는데 사용됩니다. Fragment는 Activity 내에 포함되어 독립적으로 존재하지만, Activity의 라이프사이클에 의존하여 동작합니다. Fragment를 사용하면 앱의 UI를 더 모듈화하고 재사용성을 높일 수 있음 여러 화면 크기와 디바이스에 대해 더 유연하게 대응 화면을 나누어 여러 작은 조각으로 구성하여 사용자 인터페이스를 관리 각 조각을 독립적으로 관리 Fragment의 라이프사이클은 Activity의 라이프사이클과 밀접한 관련이 있으며, 다양한 메소드를 사용하여 상태 변화를 감지하고 제어할 수 있습니다. Fragment의 주요 라이프사이클 메소드 onA.. 2023. 7. 28.
[Kotlin] Android 에서 Retrofit2 사용하여 API 호출하기 테스트 할 Empty Activity 를 생성합니다. (이제 생성 단계는 생략) 이름은 RestApiActivity 로 하고, Source Language 는 Kotlin class RestApiActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_rest_api) } } 기본적으로 이렇게 코드가 나오는데, 아래와 같이 ViewBinding 으로 변경합니다. class RestApiActivity : AppCompatActivity() { private lateinit var bindi.. 2023. 7. 25.
[Kotlin] apply, with, let, ?: 사용하기 아래와 같이 Person 이라는 class 가 있을 때, data class Car( var model: String? = null, var price: Int? = null, var brand: String? = null ) { override fun toString(): String { return "Car : [$model, $price, $brand]" } } 일반적으로 다음과 같이 초기화 합니다. var car1: Car? = Car() car1?.model = "x" car1?.price = 50000000 car1?.brand = "tesla" print(car1?.toString()) // Car : [x, 50000000, tesla] apply 다음과 같이 사용할 수 있습니다. val .. 2023. 7. 25.
[Kotlin] 리니어 레이아웃(LinearLayout) 예제 리니어 레이아웃은 수평 또는 수직 방향으로 정렬할 수 있는 레이아웃 입니다. 사용하기 쉬워서 간단한 레이아웃은 이것으로 다 만들 수 있습니다. 필수 속성 layouut_width : 가로 사이즈 layout_height : 세로 사이즈 orientation : 방향 (horizontal, vertical) Activity 만들기 - empty activity를 하나 생성합니다. 이름은 LinearTestActivity 기본적으로 생성되는 레이아웃이 ConstraintLayout 이므로, LinearLayout 으로 변경합니다. res/layout/activity_linear_test.xml > Component Tree > ConstraintLayout > Convert view... 클릭 아래와 같은 .. 2023. 7. 25.
728x90
반응형