Android/Kotlin
-
[Android/Kotlin] 네트워크(Network)Android/Kotlin 2022. 7. 9. 19:53
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 주로 JSON(JavaScript Object Notation) 사용 - INTERNET 권한 추가해 줘야 함 - [] -> List 의미 - {} -> 객체 의미 ex) json response 예제 { "squadName": "Super hero squad", "homeTown": "Metro City", "formed": 2016, "secretBase": "Super tower", "active": true, "members": [ { "name": "Molecule Man", "age": 29, "secretIdentity": "Dan Jukes", "powers": [ "Radiation resistance", "Turning tiny"..
-
[Android/Kotlin] AsyncTaskAndroid/Kotlin 2022. 7. 9. 18:02
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 동기(Sync) - 작업을 순서대로 진행 - 비동기(Async) - 작업을 따로 처리 - 장점 : 작업이 처리되는 동안 MainThread를 기다리게 할 필요 없음 - 네트워크, DB 작업 등에서 주로 사용 - AsyncTask 상속 받음 - Async 통해 MainThread와 작업 Thread통신 가능 - onPreExecute() : 쓰레드 시작 전 할 작업 - doInBackground() : 쓰레드가 할 작업 - onPregressUpdate() : 백그라운드 작업 중간중간 MainThread로 옴(작업 수행 정도 알려줌) - onPostExecute() : 작업 마치고 MainThread로 간 후 val start: Button = fi..
-
[Android/Kotlin] RealmAndroid/Kotlin 2022. 7. 8. 21:20
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 오픈소스 DBMS - 모바일에 최적화된(모바일 전용) DB 라이브러리 - 빠른 쿼리, 교차 플랫폼 지원 : 속도 빠름 - NoSQL 지향 - NOSQL이란? - SQL을 사용하지 않는 DB - 데이터 조직 방법 : 리스트, 해시 테이블, 트리, 그래프 등등 - project 수준 gradle dependencies { classpath "io.realm:realm-gradle-plugin:3.5.0" } - app 수준 gradle plugins { id 'kotlin-kapt' } apply plugin: 'realm-android' - plugin에는 입력 순서에 영향을 받는 것이 가끔 있는데 realm이 여기에 해당해 항상 plugins 맨 ..
-
[Android/Kotlin] SharedpreferenceAndroid/Kotlin 2022. 7. 8. 20:24
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 1. RDB(Relational Database) - 2. Key-Value 방식 - 검색 속도 빠름 - 3. RDBMS(Relational Database Management System) - RDB 관리 위한 툴 - ex) MySQL, Oracel, PostgreSQL - 4. SQL - RDBMS 다루기 위한 언어 - 5. NoSQL - Key-Value 방식의 대표적인 예제 - 1. SQLite - 2. Sharedpreference - 목적 : 공유된 사용자의 기호(ex 리스트를 오름차순으로 볼 것인지 내림차순으로 볼 것인지 사용자가 정하면 그 정보를 저장) - Key-Value 방식 - 간단한 것만 저장하는 것이 좋음 val shared..
-
[Android/Kotlin] TabLayout, pagerAndroid/Kotlin 2022. 7. 8. 14:55
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - tab 담당(ex 카카오톡 하단 메뉴 탭) - 종이 넘기듯이 화면 넘기는(swipe) 역할 - TabLayout과 Pager 연결하기 위해 Adapter 필요 - Pager에 표시되는 리스트는 Fragment로 구성 implementationDependenciesMetadata 'com.google.android.material:material:1.1.0' - xml - PagerAdapter class PagerAdapter(fragmentManager: FragmentManager, private val tabCount: Int): FragmentStatePagerAdapter(fragmentManager){ override fun getCou..
-
[Android/Kotlin] 리사이클러뷰(RecyclerView)Android/Kotlin 2022. 7. 7. 14:36
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - ListView의 개선판(ViewHolder 개념 포함) - 유연함 - ListView는 수직으로만 스크롤이 가능하지만 RecyclerView는 LayoutManager를 통해 Linear, Glide(바둑판), StaggeredGrid(형태가 일정하지 않은 바둑판) 형태로 구현 가능 val recyclerView: RecyclerView = findViewById(R.id.recyclerView) val adapter = RecylcerViewAdapter(carList, LayoutInflater.from(this@RecylcerVIew)) recyclerView.adapter = adapter recyclerView.layoutManager ..
-
[Android/Kotlin] 리스트뷰(ListView)Android/Kotlin 2022. 7. 6. 14:33
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 1. 아이템 리스트 준비 - 2. inflater 준비 - 3. inflater로 하나의 아이템에 해당하는 뷰 만들어 줌 - 4. 위에서 만든 뷰를 container 뷰에 붙여줌 - 1. 아이템 리스트 준비 - 2. Adapter 사용 - 1. 만드는 방식의 차이 - 2. 뷰 그리는 방법 다름 - AddView : 리스트 갯수와 상관없이 한번에 다 그림 - 리스트 길이가 길어질수록 시간 오래 걸림 - ListView : 보여지는 부분(+보여지지 않지만 스크롤 한 경우 렉 없이 바로 보여줄 수 있을 만큼의 여유 부분)만 그리고 필요한 경우 더 그림 val adapter = ListViewAdapter(carList, LayoutInflater.fro..
-
[Android/Kotlin] AddViewAndroid/Kotlin 2022. 7. 5. 19:14
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 유사하게 반복되는 뷰를 그리기 위한 도구 - 리스트뷰 그리는 방법 3가지 - 1. addView : 잘 사용x - 2. ListView : 과거에 많이 사용됨 - 3. RecyclerView : 최근에 많이 사용되며 가장 효율이 높음 - addView를 효율적으로 만든 것이 ListView와 RecyclerView val container = findViewById(R.id.addView_layout) val inflater = LayoutInflater.from(this@MainActivity) for(i in 0 until carList.size){ val itemView = inflater.inflate(R.layout.xml아이디, null..