일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 회고
- 안드로이드강좌
- g 단위테스트
- 병럴프로그래밍
- 자바
- android
- Compose
- 안드로이드
- 코틀린
- 코루틴
- 글또
- mockito
- viewmodel
- 알고리즘
- 책
- Rxjava
- k8s
- 커스텀상태
- Coroutine
- 알게되는
- kotlin강좌
- 디자인패턴
- Kotlin
- 스레드
- Gradle
- theming
- 안드로이드스튜디오
- 병렬프로그래밍
- 테스트
- ReactiveProgramming
- Today
- Total
목록전체 글 (154)
선생님, 개발을 잘하고 싶어요.
서문 MVP 디자인 패턴을 공부하니 기존에 작업했던 프로젝트를 들쑤시며 배운 내용을 적용해보려고 하게 된다. 10개 정도 되는 액티비티와 프레그먼트에 MVP를 하나하나 적용해가며 겪었던 나름의 고충을 공유하고자 한다. 변경할 코드 및 문제점 class LoginActivity : AppCompatActivity() { private val REQUEST_CODE = 1000 private val networkService: NetworkService by lazy { SoptApplication.instance.networkService } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setC..
문제링크 : https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고 www.acmicpc.net 오랜만에 백준 문제풀이잼 다이나믹 프로그래밍 적용하면 풀 수 있는 간단한 문제이다. 이 문제는 함수 하나만 제작하면 된다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kBnVN/btquEAsT43t/0NWzk97JGViPvJWUtJO0WK/img.png)
tistory 글 쓰는 거 번거로워서 안 쓰고 있었는데 어느 날 들어와 보니 에디터가 변경돼있었다. 그래서 오랜만에 써보는 안드로이드 개발 관련 이야기 의존성 주입이 뭔지 책으로 읽고 koin 사용해봐도 감이 잘 안왔는데 이번에 개인 프로젝트 진행하면서 편함을 체감한 경험을 해서 공유하려고 한다. 프로젝트 상황 설명 안드로이드 MVP 패턴을 적용해서 모닝루틴 기록하는 앱을 만드는 프로젝트를 진행 중이었다. Model : 모닝 루틴 객체를 정의하고, 모닝루틴 데이터의 읽기, 쓰기를 위해 repository 객체를 만들었다. 작은 범위부터 구현하기 위해 간단히 메모리 상에서 데이터를 관리하는 memory repository를 구성했다. Presenter : Model을 참조하며 View의 변경 이벤트에 의해..
예제 프로그램 윈도우 프로그램을 만들다보면 프로그램을 껏다 켜도 유지되야하는 세팅들이 있다. 이러한 세팅을 하기 위해 외부에 커스텀 세팅 파일을 제작하고, 프로그램 시작할때마다 불러오고, 변경할때마다 저장하는 식으로 구현이 가능하다. 하지만 winform에서는 더 쉽게 접근할 수 있다. 바로 properties에 있는 settings 가 그것이다. 배경화면 색이 변경되고, 다음번에 킬 때도 마지막으로 설정한 색의 배경화면으로 켜지는 예제 프로그램을 만들면서 settings 의 기본 사용법을 알아보자. 1. 세팅 설정 winform 프로젝트에 solution explore를 보면 Properties - Settings.settings 를 누른다. 생성하고 싶은 속성의 이름 - 타입 - 초기값을 지정한다. ..
타이머 구현해야하는데 java.util 의 Timer + TimerTask 조합은 구현 방법도 까다롭고(한번 예약한 Task 를 취소하는 과정이 까다롭다.) 그러다보니 생각한 대로 동작하지 않아도 디버그가 힘들었다. 그래서 찾은게 handler를 이용한 타이머구현 handler 가 뭔지 대략적인 설명을 보려면 공식문서를 참조하자. 1. 특정 시간 이후에 한번 발동하는 타이머 postDelayed를 사용하면 첫번째 인자로 들어가는 runnable 객체를 두번째 인자로 들어가는 시간 (millisecond 단위) 이후에 실행하도록 한다. 2. 특정 시간 마다 발동 하는 타이머 (tick) post를 사용하면 첫번째 인자로 들어가는 runnable 객체를 실행해준다. task 코드에서 자기 자신 (task)를..
FileStream 을 열어 준다. FileStream 은 다음과 같은 정적 퍼사드 메서드를 사용해서 만든다. 그리고 손쉽게 다양한 자료형을 읽기 위해 스트림 적응자, BinaryReader 를 생성해서 사용한다.
https://developer.android.com/topic/libraries/architecture/viewmodel?hl=ko ViewModel 클래스 : 상태 변화같은 것에도 데이터가 유지되게 해준다. 필요 이유 0. AndroidFramework 는 UI(Activity, Fragment) 의 lifecycle 을 관리한다. 1. AndroidFramework 는 UI 를 파괴하거나 다시만드는 것을 결정한다. -> 사용자의 행동으로 인해 -> 기기 이벤트로 인해 (이건 프로그래머가 컨트롤 할 수 없다.) 2. 파괴될때 연관된 데이터를 잃게 된다 다른 접근법 0. onSvaeInstanceState() 에서 상태를 bundle 로 저장하고 1. onCreate() 에서 bundle 로 상태를 회..
다른 블로그들에서 좋은 내용 (코딩상)을 많이 찾았으나 정작 나는 BR 파일이 생성이 안됬다. -ㅅ- 정확히는 @Bindable로 설정한 속성들이 BR 값에 생성되어야 하는데 안됌; http://mobiledevhub.com/2018/01/05/android-two-way-databinding/ 일단 이 위의 블로그 내용중 다 좋은데 Gradle 파일 설정이 최신버전 안드로이드 스튜디오 에서는 의미가 없더라 kapt 고 뭐고 쓸모가 없었다. 본인의 Project Version은 Gradle : 4.6 Android Plugin Version : 3.2.1 compileSdkVersion 28 단방향 바인딩에선 문제없는데 양방향 바인딩에서 문제가 생겼다. sdk 매니저를 보니 최근거 SDK 가 설치가 부분..