일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 글또
- 책
- 안드로이드강좌
- theming
- 병렬프로그래밍
- 자바
- Rxjava
- Coroutine
- 디자인패턴
- Compose
- 커스텀상태
- 코루틴
- 회고
- Gradle
- 알고리즘
- viewmodel
- 스레드
- android
- 테스트
- 안드로이드
- mockito
- Kotlin
- g 단위테스트
- k8s
- ReactiveProgramming
- 알게되는
- kotlin강좌
- 안드로이드스튜디오
- 병럴프로그래밍
- 코틀린
- Today
- Total
목록개발/android 개발 (47)
선생님, 개발을 잘하고 싶어요.
안드로이드 styling 바로알기(theme vs style) 좋은 자료 공유 style은 Widget이 가지는 개별 attr에 대한 내용이다. (Single View에 적용) theme은 resource에 대한 semantic한 이름을 지정하는 내용이다. (App Level에 적용) theme이 interface라는 메타포가 좋았다. 코드를 작성할 때 interface 기반으로 작업하면 실제 구현체를 쉽게 교체할 수 있듯이 (일종의 OCP 처럼) theme attribute 기반으로 Widget을 설계하고, style을 구현하면 다른 resource set에 대해서 실제 값을 편하게 바꿀 수 있다. 노션에 정리한 거: https://greedy0110.notion.site/Android-Theme-Th..
URL 기본구조 ://:@:/;?# scheme 리소스를 어떻게 접근하는가? 어떤 프로토콜을 사용하는가? (ex. http, https, ftp...) host, port 리소스에 접근할 수 있는 서버가 어디 있나? (www.greedy0110.tistory.com) path 리소스가 서버의 어디에 있는지 알려준다. 서버가 리소스의 위치를 찾는 데 사용하는 정보 / 로 구분 (https://.../path1/path2) parameter 앱이 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터 ; 로 시작 query 리소스 형식의 범위를 좁히기 위한 정보 ?로 시작 (https://.../path?query1=hello) & 로 별도의 query 키값 구분 (https://.../path?query1=..
에러는 어디서 처리하는가? 다음 코드는 getImage가 에러를 던진다면 어떻게 될까요? fun main() = runBlocking { try { val deferredImage = scope.async { getImage("path") } deferredImage.await() } catch (e: Exception) { // ignore all exceptions } } kotlin 문서를 참조하면 async 내부에서 에러가 발생하는 경우 await 시점에 잡히기 때문에 getImage에서 발생한 에러는 위의 catch 구문에 의해서 처리되게 됩니다. 그렇다면 다음 코드는 어떻게 동작할까요? scope.launch { try { val deferredImage1 = async { getImage("..
평소 항상 Date클래스와 Calendar클래스를 쓰며 파싱이라곤 SimpleDateFormat을 사용해서 동작은 하게 코드를 짜고있었는데요. 사람이 살다보니 좀더 포멀하게 코드를 짜야할 상황을 마주하게 되고 이 참에 이 불편한 코드를 개선해보자고 생각해서 찾아봤습니다. 뭐 이런 문자열을 파싱하고 싶은겁니다. 2017-05-06T00:36:45+09:00 2017-06-21T15:59:30.000+09:00 ISO 8601이라고 하는데요. 여기에 시간 Offset까지 포함된 친구입니다. 실행 코드 다음을 build.gradle에 추가하세요. android { defaultConfig { // minSdkVersion가 20 이하일 때만 적용하세요. multiDexEnabled true } compileO..