일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- notifychanged
- 기존 앱
- transformation.map
- 개발자 면접
- ios
- ViewBuilder
- scrolling tab
- url 추적
- DevelopmentRegion
- url 관찰
- GeometryReader
- swift #swift keychain #keychain 사용법
- List
- detect url
- Android
- Swift Package Manager
- UIViewControllerTransitioningDelegate
- development language
- DataBinding
- Side Menu
- pod install
- 상단 탭바
- Tuist
- oberve url
- base64 변환
- 스크롤 탭
- swift
- SwiftUI
- convert base64
- UIPresentationController
- Today
- Total
목록분류 전체보기 (172)
버그 잡이
WHAT? 이 책의 핵심은 우리의 사고가 얕고 가벼워 진다는 사실이다. WHY? & 그 과정 인터넷을 통해서 지식을 습득하는 요즘. 우리가 접하는 컨텐츠는 기존 책과 달리 분절되어있고 그 깊이가 얕다. 인터넷 콘텐츠 속에서 헤엄치는 우리의 뇌는 점점 분절되고 깊이를 잃어가는 것이다. 뇌의 신경가소성 뇌의 신경가소성은 우리의 뇌는 변한다는 것이다. 우리의 노력에 의해서 뇌가 원하는 능력을 얻을 수 있는 것이다. 하지만 반대로 다른 외부적인 요인에 의해 우리 뇌가 변화될 수 있다는 사실도 암시한다. 특히, 지식 습득 도구의 변화는 우리의 뇌를 급격하게 변화시킬 수 있다. 지금까지 지식의 습득 도구는 어떻게 변했는가? 구전 -> 책 -> 인터넷 *구전 -> 책 구전에서 책으로 변하면서 우리는 보다 축적된 지식..
다음과 같은 클래스가 필요하다. - data 클래스 - network api 인터페이스 - viewmodel - fragment 1. data 클래스 - 기본적으로 Article 클래스만 있어면 된다. - 나는 넘어오는 json이 json object가 3번 중첩되는 구조라 이를 처리하기 위해서 class를 추가로 만들었다. data class ResponseData( @Json(name = "tistory") val tistory: Tistory ) data class Tistory( @Json(name="item") val item: Item ) data class Item( @field:Json(name = "posts") val posts: List ) @Parcelize data class Ar..
최근 시작한 스터디가 있는데 거기서 사전 과제로 내준 것이 pull request를 하는 것이었다. pull request를 하면서 생각보다 삽질을 많이 하였고 git에 대해서 공부할 필요성을 느꼈다. 그러던 중 우연히 찾은 강의가 코드스쿼드 채널에서 올린 git 입문 강의이다. *[유튜브]코드 스쿼드 Git 입문 강의 https://www.youtube.com/watch?v=sB-wnaI-e2k&list=PLAHa1zfLtLiPrxoBo9a1HVmauvE2Mn3xX&index=11 복습 차원에서 영상 내용을 정리해보고자 한다. 기본 용어 정리 clone - 원격 저장소를 복사한다. - 이를 통해 내 pc로 해당 내용을 가져와 작업할 수 있다. add - 커밋하기 전에 저장을 원하는 파일들을 묵는 과정 ..
Bottom Navigation을 사용할때 수직/수평 화면 전환을 하면 activity가 소멸했다 다시 생성되기 때문에 내가 두번째 menu에 있더라도 onCreate에서 setting 한 첫번째 Fragment로 변경된다. ViewModel+ LiveData 를 활용하여 이를 해결할 수 있다. 1. BottomNavigationViewModel - fragment의 상태를 나타내는 LiveData 변수를 만들어준다. - 초기화는 여기서 진행한다 -> ViewModel은 configuration change때 소멸되지 않기 때문에 상태를 유지할 수 있다. - navigation menu 클릭시 updateFragmentStatus() 메서드로 상태만 최신화 해준다. class BottomNavigatio..
Retrofit을 사용하면 네트워크 상황에 따라 데이터가 늦게 오는 경우(Loading)도 있고 못 오는 경우(Error)도 있다. LiveData를 활용하면 간단한 코드로 이를 해결할 수 있다. [순서] 1. status 변수(LiveData) 만들기 2. 네트워크 응답에 따라 status 값 정하기 3. status 변수 observe 하기. 1. status 변수 만들기 *ViewModel.kt - enum class를 이용해서 상태 상수를 선언해주고 - status라는 변수를 LiveData로 만들어준다. enum class BlogApiStatus{LOADING, ERROR, DONE} private val _status = MutableLiveData() val status: LiveData ..
Kotlin + Retrofit + Moshi 을 활용한 네트워크 통신 연습으로 Tistory API를 활용한 블로그 글 정보 json을 받아보기로 했다. 그런데.... 짜임새가 아주 거지같다. {"tistory":{"status":"200","item":{"url":"https:\/\/jinsangjin.tistory.com","secondaryUrl":"","page":"1","count":"10","totalCount":"42","posts":[{"id":"43","title":"(AAC \uc751\uc6a9) LiveData+Room+RecyclerView #DiffUtil","postUrl":"https:\/\/jinsangjin.tistory.com\/43","visibility":"20",..
기본 리사이클러뷰 만들기는 저번 글 참고 https://jinsangjin.tistory.com/24 [코틀린] Kotlin RecyclerView 각 요소 살펴보기 지금까지는 안드로이드를 공부할때 기능구현에만 중점을 두었다. 이제부터는 각 기능의 요소를 한줄한줄 파헤치며 공부해보고자 한다. (recyclerView 튜토리얼이 아니라 recyclerView 자체에 대한 이해를 높이고자.. jinsangjin.tistory.com LiveData + Room 적용시 Issue 1. LiveData로 감싸진 Room 데이터를 todolist.value처럼 그냥 사용하려면 NPE 발생 viewModel.todoList.let { it.value?.let{ viewAdapter = TodoListAdapter(..

Udacity강의를 들으며 열심히 따라 치고 글로 정리해봤지만 내가 처음부터 직접 만든 것이 아니니 체화가 안 된다. 그래서 간단하게 아래와 같은 todoList를 직접 만들어 보고자 한다. 0. Gradle 추가 //ViewModel implementation "androidx.lifecycle:lifecycle-extensions:$version_lifecycle_extensions" // Room implementation "androidx.room:room-runtime:$version_room" kapt "androidx.room:room-compiler:$version_room" // Coroutines implementation "org.jetbrains.kotlinx:kotlinx-coro..