보호되어 있는 글입니다.
Android
gps 기반 위치 정보와 와 구글 play 서비스의 위치 라이브러리를 사용하는 코드들을 리뷰한다. - GPS1. Manifest에 권한 추가 2. 권한 체크 및 요청// 권한 체크 함수private fun checkPermission(): Boolean { return ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED}// 권한 요청private fun requestLocationPermission() { if (checkPermission()) { return } ActivityCompa..
1. SharedPreferencesSP 사용법은 아주 간단하다. 아래 코드 참고.class SharedPreferencesFragment : Fragment() { private var _binding: FragmentFirstBinding? = null private val binding get() = _binding!! override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?, ): View { _binding = FragmentFirstBinding.inflate(layoutInflater) load..
[6주차 챌린지반 강의] 복습 TIL 핵심 내용 - Domain Layer(usecase 적용)- RecyclerView에 ListAdapter 사용 예시- StateFlow, SharedFlow 소개 디렉토리 구조 및 역할 정리 - 이해한 대로 작성하여 의역의 여지가 있음- network(data에서 분리함) - RetrofitClient : RetrofitBuilder object 정의 - AuthInterceptor : 네트워크 통신 시, 가로채서 API 호출에 필요한 공통 Header(인증 Key값 등)를 심어준다 - data - model(SearchResponse - data class) : Response의 Json 타입에 맞게 data calss 셋업 - remote(SearchR..
[5주차 챌린지반 강의] 복습 TIL 1. [06:30] Data Layer : Repository, RemoteDatasource로 구성된다 - 앱의 데이터를 읽고 쓰는 레이어 DataSource = Model(Room) - SQLite UI Layer -> ViewModel -> Repository -> DataSource = RemoteDataSource(Retrofit) - Api Server 2. [08:50] V..
[내일배움캠프 - 숙련 개인과제] 오늘은 지난주 부터 학습했던 RecyclerView, Dialog, Notify 등을 이용하여 중고 거래 App을 구현한 과정을 리뷰해보려 한다. 각 Chapter의 요구사항은 아래와 같다. https://github.com/rlaxodud214/NBC-carrot-market/blob/dev/README.md NBC-carrot-market/README.md at dev · rlaxodud214/NBC-carrot-market 당근 App 구현. Contribute to rlaxodud214/NBC-carrot-market development by creating an account on GitHub. github.com data/model(아래 접은 글) 더보기 @..
오늘은 API Call에 쓰이는 Retrofit2를 학습해보고 정리를 하려고 한다. 사용중인 서버가 없기 때문에 jsonplaceholder를 사용해서 Test할 예정이다. 1. 기본적인 사용법 (0) build.gradle에 dependencies 추가 dependencies { ... implementation('com.squareup.retrofit2:retrofit:2.9.0') implementation('com.squareup.retrofit2:converter-gson:2.9.0') } (1) Retrofit 객체를 생성한다. import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory object Retrofi..
[본 캠프(앱 개발 숙련) 강의내용 정리] 1. Fragment - 정의 : Acitivity 위에서 동작하는 모듈화된 사용자 인터페이스 - 특징 : 액티비티와 분리되어 독립적으로 동작할 수 없음 -> Fragment 위의 Host가 Fragment가 될 수는 있지만, 최상단 Host에는 무조건 Activity가 위치해야함 - 사용시기 : 아래와 같이 TabLayout을 구현한다고 할 때, 각 탭의 UI를 Fragment로 구현할 수 있음. - 화면 하나당 Activity가 매칭되게 구현하지 말 것 - (의문점) 그렇다면, 각 탭의 UI를 Activity가 아닌 Fragment로 구현했을 때 어떤 장점이 있길래 써야하는 걸까? -> 장점 1. 높은 성능 : Activity로 화면을 계속 전환하는 것보다 ..
[본 캠프(앱 개발 숙련) 강의내용 + 스탠다드 3, 4주차 강의 + 기타 사이트] 1. ViewHolder - 화면에 표시될 데이터나 아이템들을 저장한다. - (RecyclerView의 개념을 적용하려면) 스크롤 해서 안보이게 된 View를 재활용하기 위해 그 View를 기억하고 있어야 하는데, 이 역할을 ViewHolder가 한다. 기본 강의와 코드를 분석하여 아래와 같이 정리함. -> 스탠다드 (3, 4주차) 강의 들은 후 다시 작성함. 기본적인 메서드들 역할 callTime onCreateViewHolder( parent: ViewGroup, viewType: Int ): Holder binding 셋업, Holder 객체 생성 및 반환 ?? inner class ViewHolder( bindin..
[본 캠프(앱 개발 숙련) 강의내용 정리] 1. 뷰 바인딩의 장점 (=findViewById의 단점) - 뷰 바인딩은 View에 Direct References(직접 참조)를 생성하므로 유효하지 않은 View의 id로 인해 nullpointerException이 발생하지 않는다. 2. 어댑터 뷰 (Adapter View) - 정의 : 여러 개의 항목을 다양한 형식으로 나열하고 선택할 수 있는 기능을 제공하는 View - 특징 : 표시할 항목의 데이터를 직접 관리하지 않고, Adapter로 부터 제공 받는다. - 종류 : ListView, GridView / CustomView, RecyclerView -> 실무에서 많이 쓴다. 3. 어댑터 (Adapter) - 특징 : 데이터를 관리하며, 데이터 원본과 ..