일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 클린 아키텍쳐
- moveToState
- 타이머앱
- android clean architecture
- 뷰 상태 저장
- 특가촌
- andorid
- 특가알람
- Android
- nvidia-docker
- 뷰 상태복구
- 대학톡
- recyclerview
- RxJava
- List
- 특가게시판
- java.lang.OutOfMemoryError: Java heap space
- todofication
- fragment
- RX
- compileKotlin FAILED
- 카드 내역 공유 앱
- 작성
- 안드로이드
- Quickly
- onViewCreated
- kotlin
- 카드내역 공유
- Koin
- 올인원타이머
- Today
- Total
목록android (29)
seoft
[개발 개요] 현 토이프로젝트 도중 빈번한 날짜 출력을 위해 구현 했는데 추후에도 종종 쓸거같아 기록 다음의 조건에 따라 알맞은 String을 반환할 수 있게 확장함수 작성 ~ 10초 : 지금 막 ~ 60초 : n초 전 ~ 60분 : n분 전 ~ 24시 : n시간 전 ~ 48시 : 어제 ~ 7일 : n일 전 ~ : MM.DD [확장함수 및 테스트코드]
koin activity의 viewmodel을 fragment에서도 공유하여 사용 할 경우 fragment에서 by viewModel 대신 by sharedViewModel 사용 단, fragment에서만 사용하는 viewmodel을 사용 하는 경우 by viewModel 으로 사용 가능 추가로 Activity에서 viewModel 를통해 초기화 한 뷰모델을 Fragment에서 by sharedViewModel를 통해 작업한다 하더라도 해당 뷰모델의 생성은 두번 되지 않고 Activity에서 생성한 뷰모델을 공유해서 사용한다. 뷰모델에 parametersOf 를 통해서 생성에 필요한 인자를 전달해주는데 sharedViewModel를 통해 생성할때는 뷰모델이 추가적인 인자가 필요한 상황에도 따로 param..
중복클릭을 방지하고자 하였고 throttleFirst를 RxView.clicks와 함께쓰는 자료가 대부분이었다. RxView를 따로 쓰지않아 Util성격으로 클래스를 하나 만들었다. 사용은 전역으로 ClickUtil 객체를 하나 생성후 click.run에 실행할 부분을 넣어주면 된다. lifecycle을 넘기므로 rxjava의 dispose 를 신경 쓰지 않아도 된다.
기존에 if 로 널처리 혹은 특정 처리 후 코드를 이어갈라면 코드가 길어지고, 뎁스가 깊어지는 경우 도 있다. 다음 처럼 사용하면 더 간결하게, 직관적으로 사용할 수 있다.
동시성 환경에서 리스트를 갱신할 때 immutable한 list를 새로 생성하여 list자체에 대입시킨다. 20.02.18 추가 밑에처럼 사용하다가 더 쉽고 직관적인 방법을 찾아 공유한다. 기존에 위와같은 방법을 사용했었는데, 밑에처럼 비교적 간단하게 사용 가능하다. kotlin list 생성 방법 중 varang을 받는 inline함수가 있는다. 이 함수에 리스트 인자를 넣으면 되는데, list를 array로 바꾸고 array앞에 spread연산자(*)를 사용하면 개별 변수로 되어 varang에 대입할 수 있다.
문제정의 리사이클러뷰를 다음과 같이 폴더 아이콘 형식으로 사용하고 폴더를 눌렀을 때 이벤트를 발생시켜야 하는데 리사이클러뷰 내 어딘가에서 touchEvent를 소비해버린다. 리사이클러뷰에 onInterceptTouchEvent를 걸어 onTouch로 onClick을 대체하는 방법(https://seoft.tistory.com/32)이 있지만 onLongClick까지 적용시키기엔 좌표와 time계산을 통해서 혹은 gestureListener를 통해서 해결이 가능한데 단순 터치를 적용시키기 위해서 너무 과한 방법이라 판단하였다. 검색 후 리사이클러뷰 위에 뷰를 하나 덧되어 그 뷰에 터치 이벤트를 먹이는 방법도 있었지만 동적으로 생성하고 없애주는 경우에 뷰를 두 개씩 관리해야 된다는 점에서 채택되지 않았고 다..
문제정의 quickly앱(https://github.com/seoft/quickly)개발을 하기 이전에 우선 필요 뷰들을 라이브러리화 시켜 적용할 계획이었고, DragAndDropBetweenMultipleGrid(in https://github.com/seoft/seoft-android-libraries)라는 라이브러리 프로젝트 진행하였는데 도중에 의도치 않은 버그가 발생하였다. 버그 리포팅을 위한 요구사항은 중앙의 RecyclerView 내 아이템을 롱 클릭했을 때 플로팅 뷰 하나가 생겨나고 손가락을 따라다니며 스크린에 전체에 왔다 갔다 할 수 있게 구현하는 것 구현상황 : 1. RecyclerView ViewHolder에 setOnClickListener, setOnLongClickListener등..
[문제정의] 사이드 프로젝트 2min 어플리케이션 제작도중 Room을 도입하게 되어 숙지/테스트 해보았고 추가로 정리함 [핵심코드] table 추가시, abstract class AppDatabase : RoomDatabase() 에 다음처럼 반영하는거 꼭 숙지할것 @Database( entities = [ User::class, Time::class, TimeSet::class, Bell::class ], version = 1 ) @TypeConverters(RoomConverter::class) 추가로 자식 엔티티가 특정 엔티티의 list로 들어가기 위해 forengForeignKey설정시 자식엔티티의 CRUD가 안되었음 - list object 확인 완료 - object inside object 확..