UIWindow에 대한 간단한 설명 (from stanford ios) UIWindow의 대한 자세한 설명은 친절한 제드님과 알파카오빠님의 글을 읽고 오세요 :) https://zeddios.tistory.com/283 iOS ) UIWindow. 그리고 UIView 안녕하세요 :) Zedd입니다. 오늘은 UIWindow와 UIView에 대해서 공부를 해볼거에요. 위 사진들은 UIWindow, UIView라고 검색하면 바로 볼 수 있는 사진들이에요. UIWindow위에 UIView가 올라가 있는 모습을 볼.. zeddios.tistory.com https://wnstkdyu.github.io/2017/12/29/uiwindow/ UIWindow 공부 UIWindow 객체에 대해 가장 최상단에 위치한 화면..
PencilKit은 iOS 13 부터 사용가능합니다 :-) PKCanvasView는 간단히 말하면 애플펜슬로 글을 쓰거나 그림을 그리거나 할 수 있는 캔버스 입니다 PencilKit을 import하고 canvasView를 코드로 view에 붙여주면 canvasView가 애플펜슬과 손가락의 input을 받아들여서 화면에 글을 쓸 수 있게 됩니다 ( 아이패드가 다크모드라서 검은 화면..! ) 아니면 스토리보드 상에서 캔버스뷰를 현재 뷰에 붙여줄 수 도 있습니다..!! 그 다음 canvasView의 tool이라는 속성을 살펴봅시다 tool은 말그대로 글쓰거나 그림그리는 데 필요한 도구들을 뜻하는 데요, PKTool은 프로토콜이고 PKEraserTool, PKInkingTool, PKLassoTol 이라는 친구..
textfield.rx.text가 당연히 textfield의 text가 변할 때만 이벤트가 방출되는 줄 알았는데, 아니라는 것을 알게 되어서 정리합니다..! UILabel은 빼고 사용자 입력에 따라 텍스트가 변하는 UI 삼인방(?) UITextField, UISearchBar, UITextView 를 살펴봅니다 이렇게 실험을 준비해줍니다 1. textField.rx.text UITextField+Rx.swift 파일에 들어가줍니다 controlPropertyWithDefaultsEvents에 들어가봅니다 😱😱 놀랍게도 valueChanged뿐만 아니라 allEditingEvents에도 트리거 된다는 것을 확인할 수 있습니다...!!! 😱😱 allEditingEvents는 텍스트 필드에 editing 하려..
WWDC 2017 - Engineering For Testability 의 내용이 좋아서 기록해둡니다 이 발표에서는 이렇게 두가지 세션이 있습니다 그 중, 첫번째 세션이라고 할 수 있는 Testable App Code에 관한 기록입니다...!! 이 세션에서는 'Testable한 코드의 특징이 무엇인지와 그런 코드를 만들기 위한 스킬' 에 대해 알려줍니다. 결론부터 말하자면, 1) Testable한 Code는 다음과 같은 특징을 가집니다 2) Testable한 Code를 만들기위해 두가지 스킬을 쓸 수 있습니다 이제 본격적으로 Testable한 코드로 리팩토링해봅시다....!! 그 전에 Unit Test의 구조부터 봅시다 input을 준비합니다. 테스트되어야하는 코드(보통 함수를 말함)에 input을 넣습..
WWDC 2017 - Engineering For Testability 의 두번째 세션인 "Scalable Test Code" 에서 보여주셨던 UI Test 리팩토링 예시가 좋아서 기록해둡니다 첫번째 예제 이런 코드를 이렇게 리팩토링하여 확장가능하게 만들자 두번째 예제 난이도를 beginner로, 사운드를 off로 한 상태에서 어떤 것을 테스트하는 코드 입니다 // test code 뒤에는 아마 Assert문이 들어가겠죠?! 이렇게 난이도 설정과 사운드 설정을 분리해서 확장가능성을 높여줍시다 더 나아가 설정가능한 값이 제한되어있는 난이도와 사운드이니 enum을 활용하면 더 좋을 것입니다~= 짠! 이렇게 훨씬 깔끔하고 읽기 좋은 UI Test 코드가 되었습니다 더 확장가능하게 만들어봅시다!!!!!!! 이렇..
collectionView의 이 세가지 메소드에 들어가보면 모두 다음과 같은 설명이 있습니다..!! 여러 개의 변경을 동시에 animate하고 싶을 때, performBatchUpdates(_:completion:) 를 사용하는 것을 권장하고 있네요 performBatchUpdates는 collectionView의 메소드 입니다. 설명을 보면 많은 insert, delete, reload, move 연산을 그룹으로 묶어서 animate한다 라고 나와있습니다 그럼 performBatchUpdates를 테스트해보기 위해 간단히 사전 세팅을 해줍시다 그리고 insert&delete 메소드를 구현해줍시다 index 1에 100이라는 Cell을 추가해주고 다시 지워주는 시나리오를 만들어봅시다 먼저, perform..
어제 테스트 관련 세미나를 듣고 왔는데, 스피커분들이 경험담을 말씀해주시면서 테스트 코드를 작성하고 나서 무엇이 좋았고 달라졌는지, 그래서 테스트는 왜 필요한지에 대해 나눠주셨습니다. 그 중에서 "불안 요소를 제거하는 것이 잘하는 개발이다. 그래서 테스트가 필요하다…!" 라고 하셨던 것이 가장 기억에 남네요 그럼 구체적으로 테스트의 필요성에 대해 살펴봅시다 1. 리팩토링에 대한 확신 테스트는 이전의 동작이 변경되지 않았음을 담보할 수 있는 장치 입니다. 예를들어 Calculator의 add함수를 테스트하는 코드가 있다면, 이렇게 위 함수에서 아래 함수로 add함수를 리팩토링해도 동작이 잘되는구나!! 라는 확신을 가질 수 있겠죠. 리팩토링 한 후 테스트를 돌려서 기존 동작이 잘 돌아가는 지 쉽게 확인할 수..
테스트 피라미드라는 개념은 애플에서 제시한 아이디어 인 줄 알았는데, 안드로이드 테스트 세미나(이름: 안드로이드 탐구영역)를 듣고 와서 두루 쓰이는 개념이라는 것을 알게 되었습니다 그래서 덧붙여서 다시 정리...!! 테스트 피라미드는 이렇게 생긴 것 입니다 세미나에서 우섭님(뱅.샐)이 테스트 피라미드를 이런 그림으로 정리해주셨는데요, y축부터 봅시다..! 위로 올라갈 수록 실제로 돌아가는, 유저가 쓰는 영역이라 믿을 만한 영역입니다. 하지만 실행시간이 오래 걸리고 유지보수, 디버깅 하기 더욱 어려운 영역입니다. 그 다음 x축을 봐봅시다..! 밑으로 내려 올 수록 더 많은 테스트 코드를 작성하게 됩니다 이런 피라미드 접근법은 어떤 유익이 있을 까요?! 애플에 의하면, 피라미드 모델 접근법은 철저성(thor..
나는 아직 입장정리 안함. 테스트 코드에 대한 다양한 의견들을 모아두고 이러저러 써보고 결정할 것임. [1] 테스트 함수 네이밍 좋은 테스트 이름들 : 무엇을 테스트하고 있는지 명확합니다. 어떤 때 테스트가 통과하거나 실패하는지 명확합니다. 라고 생각하고 엄청 자세하게 테스트 이름을 짓는 파(?)가 있다. test2Add5WillBe7() 이런식으로...?! 또 이런 파 중에 스네이크케이스로 짓는 분들도 계시다 애플 WWDC 2019 Testing in Xcode 세션 데모에서는 그냥 이렇게 간단하게 테스트 함수 이름을 정했다. 간단 네이밍 파(?)가 있다 [2] 네트워크 Request를 테스트하느냐 안하느냐 오로지 더미데이터랑 Mock 객체들만 가지고 테스트하는 파(?)가 있다. 이런식으로 reques..
- Total
- Today
- Yesterday
- Sketch 누끼
- Flutter 로딩
- ribs
- Django Firebase Cloud Messaging
- Dart Factory
- drf custom error
- flutter 앱 출시
- 장고 URL querystring
- 플러터 얼럿
- SerializerMethodField
- flutter deep link
- flutter dynamic link
- Flutter Text Gradient
- PencilKit
- DRF APIException
- github actions
- Flutter Spacer
- cocoapod
- 장고 Custom Management Command
- METAL
- 구글 Geocoding API
- Flutter Clipboard
- Django FCM
- Python Type Hint
- Watch App for iOS App vs Watch App
- Flutter getter setter
- Django Heroku Scheduler
- flutter build mode
- 플러터 싱글톤
- ipad multitasking
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |