개발 19

[Design Pattern] Factory 패턴

Factory 패턴은 객체 생성을 캡슐화하는 디자인 패턴입니다. 이 패턴은 객체 생성 로직을 클라이언트 코드에서 분리하여, 요청에 따라 다양한 객체를 생성할 수 있게 합니다. Factory 패턴은 주로 다음과 같은 상황에서 사용됩니다: 생성할 객체의 타입이 런타임에 결정되는 경우 객체 생성과 관련된 로직을 한 곳에서 관리하고 싶은 경우 객체 생성에 필요한 데이터가 복잡한 경우 코틀린에서 Factory 패턴을 구현하는 예제를 들어보겠습니다. 먼저, 생성할 객체의 공통 인터페이스를 정의합니다. interface Animal { fun speak() } 다음으로, 인터페이스를 구현하는 여러 클래스를 정의합니다. class Dog : Animal { override fun speak() { println("Wo..

[Design Pattern] Builder 패턴

Builder 패턴은 객체 생성 과정을 단계별로 나누어, 사용자가 원하는 방식으로 객체를 생성할 수 있게 하는 디자인 패턴입니다. 주로 복잡한 객체를 생성할 때 유용하며, 가독성과 유연성을 높여줍니다. 코틀린에서는 Builder 패턴을 다음과 같이 구현할 수 있습니다. 먼저, 생성할 객체를 나타내는 클래스를 정의합니다. 예를 들어, Car 클래스를 정의해 보겠습니다. data class Car( val brand: String, val model: String, val year: Int, val color: String, val price: Double ) 이제 Builder 클래스를 정의합니다. Builder 클래스는 Car 객체를 생성하기 위한 중간 단계 역할을 합니다. class CarBuilder..

[Design Pattern] Adapter 패턴

어댑터 패턴은 기존의 클래스 인터페이스를 클라이언트가 원하는 다른 인터페이스로 변환하는 패턴입니다. 예를 들어, 이미 만들어져 있는 한 클래스의 메소드를 다른 클래스에서 사용하고 싶을 때 어댑터 패턴을 사용할 수 있습니다. interface MediaPlayer { fun play(audioType: String, fileName: String) } interface AdvancedMediaPlayer { fun playVlc(fileName: String) fun playMp4(fileName: String) } class VlcPlayer : AdvancedMediaPlayer { override fun playVlc(fileName: String) { println("Playing vlc file...

[Design Pattern] MVVM 아키텍처 패턴

이 글에서는 안드로이드 애플리케이션을 개발할 때 사용되는 현대적인 아키텍처 패턴 중 하나인 MVVM(Model-View-ViewModel) 패턴에 대해 알아보겠습니다. 목차 1. 소개 2. MVC와 MVP 패턴의 한계 3. MVVM 패턴 이해하기 4. MVVM 구성 요소 5. MVVM 장점 1. 소개 안드로이드 애플리케이션 개발을 위한 아키텍처 패턴 중 하나인 MVVM(Model-View-ViewModel) 패턴은 애플리케이션의 유지 보수성, 확장성 및 테스트 용이성을 향상시키는 데 도움이 됩니다. 이 글에서는 MVVM 패턴의 기본 개념과 구성 요소, 장점에 대해 알아보고 간단한 예제를 통해 실제로 어떻게 작동하는지 살펴보겠습니다. 2. MVC와 MVP 패턴의 한계 전통적인 아키텍처 패턴인 MVC(Mod..

[Android] 앱 시작 Activity 변경

1. 개요 2. 방법 1. 개요 Android 개발을 하면, 보통 가장 먼저 시작되는 Activity는 Main액티비티로 기본 설정됩니다. 하지만, 만약 우리가 개발하는 앱이 로그인 기능을 지원하고, 그 로그인 기능을 위한 Activity가 있다면(LoginActivity) MainActivity가 아닌 LoginActivity가 가장 먼저 실행되는 것이 개발에 유리할 것입니다. 그렇다면 어떻게 시작Activity를 변경 할 수 있을까요? 2. 방법 Activity는 AndroidManifest에서 관리됩니다. 시작 Activity도 매니페스트에서 변경할 수 있습니다. 보통 매니페스트는 기본적으로 위와 비슷한 형태로 되어있을 것입니다. 저기서 MainAcitivity와 LoginActivity의 위치만 ..

[Android] ViewPager2, Fragment

(개발중에 쓸일이 있어서 썼다가 간단히 메모하고 싶어서 올리는 글... 코드 대충 손보고 쓰는거라 오류 있을 수 있음) 목차 1. 개요 2. 뷰페이저 3. 사용법 1. 개요 https://developer.android.com/jetpack/androidx/releases/viewpager2?hl=ko#androidx-deps ViewPager2 | Android 개발자 | Android Developers 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 스와이프할 수 있는 형식으로 뷰 또는 프래그먼트를 표시합니다. 최근 업데이트 공개 버전 출시 후보 베타 developer.android.com 뷰페이저는 리스트뷰나 리사이클러뷰와는 달리 리스트로 항목들을 보여주는 것이 아닌..

[Android] Intent (인텐트)

목차 1. 인텐트 개요 2. 인텐트 구조 2.1. 카테고리 2.2. 타입 2.3. 컴포넌트 2.4. 엑스트라 3. 명시적/암시적 인텐트 3.1. 명시적 인텐트 3.2. 암시적 인텐트 항상 공식문서를 참조하는 습관을 들이도록 노력합시다. https://developer.android.com/reference/android/content/Intent?hl=ko Intent | Android Developers developer.android.com https://developer.android.com/guide/components/intents-filters?hl=ko 인텐트 및 인텐트 필터 | Android 개발자 | Android Developers An Intent is a messaging objec..

[Firebase] 2. Firebase Authentication 시작하기 (+구글로그인)

https://bravenessofdonut.tistory.com/2 [Firebase] 1. Firebase 시작 (SDK설치) 파이어베이스 SDK설치를 중점으로 정리해보았습니다. 1. 프로젝트 만들기 2. Android앱에 Firebase 추가 gradlew signingReport을 안드로이드 스튜디오의 터미널에서 이용하면(Ctrl+Enter이용) SHA-1 구할 수 있 bravenessofdonut.tistory.com 위의 내용을 이미 했다는 가정 하에 작성하였습니다. 1. 좌측의 빌드에서 Authentication 선택 2. Sign-in method로 들어가기 3. 이메일/비밀번호, Google (필요한거 선택하세요) 선택하고 사용설정 선택 4. build.gradle 1) 일반 로그인 기능..

[Firebase] 1. Firebase 시작 (SDK설치)

파이어베이스 SDK설치를 중점으로 정리해보았습니다. 1. 프로젝트 만들기 2. Android앱에 Firebase 추가 gradlew signingReport을 안드로이드 스튜디오의 터미널에서 이용하면(Ctrl+Enter이용) SHA-1 구할 수 있음 3. google-services.json 다운로드 후 App 폴더로 옮기기 google-services.json파일을 다운로드 하고 그 파일을 해당 프로젝트 폴더의 app폴더에 옮깁니다. (파일탐색기가 가장 편했음) 4. SDK 혼돈이 왔던 부분이었습니다. 그 이유는 안드로이드 스튜디오의 그래들 파일 코드와 파이어베이스에서 추가하라고 하는 파이어베이스 코드는 동떨어져 보이기 때문입니다. buildscript { repositories { // Make su..