저는 응용 프로그래머입니다. Java로 여러 Android 앱을 작성했으며 React/Redux의 SPA를 작성했습니다. 최근에, 안드로이드 개발을 위해 Kotlin을 사용하기 시작했고 Swift와 함께 iOS world에 입사했습니다.정적 컬렉션에 함수를 저장하면 시스템에 어떤 영향을 미칩니 까?
React에 대한 나의 경험은 다소 멋졌습니다. 나는 반응성의 개념을 좋아했다. 그리고이 개념을 내 모바일 앱에 적용하는 것이 좋을 것이라고 생각했습니다. 나는 Rx libraries의 무리가 있다는 것을 압니다. 그냥 gradle-cocoapods-sync-use가 아닌, 교육적인 목적으로 어떻게 든 내 자신의 길을 찾고 싶었습니다. 나는 그것을 견딜 수 없었다. 그래서 수 시간의 연구 끝에이 아이디어를 생각해 냈습니다.
것은이 전 서버에서 일부 JSON 배열을 받고 있어요 가정 해 봅시다 :
다음은 일입니다. 그때는 파싱 정적 클래스 (또는 object in Kotlin)을 보관하고 I가
AppContext를 호출은 이런 기능의 배열과 데이터 자체 갖는다 : UI에이어서
var onItemsChanged: MutableList<() -> Unit> = mutableListOf()
var items: List<Data>? by Delegates.observable(null) { _: KProperty<*>, _:List<Data>?, _: List<Data>? ->
for(callback in onItemsChanged)
callback()
} /* or didSet{} in Swift */
을 가치 변화 이벤트를 듣고 싶을 때마다 글을 쓸 것입니다.
AppContext.onItemsChanged.add { updateUI() }
/* and of course UI references AppContext.items */
이것은 제가 생각한 거의 모든 것입니다. 그러나 고려해야 할 부분이 있다고 생각합니다.
내 질문은 : 쓰레기 Collecter가 UI 개체 (. 예를 들어, 조각)를 수집
어떤 경우 그 람다 콜백 기능이있는 gc'd 개체에서 onItemsChanged 배열에 추가하는 경우 다음 어떤 일이 일어날 것인가?
그리고이 아이디어에 대해 어떻게 생각하십니까? 네가 나라면 어떻게 할거 니?
"그냥 RxSomething을 사용하여"말을하지 마십시오
감사합니다!
스위프트에 대해 이야기하는 경우 가비지 수집기가 없습니다. – ColGraff
Kickstarter는 Kotlin 및 Swift로 앱을 제작하고 반응 형 라이브러리를 사용합니다 (어떤 라이브러리인지 모름). 두 세트의 코드는 모두 오픈 소스이기 때문에 그들이 한 일을 볼 수 있습니다. –