하루에 0.01%라도 성장하자
반응형

뚠님 136

Android API로 STT, TTS 구현하기

STT ( Speach To Text ) TTS ( Text To Speach ) 즉 사용자의 음성을 인식해서 텍스트로 표기하거나 텍스트를 인식해서 음성으로 말해주는 기술을 뜻한다. 놀랍게도 안드로이드에서 기본 API로 이 기술을 지원하고 있다. ( 더 놀랍게도 기본 제공이라는 것에 비해 안정적이다. - 개인적인 생각 - ) 거두 절미 하고 작성해 보자 STT 버튼을 누르거나 특정 이벤트가 발생한 시점에 해당 Function을 실행하면 음성 인식을 시작한다. private fun startVoiceRecording() { val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply { putExtra(RecognizerIntent.EXTRA_C..

Develop/Android 2022.07.21

Android Image Multi Select in Gallery 갤러리에서 사진 여러개 선택

안드로이드 앱을 사용하다 보면 intent를 이용해서 사진을 가져오는 경우가 많다. 사진을 가져올때는 하나만 가져올 수도 있고, 여러 사진을 셀렉트 해서 가져올 수 있다. Intent.ACTION_GET_CONTENT 를 사용하면 최근 사용한 이미지를 선택 할 수 있다. 이때 갤러리를 들어가지 않고 바로 데이터를 선택할 수 있고, 갤러리에 들어가서 하나만 선택해서 나올 수 있다. 우선 먼저 코드를 볼까 private fun bindingAddImageButton() { binding.addImageButton.setOnClickListener { when { ContextCompat.checkSelfPermission( this, android.Manifest.permission.READ_EXTERNAL..

Develop/Android 2022.07.20

Room @PrimaryKey autoGenerate

Android room 을 사용하게 되면 기본적으로 PrimaryKey를 지정하게 되어 있다. 매번은 아니지만 간혹 autuIncrement 속성이 필요할 때가 있는데, 이때 Room에서는 아래와 같이 설정한다. @Entity(tableName = "picktime") data class PickTime( @ColumnInfo(name = "id") val id: Int, @ColumnInfo(name = "dayOfWeek") val dayOfWeek: String, @ColumnInfo(name = "startTime") val startTime: String, @ColumnInfo(name = "endTime") val endTime: String, @ColumnInfo(name = "open") ..

Develop/Android 2022.07.13

Kotlin 을 이용한 동적 setBackgroundColor

이번에 별로 어렵지도 않은 걸로 혼자 삽질한 케이스가 발생해서 기록 차원에서 남겨두려고 한다. ( 이러지 말자 ㅠㅠ ) 기본적인 앱 구조는 healder를 공통으로 만들어 놓고 이 header를 각 레이아웃에 include 해서 사용하려고 한다. 이때 include하는 activity 별로 header의 backgroundColor 값을 변경해줘야 하는 상황이었다. ( 어렵지 않은데 ?) 평소처럼 진행하였다. 대충 바인딩 하는 코드 .... binding.headerLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.white)) 그런데 변경이 안되는것이다!! 아무리 해도 변경이 안돼... 바인딩이 잘못되었나 해서 findViewById로도 별..

Develop/Android 2022.07.06

Duplicate Class Found in Android

앱 실행 도중 갑자기 위 에러가 발생하였다. 말 그대로 앱내 선언된 Class Name이 중복된다는 것인데... ( 난 그런적 없는데..? ) 확인 해보니 iresultreceiver 라는 클래스가 겹치는 것을 확인했다. Logcat 을 보면 이러한 경우 어떻게 트러블 슈팅 하면 좋을지 가이드 사이트를 제공한다. https://developer.android.com/studio/build/dependencies#resolution_errors 빌드 종속 항목 추가 | Android 개발자 | Android Developers Android 스튜디오에서 Gradle 빌드 시스템을 이용하여 빌드 종속성을 추가하는 방법에 관해 알아보세요. developer.android.com 우선 확인해 보니 실제로 두개의..

Develop/Android 2022.06.24

onTaskRemoved를 사용하는 방법

안드로이드 앱을 종료하면 onDestroy 가 발생하는것은 라이프 사이클을 공부한 사람이라면 알고있는 사실이다. 실질적으로 onDestroy는 앱종료, 액티비티 종료시 실행해야 하는 코드가 있으면 여기에 넣어주는 경우가 많다. 이번에 업무를 진행할 때도 앱 종료시 SharePreference에 값 저장을 해야하는 상황이 발생해서 onDestroy에 값을 넣어 줄까 하다가! onDestroy는 앱종료 외에 액티비티 종료에서도 발생하니까 이것만으로는 완벽한 코드가 되지 않았다. 그래서 Application에 Lifecycle을 이용한여 코드를 넣어보았는데... 이벤트가 발생되지 않는다.. @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun appDestroyed() { ..

Develop/Android 2022.06.22

Android - 앱 재실행 하기

특정 상황이 발생하면 앱을 종료하는 것 뿐만 아니라 종료 후 실행까지 해야 하는 경우가 있다. 이때 사용하는 코드를 공유하려고 한다. try { startActivity( Intent.makeRestartActivityTask( packageManager.getLaunchIntentForPackage( packageName )?.component ) ) exitProcess(0) } catch (e: Exception) { e.printStackTrace() } finish() 대신 exitProcess를 사용한 이유는, 앱이 실행했을 당시 activity가 여러개가 실행되고 있을 수도 있기 때문인데, 자세한 내용에 대해서는 아래 블로그가 잘 정리되어 있으니 이부분을 한번 읽어보면 좋을 것 같다. htt..

Develop/Android 2022.06.16

Timber와 Android Logger 개발 경험 공유 ( 긴 로그 기록, 로그 파일 저장 )

Android에서 많이 유명한 로그 라이브러리다. https://github.com/JakeWharton/timber GitHub - JakeWharton/timber: A logger with a small, extensible API which provides utility on top of Android's normal Log class. A logger with a small, extensible API which provides utility on top of Android's normal Log class. - GitHub - JakeWharton/timber: A logger with a small, extensible API which provides utility on... github...

Develop/Android 2022.06.13

단위테스트 스터디 시작

이번달 회사에서 지원해주는 교육비로 책을 구입했다. '단위테스트' 우리팀은 아직 단위테스트를 도입하지 않았다. Unit Test없이 서비스를 이어가고 있다는게 신기할 따름이고... 현재는 할 수 없는 분위기지만 언젠가 할 수 있는 분위기가 되면 도입을 할 예정이고, 그러기 위해서 미리 준비해두면 좋을 것 같아서 책을 구매 후 스터디를 해보기로 한다. 테스트에대한 실무 경험이 많이 떨어져있기 때문에 어떻게 보면 지겨운 이론 공부가 될 수도 있고, 아니면 아예 모르는 신세계를 경험 할 수도 있겠지만, 일주일에 1단원씩 찬찬히 정리해보려고 한다. ( 이제 다시 공부좀 해야지 .. 바쁜거 어느정도 정리되어 가니까 .. )

Develop 2022.05.02

Git - Branch 관리

서사 코드 관리에 있어서 제일 중요한건 형상관리 인거 같다.. 우리 회사는 지금 git을 사용하고 있고 Naver Cloud Platform 에서 제공하는 SourceCommit 을 이용하여 remote 관리를 하고 있다. 내가 처음 이 회사에 왔을 때 git을 사용할 수 있는 사람들이 많이 없었고, git이라는 걸 처음 듣는 사람들도 있었다.. ( 처음에 체계를 잘 잡았어야 했는데.. 연차가 너무 낮아서 ㅠ ) 우리의 현재 git branch 구조는 - master : 운영 배포 용 - dev : 개발용 - 그외 : 사이드 개발 + 버그 픽스 운영 되고 있다. 그렇다 보니 그외

Develop/Git 2022.02.07
반응형