728x90

전체 글 163

[Android] DownloadManager / HTTP 통신으로 파일 다운로드하기

DownloadManager 클래스를 활용하여 인터넷 상의 파일을 앱에서 다운로드해 본다.      ✅ DownloadManager ? DownloadManager는 HTTP 다운로드를 처리하는 시스템 서비스다.엄밀히 말하면 장기적인 HTTP 다운로드를 처리한다. 클라이언트는 다운로드할 파일의 경로, 즉 URI만 알고 있다면 다운로드를 요청할 수 있다. DownloadManager는 기본적으로 백그라운드에서 작업을 수행하도록 설계되어 있어서,개발자가 별도로 백그라운드 작업 처리를 해주지 않아도 된다. 또한, 다운로드가 진행 중일 때는 알림 드로어에 진행 상황이 자동으로 표시된다.      ✅ 샘플 파일 경로 먼저, 다운로드해 볼 파일의 경로는 다음과 같다.// 이미지"http://commondatasto..

[Android] View에 Ripple 효과 적용하기 / 버튼 눌리는 애니메이션

안드로이드에서 기본 버튼을 만들면 버튼을 누를 때 자동으로 애니메이션 효과가 적용되는데,이를 Ripple 효과라고 한다. 꼭 Button이 아니더라도 TextView, ImageView, Layout 등웬만한 View에는 OnClickListener를 장착하여 클릭 이벤트를 만들어 줄 수 있다. 하지만 Button이 아닌 일반적인 View에는 Ripple 효과가 자동으로 적용되지 않는다.Ripple 효과를 직접 설정하여 일반적인 View에 적용해본다.       ✅ 기본 UI Ripple 효과를 적용해볼 View는 다음과 같은 UI다.  흔히 볼 수 있는 설정 화면을 간단하게 구현해 보았다.   ' > ' 아이콘에만 클릭 이벤트를 장착하면 많은 사용자가 불편함을 느끼기에,시중 대부분의 앱들은 다음과 같은..

[Android] 텍스트 ... 표시 / 텍스트 말줄임 표시

화면에 너무 긴 텍스트가 담길 때 종종 말줄임 표시가 필요하곤 하다.오늘은 텍스트에 말줄임 표시(...)를 적용해본다.       ✅ 글자 수를 지정할 때 정해진 글자 수를 넘어가면 말줄임 표시를 적용하는 방법이다.  위와 같은 10개의 텍스트가 존재한다고 가정했을 때,5까지만 표시하고 그 뒤의 텍스트는 ... 표시해보자. bind.textview.apply { text = text.substring(0, 5) + "..."} substring() 뿐만 아니라 take(), split(), charAt() 등 방법은 다양하다.문자열을 자르는 방법은 각자 취향껏 적용하면 된다.      결과적으로는 말줄임(...) 적용에 성공했다. 하지만 위 방법으로는 글자 수가 고정적이지 않고 변동되는 상황 등,조건문..

[Android] 앱에서 기기 볼륨 조절하기 / AudioManager (+TTS)

기기의 볼륨이 꺼져있거나, 작게 설정되어 있더라도최대 크기의 볼륨으로 음성을 출력해야하는 기능이 필요했다. 앱에서 기기의 볼륨을 조절하는 방법을 알아보자.       ✅ 안드로이드 소리의 종류 안드로이드에서는 소리를 다음 4가지 종류로 분리하여 설정할 수 있다.  순서대로 [시스템] · [알림] · [벨소리] · [미디어] - 시스템앱과 관계 없이 기기 내에서 발생하는 기본적인 소리에 해당한다. - 알림문자, 카톡 등 Push 알림(Notification)이 울리는 소리에 해당한다. - 벨소리전화가 수신될 때 울리는 소리다. - 미디어음성 파일, 동영상 등 미디어에 적용되는 소리이며,보통 앱에서 발생하는 소리도 미디어에 포함된다.       ✅ 볼륨 조절 앱에서 발생하는 소리에 해당하는 미디어 볼륨을 조..

