Development

- Future : 비동기(async) 작업을 표현하는 Dart의 핵심 타입 - Future 객체를 통해 실행되는 로직이 나중에 처리되는 것을 확인 가능한 코드// Future - 비동기 작업의 결과 또는 완료 상태를 나타내는 객체void main() { playPcGame();}void playPcGame() { startBoot(); startInternet(); startGame();}void startBoot() { print("boot completed");}void startInternet() { Future.delayed(Duration(seconds: 3), () { print("internet completed"); }); print('delay step');}void..
- List, Map 선언List numbers = [];List numbers2 = [1, 2, 3, 4, 5];Map scoreMap = {};Map scoreMap2 = {'key': 100, 'any': 200, 'lee': 300}; - 반복문void main() { numbers.add(6); for (int i = 0; i - 함수 및 클래스 선언int add(int a, int b) { return a + b;}class UserInfo { String name; int age; UserInfo(this.name, this.age); void abc() { }} - 클래스 상속class Man extends UserInfo { Man(String name, ..
- 이번엔 Room DB DAO를 통해 데이터의 저장 및 수정이 문제없이 작동하는지 테스트하는 코드를 작성해 본다.@RunWith(AndroidJUnit4::class)class MovieDaoTest { @get:Rule var instantTaskExecutorRule = InstantTaskExecutorRule() private lateinit var dao: MovieDao private lateinit var database: TMDBDatabase- DAO Test 클래스를 하나 만들어서 동기적 테스트를 위해 InstantTaskExecutorRule()을 선언해 주고, DAO와 DB 초기화를 준비한다. - 아래와 같은 DAO를 테스트해 보기로 했다.@Daointerfa..
https://yongdragon9819.tistory.com/entry/Android-Test-Before%EC%99%80-Test%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%81%B4%EB%9E%98%EC%8A%A4-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A7%84%ED%96%89#google_vignette [Android Test] @Before와 @Test를 이용한 클래스 테스트 진행- 안드로이드 테스트 코드 작성에 대한 각종 내용을 기록하는 말머리 [Android Test] - 아래와 같이 원주율을 활용한 계산 Class가 있다.class MyCalc : Calculations { private val pi = 3.14 override fun c..
- 지정된 Ratio 조건을 가지는 둥근 테두리 모양의 이미지 렌더링 컴포넌트를 작업했다. - Ratio는 가로 세로 비율인데, 디자인 가이드에 1:2, 16:9 형식처럼 디자이너분이 지정을 해주셨고, 그에 따라 Enum Class로 정리했다.enum class CustomRatio(val width: Int, val height: Int, ...) { RATIO_1_1(1, 1, ...), RATIO_4_5(4, 5, ...), ... - 그리고 Float 타입으로 Ratio 값을 구하는 공식 함수도 선언해 준다.val value: Float get() = width.toFloat() / height - 둥근 테두리 구성을 위해 Modifier의 border를 사용했다. width..
- 안드로이드 테스트 코드 작성에 대한 각종 내용을 기록하는 말머리 [Android Test] - 아래와 같이 원주율을 활용한 계산 Class가 있다.class MyCalc : Calculations { private val pi = 3.14 override fun calculateCircumference(redius: Double): Double { return 2 * pi * redius } override fun calculateArea(redius: Double): Double { return pi * redius * redius }} - JUnit4 기반 test 코드를 작성해 본다. - 먼저 클래스명에서 오른쪽 마우스 - 생성 - 테스트를 통..
- 얼마 전에 리플 효과를 적용시킨 FAB 버튼을 구현했었다.- 리플 내부에는 클릭 상태를 감지하는 interactionSource를 포함하고 있다. 이를 통해 리플뿐만 아니라 버튼 자체의 스케일이 변하는 애니메이션까지 추가해 보겠다.interactionSource = interactionSource,indication = rememberRipple( color = colorResource(R.color.color_system_label_default_light).copy(alpha = 0.16f), bounded = true),onClick = onClick - 먼저 아래 값들을 선언해 준다. 모두 pressed 상태를 감지하기 위한 요소이다.val interactionSource = rem..
- 기존에 아래와 같이 메모 데이터를 저장하는 테이블이 있다.@Entity(tableName = "save_model")data class Memo( @PrimaryKey(autoGenerate = true) val id: Int = 0, var title: String, var detail: String, val dtCreated: Long, var dtUpdated: Long, var color: String)- 링크 데이터를 추가하기 위해 String 타입 필드를 추가하려고 한다. @Entity(tableName = "save_model")data class Memo( @PrimaryKey(autoGenerate = true) val id: Int = 0, ..
- 기존의 XML 화면에서 Compose 기반 컴포넌트 활용을 위해 ComposeView를 사용하고 있었다. - 그리고 인앱 지정 컬러를 변경할 때마다 ComposeView에 걸린 컴포저블의 tint도 변경을 해줘야 했는데, 프로퍼티로 들어가는 속성 값은 변경되지만 실제 컴포저블 set 로직까지는 진입이 안 되는 것을 확인했다.mainAddBtn.setContent { TbFloatingActionButton( androidx.compose.ui.graphics.Color(AppColor()), ... - 이유는 setContent {} 자체가 최초 한 번만 컴포지션을 설정하도록 구성되어 있는 것이다. 따라서 이미 컴포지션이 설정된 ComposeView에 대해서는 발동하지 ..
- final//최초에 값이 한번 할당되면 이후에는 불가능final int test;test = 30; - const//선언과 동시에 값을 결정해야한다. -> 해당 값은 컴파일 시점에서 결정되어야한다.const int testVal = 10; - 연산자는 코틀린과 다를 거 없는데 몫 구할 때만 다름//몫을 구하는 연산자 int a = 40;int b = 10;int mok = a ~/ b;print(mok); - 조건문int c = 50;if (c == 50) { print("50");}String grade = 'A';switch(grade) {case 'A': print('우수 등급'); break;case 'B': print('보통'); break;case 'C': print('미달');..
SeungYong.Lee
'Development' 카테고리의 글 목록 (7 Page)