본문 바로가기

안드로이드126

[JAVA][Android] Dagger2 익혀보기 Dagger2 자바와 Android를 위해 완전히 정적으로 컴파일 타임 의존성 주입 프레임 워크입니다. 그렇다면 의존성 주입은 뭘까요? 의존성 주입 (Dependency-injection) 의존성 주입은 프로그래밍에서 구성요소간의 의존 관계가 내부가 아닌 외부를 통해 정의되게 하는 디자인 패턴 중의 하나. 의존성 주입의 목적은 객체를 생성하고 사용하는 관심사를 분리하는 것. A내에서 B를 생성하지만, 두번째 그림은 외부에서 B객체가 생성되어 A로 주입된느 모습입니다. 이때 외부에서 객체를 관리하게 되는데 이를 IOC(inversion of Control, 제어의 역전)라 합니다. 그렇다면 의존성 주입은 왜 필요한 걸까요? 코드가 유연해짐, 클래스간의 결합도를 줄임. 리팩토링이 수월함 유닛테스트를 더 쉽게.. 2021. 10. 25.
[JAVA][Android] MVVM 패턴을 이용하여 간단한 간식내기 어플 만들기 안녕하세요. 이번 시간에는 MVVM 패턴을 익히기 위해서 버튼을 클릭해 바뀐 데이터가 화면에 출력되는 예제를 만들어 보도록 하겠습니다. MVVM 패턴의 역사 MVVM( Model View ViewModel )은 Microsoft 설계자 인 Cooper & Peters에 의해 탄생된 디자인 패턴입니다. 그리고 John Gossman에 의해 2005년 발표 되어 클라이언트 기반의 플랫폼에서 조금씩 사용되기 시작했습니다. MVVM 패턴 구조 View : UI 요소를 표시하며 사용자가 발생한 이벤트를 받는 역할을 합니다. ViewModel : UI 요소에 들어갈 데이터를 관리합니다. 그리고 Model과 View 사이의 다리 역할을 합니다. Model : 데이터 전반적인 것을 처리하는 역할을 합니다. MVVM 패.. 2021. 10. 22.
[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] MVP 패턴 익혀보기 이전에 배운 MVC 패턴에 이어서 이번에 배울 패턴은 MVP 패턴입니다. 어딘가 비슷하면서도 다른것 같은데 함께 알아볼까요? MVP 패턴이란? MVP 패턴이란 Model, View, Presenter의 첫 글자를 따서 이름이 지어졌습니다. MVP의 핵심 설계는 MVC와는 다르게 UI(View)와 비즈니스 로직(Model)을 분리하고, 서로 간에 상호작용을 다른 객체(Presenter)에 그 역할을 줌으로써 서로의 영향(의존성)을 최소화하는 것에 있습니다. Model 프로그램 내부적으로 쓰이는 데이터를 저장하고, 처리하는 역할을 함.(비즈니스 로직) View 또는 Presenter 등 다른 어떤 요소에도 의존적이지 않은 독립적인 영역임. View UI를 담당하며 안드로이드에서는 Activity, Fragm.. 2021. 10. 10.
[JAVA][Android] 수업 종료 날짜 계산하기 (주 단위) 안녕하세요! 오늘은 스틱 코드를 이용하여 수업 종료 날짜를 계산해 보겠습니다. 예를 들어, 주 1회, 총 수업 횟수 20번, 수업 시작일이 '2021-07-04' 에 시작한다 가정해 보았을 때 수업이 언제 끝나고 오늘로부터 얼마나 남았는지, 무슨 요일인지 계산을 해보도록 하겠습니다. * 계산된 예시 앱을 실행하여 계산을 하면 다음과 같은 결과를 얻을 수 있습니다. 1. 목표 일 계산 먼저 시작일 포함 총 20회 수업을 들었을 때 마지막 수업 일을 구하는 메소드를 만들어 보도록 할게요. public static String dateFormat = "yyyy-MM-dd"; // 전역 변수 // startDateStr : 시작일(String), week : 회차 public String getDate(Stri.. 2021. 9. 22.
[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] 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] 자바 정규 표현식 (유효성 검사) 사용법 & 예제 안녕하세요 이번 시간에는 정규표현식에 대해 알아보아요 정규표현식이 무었인가? 정규표현식 이란 컴퓨터 과학의 정규언어로부터 유래한 것으로 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어 입니다. 개발을 하다보면 전화번호, 주민등록번호, 이메일등과 같이 정해져있는 형식이 있고 사용자가 그 형식대로 제대로 입력했는지 검증을 해야하는 경우가 종종 있습니다. 이런 입력값을 정해진 형식에 맞는지 검증해야 할 때에는 정규표현식을 사용하면 쉽게 구현할 수 있습니다. 정규표현식 작성 방법 자바에서 정규 표현식을 사용 할 때는 java.util.regex 패키지 안에 있는 Pattern클래스와 Matcher클래스를 주로 사용합니다. 이번시간에는 간단한 정규식을 예제로 보여드리고 나머지 추가 정규식을 어떻.. 2021. 8. 7.