본문 바로가기

Android111

[Kotlin][Android] ViewModel을 이용한 타이머 만들기. 안녕하세요. 이번 시간에는 App Architcture Component에서 지원하고 있는 라이브러리를 이용해서 리사이클러뷰를 구현해 볼려고 합니다. App Architecture Componenet에는 ViewModel, LiveData, lifecycle등이 있는데요. 각 요소들을 왜 써야 하는지 공홈을 통해 확인해 보도록 하겠습니다. 우선 첫번째로 Lifecycle에 대해 이해가 필요합니다. Lifecycle package가 왜 나왔을까요? 안드로이드는 Activity가 프로세스의 진입점으로 각 액티비티가 독립적으로 실행될 수 있는 단위가 됩니다. 그렇다 보니 Activity가 더 이상 사용하지 않을 때 Acitivty에 사용한 자원들을 해제 해줘야 모바일의 제한된 물리적 자원을 효율적으로 사용할 .. 2021. 11. 16.
[Kotlin][Android] 트렌디한 SlidingUpPanel Layout 적용하기 요즘 나온 앱들 중 트랜디한 앱들 대부분이 사용하는 레이아웃 인데요 클럽 하우스에서도 보면 하단에 네비게이션 버튼이 나열되어 있지 않고 레이아웃 하나가 밑에서 올라옵니다. 바텀 쉬트와 다를게 뭐가 있을까 비교해 보면서 진행해 보면 좀더 재미있겠죠? 그럼 SlidingUPPanel Layout을 적용하러 가볼까요? http://github.com/hannesa2/AndroidSlidingUpPanel GitHub - hannesa2/AndroidSlidingUpPanel: It provides a simple way to add a draggable sliding up panel (popularized by Google Mus It provides a simple way to add a draggable .. 2021. 11. 7.
[JAVA][Android] 안드로이드 - 알림 만들기 및 알림 탭하여 액티비티로 이동 알림은 사용 중이 아닌 앱의 이벤트에 관한 짧고 시기적절한 정보를 제공하는 기능입니다. 이번 게시글에서는 버튼을 클릭했을 때 알림이 생성되고, 알림을 탭하면 원하는 액티비티로 이동하는 기능을 구현해 보겠습니다. 먼저 기본 알림을 만드는 법부터 알아보겠습니다. 가장 기본적이고 간단한 형태(축소된 형태라고도 함)의 알림에는 아이콘, 제목 및 소량의 콘텐츠 텍스트가 표시됩니다. 알림 콘텐츠 설정 시작하려면 NotificationCompat.Builder 객체를 사용하여 알림 콘텐츠를 생성해야 합니다. NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(R.drawable.notific.. 2021. 10. 21.
[JAVA][Android] Logger 라이브러리 사용하기 안녕하세요. 이번 시간에는 로거 라이브러리를 사용하여 로그를 좀 더 보기 쉽게 찍어 보도록 하겠습니다. 저는 이 로거 라이브러리를 사용하는 이유가 2가지가 있습니다. 첫 번째 이유는 JSON 형태의 데이터를 좀 더 보기 쉽게 찍을 수 있다는 장점이 있습니다. 두 번째 이유는 Logcat에 찍힌 로그를 클릭하면 스크립트 위치로 바로 갈 수 있습니다. 사용 방법은 다음과 같습니다. 1. 의존성 주입 App Grddle에 다음과 같이 의존성을 주입해 줍시다. // logger implementation 'com.orhanobut:logger:2.2.0' 2. Application Class 만들어 로그 추가하기 Logger을 사용할 때 Application를 상속받는 Class에 선언해주면 보다 편리하게 사용.. 2021. 10. 13.
[JAVA][Android] 안드로이드 스튜디오 폰트 부분 적용하기 오늘은 안드로이드 스튜디오에 폰트를 가져와 부분적으로 적용해 보겠습니다. https://noonnu.cc/ 눈누 - 상업용 무료한글폰트 사이트 상업적으로 이용할 수 있는 무료 한글 폰트를 모아 놓은 사이트 눈누 noonnu.cc 눈누에서 원하는 폰트를 다운 받습니다. (ttf 파일) - 눈누는 상업용과 무료 한글글꼴을 모아놓은 사이트입니다. 저작권 사항을 꼭 살펴보시고, 사용하시기 바랍니다. 1. res폴더에 font 디렉토리를 만들고, 다운받은 폰트를 넣어줍니다. (ttf 파일) 폰트는 반드시 소문자이어야하고, '-'를 사용하면 활성화가 되지 않습니다. 대문자로 되어있다면, 소문자로 변경해서 넣어주세요. 무료폰트, 프리텐다르드 폰트를 넣어주었습니다. (bold, medium,reguler) 2. fon.. 2021. 10. 6.
[JAVA][Android] JetPack UI 컴포넌트 Pallete 사용해보기 안녕하세요. 이번에는 JetPack UI 컴퍼넌트 중 Pallete를 사용해보록 하겠습니다. Jetpack이란? 우선 JetPack의 단어 뜻이 무엇인지 찾아보면 등에 메는 개인용 분수 추친기라고 합니다. 그리고 안드로이드 스튜디오에서 Jetpack 설명란을 보면 아래와 같이 설명하고 있습니다. Jetpack은 개발자가 관심 있는 코드에 집중할 수 있도록 권장사항 준수, 사용구 코드 제거, 모든 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 모음입니다. 즉, 2018년 5월 8일에 구글이 발표한 라이브러리와 도구 모음집입니다. https://developer.android.com/jetpack?hl=ko Android 개발자 | Android Developers Jetpac.. 2021. 8. 27.
[Kotlin][Android] SharedPreference 사용법 SharedPreference란? SharedPreferences는 간단한 값을 저장할 때 주로 사용합니다. 초기 설정 값이나 자동 로그인 여부 등 간단한 값을 저장할 때 DB를 사용하면 복잡하기 때문에 SharedPreferences를 사용하면 적합합니다. SharedPreferences는 어플리케이션에 파일 형태로 데이터를 저장한다. 데이터는 (key, value) 형태로 data/data/패키지명/shared_prefs 폴더 안에 xml 파일로 저장된다. 해당 파일은 어플리케이션이 삭제되기 전까지 보존된다. SharedPreference 사용하기 SharedPreferences는 앱의 어디서든 전역적으로 사용하기 때문에 싱글톤 패턴을 사용해서 어디서든 접근 가능하게 만드는 것이 좋습니다. https.. 2021. 8. 24.
[Kotlin][Android] LiveData 사용 방법 오늘은 Android JetPack 중 하나인 LiveData에 대해 알아보도록 하겠습니다. Live Data 라이브 데이터는 LifeCycle을 인식할 수 있는 관찰가능한 데이터 홀더 클래스입니다. 라이프 사이클을 인식할 수 있다는 것은 수명 주기를 고려한 다는 의미입니다. 생명주기가 Started, Resume 상태이면 LiveData는 관찰자를 활성화 상태로 인식합니다. LifeCycle이 Destroyed가 되면 관찰자를 삭제할 수 있습니다. https://developer.android.com/topic/libraries/architecture/livedata?hl=ko LiveData 개요 | Android 개발자 | Android Developers LiveData를 사용하여 수명 주기를 인.. 2021. 8. 11.
[JAVA][Android] registerForActivityResult() 사용하기 기존에 안드로이드에서 사용하던 startActivityForResult() onActivityResult() 기억 나시나요? 근데 지금 그 메소드가 Deprecated가 되었습니다. 그러면 어떤 방법을 이용해야 할까요? http:// developer.android.com/training/basics/intents/result https://stickode.com/mainlogin.html STICKODE stickode.com 먼저 최신 버전으로 dependencies를 체크해 줍니다. implementation 'androidx.appcompat:appcompat:1.3.0-alpha02' 기본적인 구현 방법은 기존의 startActivityForResult(), onAcitivityResult() .. 2021. 8. 4.