분류 전체보기 412

for문 filter와 map으로 변경하기

1. 내가 짠 소스 for( data in images ) { if( data.type == TYPE ) { list.add(data) } } filter와 map을 이용 list.addAll( images.filter { data -> data.type == TYPE }.map { data -> data } ) 성능상 부담스럽다면 mapNotNull을 이용할 수도 list.addAll( images.mapNotNull { data -> data.takeIf{ data.type == TYPE }?.let { it } } ) filter() : 필터 filter()는 리스트내에 인자들 중 조건에 일치하는 인자만 필터링합니다. map() : 변환 map()은 컬랙션 내 인자를 변환하여 반환할 때 사용됩니다...

코딩/코드리뷰 2021.08.27

Android SAF ACTION 참고

참고: ACTION_OPEN_DOCUMENT는 ACTION_GET_CONTENT를 대체할 목적으로 만들어진 것이 아닙니다. 어느 것을 사용해야 할지는 각자의 앱에 필요한 것이 무엇인지에 좌우됩니다. 앱이 단순히 데이터를 읽거나 가져오도록 하려면 ACTION_GET_CONTENT를 사용합니다. 이 방식을 사용하면 앱은 데이터 사본(예: 이미지 파일)을 가져오게 됩니다. 앱이 문서 제공자가 소유한 문서에 장기적, 지속적 액세스 권한을 가지기를 바라는 경우에는 ACTION_OPEN_DOCUMENT를 사용합니다. 일례로 사용자에게 문서 제공자에 저장된 이미지를 편집할 수 있게 해주는 사진 편집 앱이 있습니다. 참고 : https://developer.android.com/guide/topics/providers..

안드로이드 2021.08.18

스트림 함수

변환 map() : 컬렉션 내 인자를 다른 값 혹은 타입으로 변환할 때 사용합니다. val cities = listOf("Seoul", "Tokyo") cities.map { city -> city.toUpperCase() }.forEach { print(it) } // 대문자로 변환 cities.map { city -> city.length }.forEach { print(it) } // length 변환 mapIndexed() : 컬렉션 내 포함된 인자의 인덱스 값을 변환 함수 내에서 사용할 수 있습니다. val numbers = 0..10 numbers.mapIndexed{ idx, number -> idx * number }.forEach{ print("$it ") } //변환 함수에서 각 인자와..

코틀린 & Java 2021.08.04

targetSdkVersion 30, intent.resolveActivity가 null일 경우

타겟 버전 30으로 올리면서 resolveActivity(인텐트를 수신할 앱이 있는지 먼저 확인) 호출을하면 null로 리턴하여 화면 이동이 되지 않았다. Intent(MediaStore.ACTION_IMAGE_CAPTURE)이었는데 찾아보니 Android 11에서 패키지 공개상태가 변하면서 발생하는 이슈인듯 하다. https://developer.android.com/about/versions/11/privacy/package-visibility?hl=ko Android 11의 패키지 공개 상태 | Android 개발자 | Android Developers Android 11에서는 앱이 사용자가 기기에 설치한 다른 앱을 쿼리하고 상호작용하는 방법을 변경합니다. 요소를 사용하여 앱은 액세스할 수 있는 다..

안드로이드 2021.07.29

전세 알아보기

1. 부동산을 통해 전화 후 매물 확인하러 감. 2. 집 확인(물 잘나오는지, 곰팡이, 화장실 물이 잘 내려가는지 등등) 3. 집이 맘에들면 부동산과 가계약을 한다.(나는 100만원 했음) : 가계약하면 다른 사람에게 매물을 보여주지 않는다. 대신 나중에 취소 될 경우 돌려받지 못한다고 함. 3-1) 등기부 등본 확인 표제부 - 건물의 위치, 구조, 면적, 대지권 등의 부동산 정보 기재 (*건물의 정확한 정보 확인 가능) 갑구 - 과거&현재 소유자, 가압류&가처분 등의 부동산 정보 기재 (*소유권에 관한 법적 분쟁 확인 가능) 을구 - 소유권 이외의 부동산에 관한 권리가 기록되어 있음 (*저당권, 전세권 등의 내용 확인 가능) 근저당 - 부동산을 가지고 담보대출을 하는 경우에 근저당권을 설정을해서 이 부..

부동산 2021.07.26

Android Q - 저장소(Storage) 여유공간 가져오기

안드로이드 Q 부터는 ScopeStorage이 적용되기 떄문에 Q이전과는 다르게 권한을 얻어야 한다고 한다. Q이전 : READ_EXTERNAL_STORAGE권한만 얻으면 Primary저장소에 대한 모든 접근권한을 얻을수 있다. Q이후 : 접근하려는 폴더마다SAF(Storage Access Framework)를 통해서 사용자에게 권한을 받아야 한다. 참조 : https://codechacha.com/ko/get-free-and-total-size-of-volumes-in-android/

안드로이드 2021.07.23

맥 OS 한영 전환 쉬프트 스페이스로 바꾸기

Keyboard에서 Shortcuts > Input Sources에 Select the previous input source에 더블 클릭 후, fn + Shift + Space 을 누르면, Shift + Space 로 설정이 됩니다. (주의: Shift+Space만 누르면 안 된답니다.)(맥 키보드에서 해야함) * 몬트레이 업그레이드시 한영 전환 Shift + Space가 Control + Space로 강제 전환되어있다고 한다. 해결법 : plist 직접 변경 (https://ubiquitous4g.tistory.com/147) 참조 : https://blog.edit.kr/entry/macOS-%ED%95%9C%EC%98%81-%EC%A0%84%ED%99%98-%EB%8B%A8%EC%B6%95%ED%..

개발설정 2021.07.16

해피해킹 블루투스 연결

해피해킹 하이브리드 키보드 해피해킹 키보드는 일본의 PFU Limited에서 생산되는 고급 메커니컬 키보드입니다. 해피해킹 장점 - 고품질의 메커니컬 스위치를 사용하여 타이핑 감이 우수하고 키 반응성이 뛰어납니다. - 다양한 레이아웃 옵션을 제공하여 사용자들이 자신에게 가장 편한 레이아웃을 선택할 수 있습니다. 이는 사용자들이 키보드를 자신의 작업 환경에 맞게 커스터마이징할 수 있는 유연성을 제공 - 유선 및 블루투스 무선 연결을 지원하여 사용자들이 편리하게 연결 - PFU Limited의 높은 품질 기준에 따라 제조되어 내구성이 뛰어나며 오랜 시간 동안 사용할 수 있습니다. 해피해킹 디자인 - 키캡을 자유롭게 바꿀 수 있어 이쁘게 사용 가능 해피해킹 블루투스 연결방법 블루투스 등록 1. Mac 시스템 ..

개발설정 2021.07.16