일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- firebase-database
- JNI
- BottomSheetDialog
- hung-up
- Java8
- firebase-storage
- ozd
- cloud-firestore
- AWS
- ActivityResult-API
- Flavors
- google-login
- socket-server
- git-push
- OZViewer
- gradle
- socket-client
- Kotlin
- mosquitto
- Dva
- mqtt
- NoSuchMethodError
- Android
- Galaxy Watch
- TIZEN
- 오즈뷰어
- 워치
- Firebase
- git
- socket.io
- Today
- Total
목록2024/04 (3)
Hyeyeon blog
5장 객체 생성 33. 생성자 대신 팩토리 함수를 사용하라 34. 기본 생성자에 이름있는 옵션 아규먼트를 사용하라 35. 복잡한 객체를 생성하기 위한 DSL을 정의하라 6장 클래스 설계 36. 상속보다는 컴포지션을 사용하라 37. 데이터 집합 표현에 data 한정자를 사용하라 38. 연산 또는 액션을 전달할 때는 인터페이스 대신 함수 타입을 사용하라 39. 태그 클래스보다는 클래스 계층을 사용하라 40. equals의 규약을 지켜라 41. haseCode의 규약을 지켜라 42. compareTo의 규약을 지켜라 43. API의 필수적이지 않은 부분을 확장함수로 추출하라 44. 멤버 확장 함수의 사용을 피하라 33. 생성자 대신 팩토리 함수를 사용하라 * 팩토리 함수: 생성자 역할을 대신 해주는 함수 * ..
🤓 AGP 7.4.0 이상에서 발생하는 문제로, 아래와같이 build.grale(app)에 JVM 대상의 JDK 버전을 명시하여 해결할 수 있다. kotlin { jvmToolchain(17) } android { kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }
3장 재사용성 19. knowledge를 반복하여 사용하지 않기 20. 일반적인 알고리즘을 반복해서 구현하지 않기 21. 일반적인 프로퍼티 패턴은 프로터피 위임으로 생성하기 22. 일반적인 알고리즘은 제네릭 함수로 구현하기 23. 타입 파라미터의 섀도잉을 피하기 24. 제네릭 타입과 variance 한정자(out, in) 활용하기 25. 공통 모듈로 추출해서 여러 플랫폼에서 재사용하기 4장 추상화 설계 26. 함수 내부의 추상화 레벨을 통일하라 27. 변화로부터 코드를 보호하려면 추상화를 사용하라 28. API 안정성을 확인하라 29. 외부 API를 랩(wrap)해서 사용하라 30. 요소의 가시성을 최소화하라 31. 문서로 규약을 정의하라 32. 추상화 규약을 지켜라 19. knowledge를 반복하여 ..