분류 전체보기 (215) 썸네일형 리스트형 #01. MVVM MVVM Model View View Model 안드로이드 어플리케이션을 개발할 때 유지보수 가능하고 이해 가능하며 테스트가 가능한 코드를 작성하기 위해 디자인 패턴을 사용합니다. 적절한 지침, 디자인 패턴, 모범 사례를 따라 코드를 작성하면 누구나 이해하기 쉽습니다. 코드를 이해할 수 있다면 모든 개발자가 작업을 시작하기 쉽고 프로젝트를 장기적으로 유지할 수 있습니다. 구글은 몇가지 일반적인 아키텍처 원칙을 제안합니다. 1. Separation of Concerns - 모든 코드를 활동이나 조각으로 작성하는 것이 일반적입니다. 액티비티나 프래그먼트에는 UI를 담당하는 로직이 포함되어야합니다. UI 클래스를 네트워크 호출과 독립되게 만들어야합니다. 이렇게 하면 수명주기 관련 충돌을 피할 수 있습니다. 2.. [코딩 디자인패턴] MVC, MVP, MVVM 비교 (스크랩) 각각 코드의 역할을 나눠 관리하면 유지보수와 개발효율이 좋아진다. 1. MVC MVC 패턴은 Model + View + Controller를 합친 용어입니다. MVC 패턴의 구조, 동작, 특징, 장점, 단점을 이야기하겠습니다. 1) 구조 MVC는 Model + View + Controller를 말합니다. Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분입니다. View : 사용자에서 보여지는 UI 부분입니다. Controller : 사용자의 입력(Action)을 받고 처리하는 부분입니다. 2) 동작 MVC 패턴의 동작 순서는 아래와 같습니다. 사용자의 Action들은 Controller에 들어오게 됩니다. Controller는 사용자의 Action를 확인하고, Model을 업데이.. Activity에서 다른 Activity 변수 접근하기 1. Context 변수 생성 가져오고 싶은 Activity에 Context 변수를 만들어 준다. public class MainActivity extends AppCompatActivity { public static Context context_main; // context 변수 선언 public int var; // 다른 Activity에서 접근할 변수 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); context_main = this; // onCreate에서 this 할당 } } 2. 다른 Activity에서 변수.. widget widget basic code 1. manifest에 receiver 코드를 작성합니다. manifest.xml 2. res -> xml에 example_appwidget_info.xml 파일을 만들고 코드를 작성합니다. example_appwidget_info.xml 여기에서 previewImage에 위젯 미리 보기 이미지를 정합니다. 3. ExampleAppWidgetProvider 클래스를 만들고 코드를 작성합니다. ExampleAppWidgetProvider.kt class ExampleAppWidgetProvider : AppWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager,.. 문자열 자르기 (kotlin) 출처 : detail.html?no=560 String은 char의 배열이므로 인덱스(index)값을 이용하여 특정 글자 수 이상의 글자는 자르거나 특정 단어만 자르는 등 여러가지 처리를 할 수 있습니다. 이 포스트에서는 substring 과 split 함수를 이용하여 문자열을 자르는 방법에 대해 소개합니다. val testString : String = “abcdefg” //배열의 인덱스는 앞에서부터 0,1,2,3 순서대로 값을 가지기 때문에 //testString의 0번째 값은 a, 1번째 값은 b가 됩니다. //1.substring은 인덱스 값을 기준으로 문자열을 자르는 함수로서, 2가지 방법으로 사용할 수 있습니다. String.substring(startIndex : Int) //2.문자열의 s.. Room 쿼리문 샘플 (kotlin) Entity @Entity(tableName = "memo_db") data class MemoEntity( @PrimaryKey(autoGenerate = true) var id: Long?, var memo: String = "", var cid: Int = 0 ) DAO @Dao interface MemoDAO { @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(memo: MemoEntity) @Query("SELECT * FROM memo_db") fun getALL(): List @Delete fun delete(memo:MemoEntity) @Update fun update(memo:MemoEntity) //memo_db 테이블 중 c.. Android Room 일괄 삽입 또는 업데이트 (Kotlin) interface ItemDao { @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(entity: Item) : Long @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertAll(vararg entity: Item) @Update fun update(entity: Item) @Update fun updateAll(vararg entity: Item) } 여러 개체 삽입 // insert multiple items itemDao.insertAll(item1, item2, item3) 목록을 varargs로 변환 // insert list of items val items = listOf(ite.. 이전 1 ··· 24 25 26 27 다음