728x90
반응형

📱 안드로이드 Android ~ Kotlin 28

[Kotlin/코틀린] 2 - 조건문과 반복문

🚨 조건문 if 문 (if~ else~) val a: Int = 3 val b: Int = 4 var data1: Int if(a > b) { data1 = a } else { data1 = b } println("data1 : $data1") // => data1 : 4 val data2 = if(a > b) { a } else { b } println("data2 : $data2") // => data2 : 4 val data3 = if(a > b) a else b println("data3 : $data3") // => data3 : 4 when 문 - 코틀린(Kotlin)는 switch 문이 없는 대신 when 문이 존재한다 var data1: Any = 5 when(data1) { is Stri..

[Kotlin/코틀린] 1 - 변수/상수, 데이터타입, 함수, 컬렉션 타입

🚨 변수 / 상수 변수(var) - 초기값이 할당된 후에도 값을 바꿀 수 있는 변수 var [변수명]: [데이터 타입] = [값] 의 형태 상수(val) - 초깃값이 할당되면 바꿀 수 없는 변수 val [변수명]: [데이터 타입] = [값] 의 형태 값에 따라 데이터 타입을 유추할 수 있을 때는 데이터 타입을 생략할 수 있다. /* 변수 - 초기값이 할당된 후에도 값을 바꿀 수 있는 변수 */ var a: Int = 1 a = 10 var b = 3.14 b = 2.10 var c: String = "c문자" c = "c문자 입니다." /* 상수 - 초깃값이 할당되면 바꿀 수 없는 변수 */ val d: Int = 1 val e: Double = 3.14 val f: String = "f문자" 초깃값 할..

[안드로이드/Android] Kotlin/Java 권한 요청 uses-permission

안녕하세요! 안드로이드에서 위치나 카메라, 저장공간 등 앱 외부에 있는 리소스에 접근하기 위해서는 Android 6.0 마시멜로(API 23) 이상의 휴대폰인 경우 사용자에게 접근 허용을 위한 권한 요청을 해야합니다. 권한(permission) 요청을 하는 코드를 작성해 보았어요 🤗 AndroidManifest.xml 와 activity_permission.xml 는 동일하고 Activity 코드를 Kotlin, Java 두가지 버전을 준비했답니다! 작성한 파일 목록 입니다. 1. AndroidManifest.xml 2. activity_permission.xml 3. PermissionActivity.kt / PermissionJavaActivity.java 1. AndroidManifest.xml 카..

[Android/Kotlin] Koin (kotlin 으로 작성된 경량화된 Dependency Injection 프레임워크)

DI (Dependency Injection) 패턴 - 컴포넌트간의 의존 관계를 소스코드 내부가 아닌 외부 설정 파일등을 통해 정의되게하는 디자인 패턴중 하나 - 객체를 직접 생성하지 않고 외부에서 주입한 객체를 사용하는 방식 - 인스턴스 간 디커플링을 만들어줌 => 유닛테스트 용이성 증대 ( 객체A 내부에서 객체B 를 사용하는 경우 객체B에 대해 객체A가 의존하고 있다고 볼 수 있으며, 객체A에서 객체B를 초기화하지 않고 사용할 수 있도록 외부에서 객체B를 초기화하여 객체A에 주입해주는 것 ) Ex) Hilt, Dagger Service Locator 패턴 - 중앙 등록자 ‘Service Locator’를 통해 요청이 들어왔을 때 특정 인스턴스 반환 - apk 크기, 빌드 속도, 메서드 수 등 복잡한 ..

[Android/Kotlin] FCM 푸시 Push 알림 구현하기

안드로이드에서 FCM 푸시 Push 알림을 받는 방법 입니다. 1. Firebase Cloud Messaging Firebase 의 프로젝트 생성 및 앱 추가를 합니다. https://eunoia3jy.tistory.com/129 [Android/Firebase] Firebase 프로젝트 생성 및 앱 추가 안녕하세용! 안드로이드 앱에서 Firebase 를 활용하기 위해 프로젝트를 생성하고 앱을 추가 하는 방법입니다. 먼저 Firebase 콘솔창으로 이동하여 로그인 해주세요~ https://console.firebase.google.com/?hl=ko.. eunoia3jy.tistory.com Firebase 클라우드 메시징 문서를 참고하였습니다. https://firebase.google.com/docs..

[Android/Kotlin] 구글 Google 계정 로그인 연동을 위한 firebase console 설정방법 및 소스코드

안녕하세용! 안드로이드 앱에서 Firebase 를 활용하여 Google 로그인 하는 방법 및 소스코드 입니다. 1. Firebase Auth Google 설정 방법 https://eunoia3jy.tistory.com/129 [Android/Firebase] Firebase 프로젝트 생성 및 앱 추가 안녕하세용! 안드로이드 앱에서 Firebase 를 활용하기 위해 프로젝트를 생성하고 앱을 추가 하는 방법입니다. 먼저 Firebase 콘솔창으로 이동하여 로그인 해주세요~ https://console.firebase.google.com/?hl=ko.. eunoia3jy.tistory.com 1-1. Firebase 프로젝트 생성 및 앱 추가가 끝났다면 Firebase Console 에서 빌드 > Authen..

[Android/Kotlin] 코루틴 coroutine

