[하루3개 유투브 - 19/10/21 #2] https://www.youtube.com/watch?v=siow15Yn8r8 불러오는 중입니다... 여기 유투브 영상 주인이기도 한 니콜라스님은 내가 10년후에 살고싶은 인생을 살고 계신 분이다. 나도 세계여행과 코딩 하면서 살고싶다... ======= 사실 난 크로스 플랫폼에는 관심이 거의 없다. (사라질거라고 믿는 1인임;;) 차라리 하이브리드가 낫다고 생각하는 사람이라... 아무튼 플러터는 구글이 만들었고, 리액트-네이티브는 페이스북이 만들었다. 플러터가 자본이 더 투자되어있고, 외부 라이브러리 없이 할 수 있는게 더 많은 편이다. 반면 리액트 네이티브는 오픈소스 같이, 서드파티 의존성이 너무 높다. 웹뷰도 지원을 안해서 외부 라이브러리를 써야함;; 하..
[하루3개 유투브 - 19/10/21 #1] https://www.youtube.com/watch?v=ksz_mSninEY 네이티브 앱 vs 크로스 플랫폼 앱 vs 하이브리드 앱 | 5분 장단점 분석! 노마드 코더님 최고! 어려운 내용도 쉽게, 쉬운 내용은 더 쉽게 설명해 주신다 갓-갓 =================== 비전공자들이 자주 물어보는 질문이라서, 영상 보는 김에 정리도 해본다. “네이티브, 크로스플랫폼, 하이브리드 앱의 차이가 뭔가요??“ 간단하게 말하면, 하이브리드 앱 == 웹뷰(크롬같은거)라고 생각하면 된다. html, css, js 만으로 내부를 만들고, 껍데기만 앱처럼 포장해서, 앱 스토어에 올리는거다! 단점은 UI를 모바일용으로 다 만들어야된다는거…웹뷰니까… 요즘 가장 핫한 주제이..
https://stackoverflow.com/questions/46074718/how-to-compare-two-struct-objects How to compare two Struct objects? I have two objects for the same struct class having different values. I need to compare these two objects whether they are equal or not. Please guide me through a proper solution. struct CustomerI... stackoverflow.com 1. struct를 ==으로 비교할 수 있을까? 2. struct 내 값들이 모두 동일하다면, ==으로 비교한 값이 t..
C의 for문에는 i가 있었다. Swift에서는 배열을 도는데, index를 알고 싶다면 어떻게 해야할까?? firstIndex같은거 들고 삽질하고 있었는데ㅠㅠ 정답은 enumerate!!! 배열.enumerate()과 같은 형태로 쓰면 된다. sequence가 리턴 되는데...! 요런 식으로 쓸 수 있다. for (index, element) in list.enumerated() { print("Item \(index): \(element)") } forEach를 섞어 쓰고 싶고, $0을 이용해서 축약도 하고 싶다면? 이렇게 쓰면 된다. 더 짧게 쓰려면 다음과 같이도 가능하다. list.enumerated().forEach { print("index: \($0.0), value: \($0.1)") } ..
https://stackoverflow.com/questions/44487333/make-uicollectionview-scrollable-when-not-full Make uiCollectionView scrollable when not full I want my CollectionView to still be able to scroll a bit up and down when there’s only a few cells (to get that bounce effect). In a previous question it was suggested that using self.collection... stackoverflow.com
for을 쓸까 foreach를 쓸까는 항상 고민되는 이슈이다. 주변에 좀 물어봤는데 for이 속도가 더 빠르고, 중간에 break도 되고, 아무튼(?) 더 좋았다. forEach는 클로저를 넣을 수 있는게 장점인 것 같다. ==== 고차함수들을 잘 써야 좋은 프로그래머라고 생각한다. 특히 함수형을 잘 살려야 좋은 swift 개발자라고 나는 생각한다. 나는 그동안은 filter라는 함수에 관심이 별로 없었다. 쓸일이 없었다. 근데, 이런 함수를 만들려고 하는데...!!!! 이 함수는 리스트 안에, isSelected된 버튼이 있으면, 그 버튼을 리턴해주는 함수이다. 내 의도와는 달리, forEach 안에서 리턴 되어버리는 원하지 않는 결과가 탄생했다... 클로저라서,,,, 이럴때 쓰는게 filter이다. ..
lazy var readerVC: QRCodeReaderViewController = { let builder = QRCodeReaderViewControllerBuilder { // 무언가 처리를 해줌 } let vc = QRCodeReaderViewController(builder: builder) vc.completionBlock = { [weak self] (result: QRCodeReaderResult?) in // 무언가 처리를 해줌 return } return vc }() completionBlock 안의 return은 블록에 대한 리턴 return vc는 QRCodeReadViewController타입의 객체에 대한 리턴 ()는 선언과 동시에 생성까지!
놀랍게도! iOS13에서 업데이트된 modal 형태(뒤에 조금 보임)은 viewWillAppear가 동작하지 않았다. 아마 뷰가 뒤에 깔려있고, 바로 보여서 그런가보다. fullScreen 형태이면 viewWillAppear가 call된다고 하던데, 나는 그냥 그 닫힐 뷰에서 viewWillAppear을 콜해줬다. 그리고 navigationController를 직접 안넣어주면 pop을 못하고 modal처럼 동작한다는것도 배웠다
널과 닐의 차이...항상 궁금했었다! 스위프트를 처음 배울때도 가장 낯설었던 키워드가 nil이었다. 나는 C만 해봐서, null밖에 몰랐었다. 결론적으로 말하면, swift에서는 'null' 대신 'nil'을 사용한다. 이는 objective-c라는 언어의 잔재인데, objective-c에서는 클래스 객체와 다른 포인터 자료형을 참조할 때 각각 다른 빈 포인터값을 사용했지만, swift에서는 아예 유저가 포인터를 통해 객체를 접근하는것을 막음으로서 null은 필요 없어졌다. [오브젝티브 씨 에서] nil : 클래스 객체를 참조하는데 사용 null: 그 밖의 다른 포인터 자료형 [스위프트에서] Null이라는 값이 없음. 오직 nil뿐 이해가 잘 안간다면 그냥 스위프트에서는 null이 nil이구나~ 하고 넘..