[Android] 앱에서 TTS 사용해보기

TTS는 Text To Speech의 약자로, 직역하면 텍스트 음성 변환 또는 음성합성이다.흔히 생각할 수 있는 글자를 음성으로 읽어주는 기능을 의미한다. Android는 내장 클래스로서 TTS 기능을 제공한다.(android.speech.tts.TextToSpeech)  이제 TTS 예제를 만들어 보자.      ✅ TTS 초기화class MainActivity: AppCompatActivity() { // TTS 객체 nullable 초기화 private var tts: TextToSpeech? = null override fun onCreate() { ... initTTS() } private fun initTTS() { tts = TextToSpeech(Contex..

[Android] OSS Licenses / 라이선스란? / 앱에 라이선스 표시하기 / OSSLicensesPlugin

라이선스에 대해 알아보고앱에 사용된 OSS Licenses를 표시해본다. ※ OSS : 오픈 소스 소프트웨어 라이선스(Open Source Software Licenses)     ✅ 라이선스 라이선스는 소프트웨어나 콘텐츠의 사용·배포·수정 등에 대한 법적 권한과 조건을 명시한 문서다. 즉, 개인이나 기업이 만든 소프트웨어를 다른 사람들이 사용할 수 있도록 허용하는 대신,특정 조건을 지키도록 요구하는 약속이라고 볼 수 있다. '라이센스'라고 부르는 사람도 많은데, 한국어로는 '라이선스'가 표준이다. 라이선스의 주 목적은 저작자의 권리를 보호하면서,타인들에게는 재사용·배포 허가로 인한 생산성 향상이다.      ✅ 소프트웨어 라이선스 종류 라이선스도 여러 종류가 있는데, 그 중에서도 대표적인 몇 가지만 알..

[Android] release 모드 빌드하기 / Build Variants / Signing Configs

당신의 앱에 별다른 설정을 하지 않았다면 항상 debug 모드로 빌드되고 있을 것이다.앱을 release 모드로 빌드하는 방법을 알아본다.       ✅ APK 빌드하기 APK를 빌드하는 최종 목적은 Signing Configs를 작성하기 위함이다.그리고 Signing Configs를 작성하기 위해서는 Store Key 파일이 필요하다. 그렇기 때문에 APK를 만들고 시작해본다.   🎈 [Build] → [Generate Signed Bundle / APK...] 경로로 진입한다.     🎈 APK 를 선택해준다.     🎈 [Create new...] 를 눌러서 새로운 Key Store를 생성해준다.     🎈 빨간 체크 표시의 항목을 모두 작성해준다.  Key Store가 저장될 경로를 설정하..

[Android] 앱 버전 · Target SDK · 빌드 날짜 표시하기 / BuildConfig import 오류 해결

앱에 대한 간략한 정보를 화면에 표시해야하는 일이 생겼다.이번 포스팅에서는 다음 3가지 정보를 표시해본다.   - 앱 버전현재 앱이 몇 버전인지 명시한다.이는 앱 정보 중에서 가장 기본적인 내용이다.  - Target SDKAPI LEVEL의 경우, 사실 개발자 관점에서만 다루는 정보에 가깝다. 하지만 구글이 매년 Target SDK 업데이트 관련 압박을 넣기도 하고,우리 앱의 Target SDK는 몇이냐는 질문을 많이 받던 와중에그냥 앱에 명시했으면 좋겠다는 요청이 있어서 표시했다.  - 앱 빌드 날짜우리 앱의 최근 업데이트 날짜가 언제쯤인지 궁금하다는 요청이 많았다.업데이트가 잦다면, 사용자에게 '짧은 주기로 관리되는 앱'으로 인식되는 등긍정적인 부분도 있다고 본다.      ✅ 앱 버전 Gradle..

728x90