모바일앱199 [ios] shortening unwrapping 쇼트닝 언래핑 swift5.7 Swift 5.7에서 반영될 Unwrapping과정 번역: https://betterprogramming.pub/swift-5-7-unwrapping-optionals-gets-improvement-be81c578e9fa 현재 Xcode 13.3에서 지원안함 Shadowing이란 옵셔널 x를 풀었을 때 동일한 값을 포함하는 x라는 이름의 새 상수를 만들었고 이제 옵셔널 변수 대신 이 상수를 사용합니다. var x: Int? if let x = x { // do something with the new x } 이러한 작업을 shadowing 이라고 합니다. 📌섀도잉은 좋은걸까? 셰도잉에는 몇가지 단점이 있습니다. 현실적인 상황에서는 변수가 훨씬 긴경우가 많다. var lastTimeUserEnteredTh.. 2022. 4. 12. MyWebBrowser프로젝트를 통한 웹뷰 뜯어먹기 일단 앞으로 여러가지 기능을 앞으로 구현하기위해 간단하게 기능을 추가해보려고 한다. 그리고 편의상 모든 포스팅은 편의 말투로 작성합니당 프로젝트생성 프로젝트는 원하는 폴더에 생성합니다. 세팅 sceneDelegate는 사용하지 않을 예정이기 때문에 아래 세가지 작업을 진행한다. - SceneDelegate.swift 파일 삭제 - AppDelegate var window: UIWindow! 입력 AppDelegate에 있는 UISceneSession과 관련된 두 메소드 삭제 info.plist에 등록된 Application Scene Manifest 삭제 -> 삭제 안할경우 AppDelegate에 정상작동을 안해요 iOS13을 지원하게 된 이후부터 프로젝트엔 자동으로 SceneDelegate가 세팅되어있.. 2022. 4. 8. 얼럿 addAction 한번에 추가하기 여러개의 Action을 한번에 추가하기 콜렉션의 사용법중 forEach와 for in 이 있다. for in 은 모든 요소의 갯수만큼 반복하지만 for each는 클로저를 파라미터로 주고 요소 갯수만큼 반복한다. For - each는 반복 실행하려는 코드를 파라미터로 받고, 저장된 요소는 클로저 상수로 전달된다 for - in문은 우리가 직접 구현하는 "반복문" 하지만 forEach는 내가 반복하고 싶은 구문을 forEach라는 함수의 파라미터로 "클로저"로 작성해서 넘겨주는 것 그렇기 때문에, 반복문 안에서만 사용할 수 있는 continue, break는 for - in 에선 사용 가능하지만, forEach에서는 불가능하다. 내가 전달한 print 함수를 찍는 클로저를 nums 요소의 갯수(4)만큼 반.. 2022. 4. 4. 네비게이션 컨트롤러 NavigationController 사용하기 NavigationController 네비게이션 컨트롤러는 ViewController의 타입 중 Container ViewController Type에 속한다. 이 컨테이너 뷰컨트롤러에는 TabBar ViewController또한 포함된다. ViewController Type ViewController는 두가지 타입이 존재한다. Content ViewController Type: Container ViewController Type: NavigationViewController / TabBarViewController 처럼 여러개의 ViewController를 제어하는 ViewController 네비게이션 인터페이스 아래 그림은 iOS에서 정말 많이 사용하는 인터페이스이다. 주로 계층적 구조의 화면전환을.. 2022. 3. 26. [Gesture Recognizer] Long Press [Gesture Recognizer] Long Press 서론 핸드폰에서 지원하는 제스쳐란 그냥 단순하게 화면을 터치할 수도 있고, 길게 누를수도 있고, 두손가락으로 확대할 수 도 있고, 화면도 넘길 수 있다. Declaration @MainActor class UILongPressGestureRecognizer : [UIGestureRecognizer](https://developer.apple.com/documentation/uikit/uigesturerecognizer) Overview [UIGestureRecognizer](https://developer.apple.com/documentation/uikit/uigesturerecognizer)의 하위 클래스이다. 사용자는 작업이 트리거되기전에 뷰.. 2022. 3. 25. TIL220324_에러처리 Do try catch TIL220324_DoTryCatch Category: isGrammer Langu: Swift Tag: API, JSON isGrammer: No isOK: No isPosted: No isRad: No isRead: No isSecret: No 공부날짜: 2022년 3월 24일 생성일시: 2022년 2월 25일 오후 3:59 선행지식: Codable, EscapeClosure, HTTP, OptionalBinding, URLSession 최종편집: 2022년 3월 24일 오후 4:59 추가개념?: No 환경: Xcode 서론 선행 지식 오류처리의 과정 오류 처리에는 다음 세 가지 과정이 필요합니다. 오류의 종류 정의하기 발생한 오류 던지기 던진 오류 처리하기 1. 오류의 종류 정의하기 (선택사항) .. 2022. 3. 24. URLSession에 대하여 알아보기 TIL220323_aboutURLSession 포스팅기반 → https://techblog.woowahan.com/2704/ 서론 서비스를 개발하는 것에 있어 API를 호출하고, 데이터를 받는 것은 매우 중요하다. API를 사용하지 않는 App은 한정된 정보만 가지고 있을 수 밖에 없다. 이번 글에서는 Swift를 사용해서 HTTP통신을 통해 서버와 통신하는 법을 알아보겠다. 선행 지식 📌 HTTP통신 (미정리) 📌 URLSession과 URLSessionTask 📌 탈출클로저 📌 Codable 📌 Optional Binding 기본적으로 서버와 통신하기 위해서는 아래 두가지 방법을 사용할 수가 있습니다. URLSession , URLRequest를 이용한 요청방식 Alamofire라이브러리를 이용한 요.. 2022. 3. 23. MVC의 한계 이 게시글은 공부한 내용을 정리한 것으로 수익창출을 하지않습니다. 역할이 명확히 구분된다면 좋겠지만 실상은 그렇지 못하다. 1. Apple의 MVC는 View와 Controller가 너무 밀접하다. Apple의 MVC에서는 ViewController라는 이름에서도 볼 수 있듯이 View와 Controller가 굉장히 밀접하게 연결되어있다. ViewController는 Controller의 역할뿐만 아니라 View의 life cycle에도 관여하고 있는 것이 현실이다. 이때문에 Model은 분리하여 테스트를 할 수 있어도 View와 Controller는 서로 강하게 연결되어있어 테스트가 어렵다. 2. 뷰, 모델에 맞지 않는 모든 비즈니스 로직들은 Controller에 들어가게 된다. 모델이나 뷰에 넣기 애.. 2022. 3. 22. 비즈니스 로직 비즈니스 로직 정의 위키백과를 살펴보면 아래와 같이 정의되어있다. 비즈니스 로직 (Business logic)이란 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성·표시·저장·변경하는 부분을 일컫는다. 유저가 바라는 결과물을 올바르게 도출하기 위해서 꼭 필요한 과정이기에 프로그래밍에서 빠질 수 없는 요소이며, 응용 프로그램의 핵심이 된다. 비지니스 로직은 유저가 바라는 결과물을 코드로 옮기므로 코드가 자주 변경되므로, 코드 품질도 매우 중요합니다. 비지니스 로직이 정리되지 않고 이곳 저곳 산재 배치되면, 코드 관리가 어려워지고, 개발을 어렵게 하는 요인이 될 수 있다. 그로 인하여 생산성, 품질등이 저하 된다. 비즈니스 로직은 정말 중요하지만, 유지보수 와 확장성을 고려한 코딩을 하기란 쉽지 않습니.. 2022. 3. 21. TIL 로컬라이징, 써드파티 1. 로컬라이징 현지화, 그 나라의 실정에 맞추어서 수정하는 것을 로컬라이징 이라고한다. let us: Go! 세미나 내용 중 앱 내 디자인에 있어, 탭바의 레이블이 사라질 경우 장점은 무엇일까 에 대하여 → 네이버 웹툰 앱 탭바 하단에 레이블을 생성해두면 해당 나라에서만 사용하는 것은 상관없지만 여러 나라를 타겟으로 출시하는 경우, 각 나라에 맞게 번역을 해야하는 상황 발생 페이스북 같은 경우는 레이블을 없앤 상태 탭바 하단의 레이블이 사라질 경우, 로컬라이징이 쉬움 본격적인 로컬라이징은 나중에 정리 https://zeddios.tistory.com/368 2. 써드파티(Third party) 써드파티의 위키백과 설명은 아래와 같다. "기본적으로 '제 3자'를 뜻하는 단어. 이 제 3자가 어떤 분야의 .. 2022. 3. 19. 이전 1 ··· 4 5 6 7 8 9 10 ··· 20 다음