본문 바로가기

안드로이드/코틀린

(33)
[Kotlin] Filter 함수로 For문 대체하기 코틀린의 Filter함수를 사용하면 for문과 if문을 보다 간결하게 표현할 수 있습니다. 성능상 이점을 확인하긴 어렵지만 프로그램의 규모가 커질수록 가독성 부분에선 이점을 확실하게 확인할 수 있습니다. 러닝커브가 높진 않지만 활용하려면 조금 생각을 해야합니다. 하지만 for문과 if문은 평소에 많이 사용하기 때문에 익숙해질수록 좋다고 생각합니다. 아래 5명의 사람중 선택된 사람의 이름들만 뽑는 메소드를 만든다고 가정하겠습니다. 결과 : "사람1,사람3,사람5 " data class Person(val name: String, val isSelect: Boolean) var list = listOf( Person("사람1",true), Person("사람2",false), Person("사람3",true..
[AOS] Custom QR Reader 만들기 일전에 qr reader에대해 가볍게 포스팅을 작성한 적이 있는데 테스트 목적으로 작성되다보니 부족한 부분도 많고 업데이트된 내용들이 있어서 새로 포스팅을 작성합니다. zxing에서 제공하는 라이브러리를 사용해 구현하는데 기본적인 화면은 아래 사진과 같습니다. github 에 가시면 샘플 프로젝트를 다운받아서 실행시켜볼 수 있는데, 구현 가능한 기능들이 정리되어 있어 한번 다운 받아서 실행시켜 보시고 코드 분석 후 필요한 기능을 구현하시면 좋을것 같습니다. 해당 포스팅에 담길 내용 네이버 렌즈와 같은 QR Reader 앱을 구현하는데 필요한 사항들입니다. - 투명한 Status bar - 연속 QR 인식 - QR 화면 Custom - 실행중 카메라 전환 기본 QR 구현 AndroidManifest.xml..
[AOS] Mopub Migration MAX ( 광고 SDK ) 기존에 애드몹과 애드핏을 사용중이였지만 글로벌 출시를 하면서 외국인 유저를 대비해 Mopub 광고 Sdk를 연동했었습니다. ( 카카오 애드핏 광고의 경우 국내 유저 대상으로만 권고하고 있습니다. ) 외국인 유저가 많지 않아 애드몹으로도 커버가 될 수 있지만 광고가 부족해 실패가 떨어질 경우 Mopub을 호출했습니다. 그러다 Mopub이 AppLovin에 인수되어 'MAX'라는 이름으로 변경됐다는 소식을 듣고 변경작업 진행했습니다. ※작성일 기준 (22.2.15)에는 Mopub Delveloper에 접속은 가능합니다. | 구현 과정 1. AppLovin 계정이 없는 경우 새로 가입하고 2. MAX 광고 Unit을 생성하고 3. Api key를 발급 받는 | Unit 생성 회원 가입후 로그인을 하고 'Med..
[AOS] 하단 네비게이션 배경색 변경 안드로이드 유저에게 익숙한 하단 네비게이션의 색상을 변경해 조금 더 자연스럽게 연출할 수 있습니다. 작은 부분이지만 일부 유저에겐 감동(?)을 줄수 있습니다. 아래 예시 사진을 보면 제가 개발한 '식물일기'입니다. 안타깝게도 제 앱에도 아직 적용하지 못했네요.. 지금 한창 디자인 개선중에 있는데 언능 출시해야하는데 맘처럼 쉽지 않네요 ㅠ 코드 구글링 했을때 배경색 바꾸는 코드들은 많았는데 버튼 색상 변경하는 코드들이 버전을 타는 이슈들이 있었는데 아래 코드는 minSDk 21인 앱에도 문제 없지 작동했습니다. window.navigationBarColor = ContextCompat.getColor(this,R.color.white) // 배경색 변경 WindowInsetsControllerCompat(..
Webview 파일 다운로드 구현하기 웹뷰 관련 포스팅 Webview내 window.open 대응 하기 ( 새창 열기 에러 ) Webview 이미지 업로드 구현하기 Webview내 카카오톡 공유하기 에러 / 해결방안 Webview 쿠키 매니저 다루기 Webview 설정값 웹뷰에서 다운로드 기능을 별도로 구현해야 합니다. webview.setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength -> //.. 구현 } 위 코드 처럼 웹뷰에 리스너를 추가해 다운로드 타입으로 설정된 버튼등을 클릭했을때 별도 처리를 해야합니다. 엑티비티에서 사용중인 webview에 설정해도 되지만 웹뷰를 커스텀뷰로 생성해서 공통적으로 사용하면 설정 값이 변경되거나 추가할때 편리..
Webview 이미지 업로드 구현하기 ( 카메라, 갤러리 ) 웹뷰가 아닌 네이티브만 작업하시는 분들은 제 블로그에 다른 포스팅을 참고해주세요 ! ( 그리고 해당 포스팅은 minsdk 21, Kotlin 기준으로 작업됐습니다. ) [안드로이드/코틀린] 카메라와 갤러리에서 이미지 가져오기 해당 포스팅은 제 블로그 조회수에 상당수를 기록했습니다. 그만큼 앱을 개발하는데 있어 이미지는 필수사항이라고 해도 과언이 아닙니다. 많이 부족함에도 불구하고 찾아주셔서 감사합니다. superwony.tistory.com | AndroidManifest.xml 권한 설정 카메라 파일을 읽고 쓰기 위해 3가지 권한을 사용합니다. 카메라로 찍은 사진을 onActivityResult로 바로 가져오지 않고, 빈 파일을 생성해서 카메라로 찍은 사진을 저장하기 때문에 저장소 권한이 필요 합니다...
[Android/Kotlin] 커스텀 뷰로 생산성 증가시키기 시간표와 같이 일정 패턴으로 반복된 뷰들을 많이 사용해야하고 그로 인해 코드가 길어지고 복잡해 진다면 커스텀 뷰를 고려해보는게 좋습니다. 커스텀뷰 사용이 불편하시다면 Recyclerview를 이용하는 것도 방법입니다. ( 보여줘야할 뷰들의 갯수가 불규칙적일 경우 recyclerview가 더 적합할 것 같습니다. ) >> 작업이 필요한 View의 형태 개발중인 달력뷰에 사용중인 투두 리스트의 리스트로 체크 박스를 클릭하면 각 체크 박스에 맞는 이미지가 채워지고 텍스트에 줄이 생기도록 개발해야 합니다. Recyclerview만으로도 개발은 가능하지만 다른 화면에서 재사용할 예정이라 커스텀뷰를 활용 했습니다. 나아가 attrs를 활용해 xml 생성시 주어진 옵션으로 각 색과 이미지가 셋팅 되도록 했습니다. >..
[안드로이드/Kotlin] WorkManager를 활용한 백그라운드 작업 Android Jetpack의 일부로 백그라운드 작업시 구글에서 권장하는 API입니다. ( API 14이상 모두 지원 ) 기존에는 서비스를 생성하거나, 브로드캐스트 리시버를 사용해서 개발자가 원하는 시점에 앱을 깨워 작업할 수 있었습니다. 하지만 Target SDK 26이상부터는 제약으로 인해 WorkManager를 활용해야만 원활한 백그라운드 작업이 수행 가능합니다. 타겟이 이전인 예전 프로젝트나, 스토어에 출시하지 않는다면 기존 방법들도 사용 가능합니다. ( 현재 마켓 Target SDK는 29가 아니면 출시 불가 ) >> WorkManager를 활용한 경우 - 알람 매니저로 특정 시점에 서버 통신의 결과를 Noti로 보여줘야 하는 경우 ( 버전별 알람 매니저 적용법 ) - 알람 매니저로 특정 시점에..