코루틴 Coroutine Android의 비동기 프로그래밍에 권장되는 솔루션으로, 비동기적으로 실행되는 코드를 간소화하기 위해 Android 에서 사용할 수 있는 동시 실행 설계 패턴. 안드로이드의 Background Thread 에서 코드를 처리할 때 사용하는 방법이다. Co(협력, 같이, 함께, 동시에) 라는 뜻과 Routine(특정한 일을 실행하기 위한 일련의 명령) 이라는 두 단어의 합성어로, 동시성 프로그래밍의 개념을 코틀린에 도입한 것 다양한 언어에서 이미 지원하고 있는 개념이다. 통신 시 비동기 처리하는 방법으로 오랜 기간 사용되었던 AsyncTask 가 Deprecated 되면서, 메모리를 효율적으로 사용하면서 AsyncTask 를 대체하는 비동기 처리 방법으로 사용되고 있다. 🚨 Coro..

[안드로이드/Android] 클린아키텍처 Clean Architecture

클린 아키텍처 Clean Architecture 개발자 로버트 C. 마틴(Robert C. Martin)가 2012년 엔터프라이즈 아키텍처에서 논의된 내용을 토대로 집약시킨 개념. 소프트웨어의 관심사를 계층별로 분리하는 소프트웨어 디자인 철학이다. 주요 원칙은 코드 종속성이 외부로부터 내부로 의존한다는 것이다.(외부->내부 로 향하여 의존한다.) 내부 계층의 코드는 외부 계층의 기능을 알 수 없다. UI와 Database를 분리하여, 외부적인 설정에는 독립적이며 프레임워크에 의존적이지 않은 공통적인 코드를 짤 수 있도록 한다. 클린 아키텍처는 2가지 관점에서 볼 수 있다. 1. 아키텍처 설계 철학 - SOLID 원칙을 기반으로함 : 단일 책임 원칙(Single Responsibility Principle..

[Android/Firebase] Firebase 프로젝트 생성 및 앱 추가

안녕하세용! 안드로이드 앱에서 Firebase 를 활용하기 위해 프로젝트를 생성하고 앱을 추가 하는 방법입니다. 먼저 Firebase 콘솔창으로 이동하여 로그인 해주세요~ https://console.firebase.google.com/?hl=ko 로그인 - Google 계정 하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인 accounts.google.com 1. Firebase 프로젝트 생성 1-1. 프로젝트 추가 클릭 1-2. 프로젝트 이릅 입력 후 계속 버튼 클릭 1-3. 프로젝트 만들기 버튼 클릭 1-4. 프로젝트가 만들어지는 동안 잠시 기다립니다. 1-5. 새 프로젝트가 준비되었다고 표시되면 계속 버튼을 클릭합니다. 그러면 Firebase 에 프로젝트가 추가된 것을 확인할..

[Android/Kotiln] 데이터 바인딩 dataBinding 사용하기

dataBinding 앱의 데이터 소스와 레이아웃의 구성요소를 결합할 수 있게 해주는 Android JetPack 라이브러리 findViewById를 쓰지 않고, 데이터 소스와 레이아웃을 결합해주는 방식 https://developer.android.com/topic/libraries/data-binding/start?hl=ko 시작하기 | Android 개발자 | Android Developers 시작하기 Android 스튜디오의 데이터 결합 코드 지원을 비롯하여 개발 환경에서 데이터 결합 라이브러리를 함께 사용하도록 준비하는 방법을 자세히 알아봅니다. 데이터 결합 라이브러리는 유연 developer.android.com 🚨 장점 1. findViewById()를 사용하지 않아도 된다. 자동으로 xml..

[Android/Kotiln] MVVM 적용한 날씨 앱 만들기 (viewBinding, retrofit 사용)

viewBinding findViewById를 쓰지 않고, XML의 view component 에 접근하는 object를 반환받아 view에 접근하는 방식 https://developer.android.com/topic/libraries/view-binding?hl=ko 뷰 결합 | Android 개발자 | Android Developers 뷰 결합 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성합니다. 바인딩 developer.android.com 🚨 장점 1. findViewById()를 사용하지 않아도 된다. 자동으로 xml에서 만든 View들을 만들어준다. 2. Null 안정성 ..

[Android/Kotiln] MVVM 적용한 ToDo 앱 만들기 (LiveData)

안드로이드 아키텍쳐 중 LiveData 를 통해 MVVM 을 적용한 MyToDo 앱 을 만들어보았습니다. https://developer.android.com/topic/libraries/architecture/livedata?hl=ko LiveData 개요 | Android 개발자 | Android Developers LiveData를 사용하여 수명 주기를 인식하는 방식으로 데이터를 처리합니다. developer.android.com https://eunoia3jy.tistory.com/119 안드로이드 아키텍쳐 컴포넌트 AAC (Android Architecture Components) AAC 안드로이드 아키텍쳐 컴포넌트 (Android Architecture Components) 안드로이드 아키텍쳐..

안드로이드 아키텍쳐 컴포넌트 AAC (Android Architecture Components)

AAC 안드로이드 아키텍쳐 컴포넌트 (Android Architecture Components) 안드로이드 아키텍쳐 컴포넌트는 앱 구조를 더 튼튼하고, 테스트에 용이하고, 유지 보수성이 뛰어나게 만들어 주는 라이브러리 모음. 아키텍쳐 컴포턴트에서는 조금 더 모듈화된 코딩을 돕기 위해 Databinding, LiveData, ViewModel 등의 유용한 라이브러리를 제공하며, 이러한 라이브러리의 모음은 MVVM 패턴의 구조의 설계에 최적화되어 있다. 안드로이드 아키텍쳐 (AAC) 를 사용하면 좋은점 1. 일관적인 코드작성으로 유지보수와 협업의 편리함 2. 생산성 향상 3. 테스트의 용이성 4. 어플리케이션 개발 방향의 유리함 안드로이드 아키텍쳐 (AAC) 종류 1. MVC : Model + View + ..

728x90
반응형