본문 바로가기

분류 전체보기

(100)
(Applications Fundamentals) Android Package Android Package 안드로이드에서 앱을 구성하는 기본 단위는 '안드로이드 패키지(Android Package)'입니다. 안드로이드 패키지는 일종의 파일 형식으로, .apk 확장자를 가지며, 해당 앱의 3가지 파일이 포함됩니다. 1) 코드 2) 리소스 3) 매니페스트 각각의 패키지는 고유한 식별자를 가지고 있으며, 패키지 이름은 "com.example.app"와 같은 형태로 구성됩니다. 도메인 : com.example 프로젝트 이름 : app 기능별 세분화 : com.example.app.user com.example.app.exchange 안드로이드 패키지는 사용자가 다운로드하여 설치하는 앱의 형태로 배포됩니다. 이는 일종의 도메인 네임을 기반으로 한 것으로, 패키지 이름이 충돌하지 않도록 보장..
String, StringBuilder, StringBuffer 차이 Java에서 문자열을 다루를 대표적인 클래스는 아래 3가지가 있다. String StringBuffer StringBuilder 1) String 먼저 String과 다른 클래스(StringBuffer, StringBuilder)의 기본적인 차이는 String은 immutable(불변), StringBuffer는 mutable(변함)에 있습니다. 예를 들어,String을 이용해 문자열 + 문자열을 한다면 새로운 메모리영역을 만들어서 저장후 그 메모리를 가리키게 변경하고 기존에 있었던 부분은 GC에 의해 사라지게 된다. String str1 = "one "; String str2 = "two "; String str1 = str1 + str2; // "one two " str1의 "one "을 가르키던 부..
MVVM pattern MVVM 예제 1. fragment_mvvm_pattern.xml 2. MainViewModel.class import androidx.lifecycle.ViewModel class MainViewModel : ViewModel() { private var num = 0 fun getTotal(): Int{ return num } fun addNum(input : Int){ num += input } } 3. MvvmPatternFragment.fragment import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.databin..
Jetpack Compose 안드로이드 개발자 구인글에 보면 Compose라고 적혀있는 이게 무엇인가??? Jetpack Compose는 안드로이드 앱의 UI를 쉽게 디자인하고 빌드하기 위한 라이브러리이다. 안드로이드는 xml내의 UI들을 Class에서 세팅을 해주고 Activity에서 UI를 어떻게 컨트롤 할 지 정의합니다. 그러나 이렇게 될경우 불필요한 코드량 증가와 가독성 떨어지고 이것은 내가 만들지 않은 코드를 유지보수를 할 때, xml과 class를 번갈아 보면서 선언된 뷰와 변수의 이름 등을 찾는 불편한 작업을 하는 일이 많다. 위와 같은 불편함을 해결할 새로운 UI 제작 방식이 Jetpack Compose 입니다. Compose는 Kotlin의 특징을 이용해 선언형 프로그래밍으로 UI를 만듭니다. 더보기 선언형 프로그래..
MVP 패턴 MVP 패턴 기본 내용 : https://growing-software-engineer.tistory.com/25 예제 코드 : 1. Contract.interface interface Contract { interface View { fun showProgress() fun hideProgress() fun setString(string: String?) } interface Model { interface OnFinishedListener { fun onFinished(string: String?) } fun getNextCourse(onFinishedListener: OnFinishedListener?) fun initCourse(onFinishedListener: OnFinishedListener..
MVC 패턴 MVC 관련 내용: https://growing-software-engineer.tistory.com/25 예제 추가 : 1. MvcModel class import java.util.* class MvcModel : Observable() { val List: MutableList init { List = ArrayList(3) List.add(0) List.add(0) List.add(0) } //Getter Setter 메소드 @Throws(IndexOutOfBoundsException::class) fun getValueAtIndex(the_index: Int): Int { return List[the_index] } @Throws(java.lang.IndexOutOfBoundsException:..
Provider Provider란? 앱이 규모가 커지고 한 페이지 내에 UI와 데이터 모두 관리한다면 코드는 복잡해진다. 그렇게 되면 가독성과, 유지보수 모두 힘들어진다. 이를 해결하기 위해 나온 것이 Provider와 Bloc 패턴이다. Provider는 디자인 패턴으로 데이터 공유나 로직을 분리하는데 좀 더 용이합니다. 구글에서는 Flutter 개발 시 Bloc 패턴을 권장합니다. 그런데 간단한 로직 하나 구현하는데도 패턴을 적용하면 최소 4개의 클래스를 작성해야하는 불편함이 있습니다. Provider는 Bloc보다는 쉽게 패턴을 적용할 수 있습니다. 즉, 데이터 공유와 로직의 분리가 좀 더 쉬워집니다. Provider를 사용해야 하는 이유 관심사의 분리 : 한 클래스에서 여러 기능이 집중되어 있는 경우가 있습니다...
DataBinding and ViewBinding DataBinding 안드로이드에서의 data binding 이란, Android Archictecture Components 의 한 부분으로서 Ui 요소와 데이터를 프로그램적 방식으로 연결하지 않고, 선언적 형식으로 결합할 수 있게 도와주는 라이브러리를 말한다. 즉, xml에 Data를 연결하는 작업을 말합니다. 주로 MVVM패턴, LiveData와 함께 사용합니다. 단, 필수는 아닙니다. Android JetPack 라이브러리 중 하나입니다. (DataBinding) 프로그램적 방식 -> 선언적 방식 프로그램적 방식 TextView textView = findViewById(R.id.sample_text); textView.setText("올라프"); Binding 사용시 layout 파일에서 밑에..