일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring responseEntity response cause
- 개발 포지션 변경
- spring exception cause remove
- 운영체제 개념
- 운영체제 자원관리
- IT 직무 변경
- 백엔드 포지션 변경
- spring exceptionHandler response cause
- spring sql injection 방지
- 운영체제 멀티 태스킹
- spring sql injection
- spring exception stackTrace remove
- spring dynamic query sql injection
- android 타이머
- spring exceptionHandler reposnse stackTrace
- ec2 scp 파일 전송
- 개발 직무 변경
- 운영체제 멀티 프로그래밍
- 운영체제 다중모드
- spring paging sort sql injection
- 운영체제 공룡책
- Android Timer
- IT 포지션 변경
- 백엔드 직무 변경
- aws ec2 scp 파일 전송
- 운영체제 작동방식
- 운영체제 커널모드
- spring 동적 쿼리 주의사항
- OS 자원관리
- spring responseEntity response stackTrace
- Today
- Total
목록안드로이드 (42)
오늘도 삽질중
RxBinding과 combinLatest 를 사용하여 간단한 Ui변경을 진행해보겠습니다. 에디트텍스트 2개와 , 체크박스 1개가 존재하고 에디트텍스트의 내용이 모두 존재하면서, 체크박스가 체크되어 있어야만 버튼이 활성화 됩니다.3개 중 하나라도 충족이 안될경우 버튼이 비활성화 됩니다. build.gradle( app Level )2021.1.20 기준implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' implementation 'io.reactivex.rxjava3:rxjava:3.0.6' implementation 'io.reactivex.rxjava3:rxkotlin:3.0.1' implementation 'com.jakewharton.rxbinding4..
Android Oreo 이상 앱 종료시점 캐치하기 해당 블로그는 다음과 같은 분들에게 도움이 될꺼라 판단합니다. 앱 종료시점(슬라이드 종료) 를 캐치하는데 Oreo 이상은 startForegroundService를 실행하는건 알고 있다.문제는 startForegroundService 는 노티피케이션 ui가 생기는데 이걸 제거하고 싶다. 또는 간단한 백그라운드 서비스를 구현하려고 할 때 startForegroundService를 사용하여 편법으로 백그라운드에서 서비스를 돌릴수 있을까? 아마 이 블로그를 들어온 사람들은 거의 비슷하게 생긴 예제들을 봤을거라고 생각합니다.서비스 시작시 OS 버전을 체크하여 서비스를 실행한다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODE..
Http URL로 파일 업로드를 구현해야 하는 일이 있어서 SAF 로 파일생성이나 폴더생성 예제를 찾아보았지만 제가 원하는 예제는 존재하지 않았습니다.그래서 파일 및 폴더 생성 부분만 간단하게 직접 테스트해보고 구현해봤습니다.내부저장소에 폴더 및 파일을 생성하게 됩니다. 해당 소스로 Android OS 7.0도 문제 없는걸로 보아 하위버전까지 호환이 가능한거 같습니다. 앱내 저장소는 FilePath 를 사용하여 작업이 가능하나, 저장소 정책이 변경되어 FilePath를 사용하는 코드는 모든 상황에 대응하기 힘들다고 판단하였습니다.해당 로직의 핵심은 FilePath를 사용하지 않습니다.오로지 uri로 모든 작업을 처리하였습니다. 해당 유튜브 영상과 블로그가 도움이 많이 되었습니다. 참고해보시면 좋을꺼 같습..
Rx로 레트로핏 네트워크 통신시 HttpCode를 확장함수로 처리해보자. 회사 프로젝트의 네트워크통신을 Rx로 변경하고 있다.물론 기본적인 방법으로도 httpCode를 가져 올수는 있지만 매번 호출마다 subscribe에서 분기처리를 해줘야 하니 뭔가 영 마음에 들지 않았다. 우선 httpCode를 받아와야 하니 당연히 Single 를 리턴하는 api 가 존재할것이다.@FormUrlEncoded @POST("login/Auth") fun loginApiPhoneSignIn(@FieldMap map: Map ) : Single 그 다음엔 api를 호출하여 보통 이런식으로 처리를 했었다.compositeDisposable.add( loginUseCase.phoneSignIn(apiBodyMap) .subsc..
필자는 1년 6개월차 안드로이드 초보개발자입니다.1년간 블록체인 회사에서 일하고, 개인적인 사정으로 프리랜서 6개월을 진행했습니다.출시한 앱은 총 4개이며, 출시후 디테일하게 유지보수까지 한 앱은 2개입니다. 해당 내용은 제가 지금까지 개발하면서 느낀 개인적인 견해입니다.사람마다 생각이 다르듯이 저의 디자인패턴에 대한 생각을 제 경험을 토대로 작성하였습니다. 예전엔 위 질문에 "별로 중요하지 않은거 같은데?" 라는 생각을 자주 했다. 하지만 지금은 "매우 중요하다, 다만 모든 유스케이스에 꼭 적용 할 필요는 없다." 라고 생각이 바뀌게 되었다. 왜 이렇게 생각이 바뀌었느냐....직접 실무에서 개발을 해보니까 필요성을 느끼게 되었다.필자는 지금까지 MVC 패턴으로만 개발을 했기 때문이다. 물론 MVC패턴으..
Android 버전 Q부터 저장소 정책이 변경되어현재 많은 블로그에 있는 기존 카메라 및 앨범예제가 작동되지 않습니다. 저 또한 현재 서비스중인 앱에 카메라와 앨범기능이 존재하기 때문에 급하게 찾아봤지만 제가 원하는 카메라 및 앨범예제는 존재하지 않았습니다. android:requestLegacyExternalStorage="true" 임시방편으로 위 플래그를 추가하면 기존 소스도 정상동작하지만 Q 이후 버전부터는 해당 플래그를 무시한다고 해서 대응을 해줘야 합니다. 실제로 위 플래그를 제거하면 Q 버전에서도 에러가 발생합니다. 그래서 정리목적으로 직접 샘플소스를 구현했습니다.해당 소스는 APi 23레벨(6.0) 기종은 테스트가 안될수 있습니다.단순히 SAF로 인해 바뀐 저장소 정책에 대응한 소스입니다...
circleView.setImageDrawable( new ColorDrawable( Color.parseColor( "#191F28" ) ) ); 별것도 아닌걸로 삽질했네...
FCM 관리자 계정을 바꿔야 해서 새로 프로젝트를 만들고 안드로이드 스튜디오에서 새로 발급받은 google-services.json 로 교체하고 서버키 또한 새로운 키로 교체한 뒤 푸쉬가 가지 않는 상황이 발생했습니다. 포스트맨으로 테스트해보니 MismatchSenderId 에러가 발생했는데, 구글 검색을 해보니 새로 바뀐 서버키로 교체해줘라, Sender Id 를 확인해 보라 등등 여러 답변이 많았지만 다 적용되지 않았습니다. 그래서 혹시나 하는 마음에 안드로이드 스튜디오 에서 Build -> Clean Project 후에 새로 토큰을 발급받고 해보니 정상동작했습니다. 왜 이런 문제가 발생했는지 정확한 원인은 모르지만 아마 이전에 사용했던 google-services.json 파일이 캐시에 남아있어 새..
안드로이드 팝업메뉴 기본사용법 및 스타일 적용방법입니다. popup_menu.xml popup_menu.java import android.os.Bundle; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.PopupMenu; public class PopupMenuActivity ..
BigDecimal 이나 BigInteger를 쓰다보면 값을 비교하는 compareTo를 자주 사용하곤 합니다. 매번 자주 사용하지만 쓸때마다 리턴값이 헷갈려서 정리목적으로 글을 작성합니다. 실행Log.e( "1 compareTo 2 :", "" + new BigDecimal( "1" ).compareTo( new BigDecimal( "2" ) ) ); Log.e( "1 compareTo 1 :", "" + new BigDecimal( "1" ).compareTo( new BigDecimal( "1" ) ) ); Log.e( "1 compareTo 0 :", "" + new BigDecimal( "1" ).compareTo( new BigDecimal( "0" ) ) ); 결과1 compareTo 2 ..