본문 바로가기

분류 전체보기

(192)
[swift] Type Casting [swift 기초문법] - 타입캐스팅(Type casting) 스위프트는 굉장히 type strict한 언어 입니다. 다른 타입끼리의 값 교환을 엄격히 제한합니다. 또한 암시적 데이터 타입 변환(Implicit Type Conversion)은 지원하지 않습니다. var doubleValue: Double = 4.2 var castingValue: Int = Int(doubleValue) 스위프트에서는 위와같이 타입을 변경합니다. 이는 타입캐스팅이 아니라 이니셜라이저를 통해 새로운 Int구조체 인스턴스를 생성한 것입니다. 위 내용은 스위프트에서 타입캐스팅이라기 보다는 이니셜라이저의 사용입니다. 스위프트에서 타입캐스팅은 is(타입 확인 연산자)와 as 연산자로 구현됩니다. 타입 확인 연산자 is 해당 클래스..
[swift] Inheritance [swift 기초문법] - 상속(Inheritance) 용어 정리 상속 받은 클래스 : 자식 클래스 (Subclass, Child class) 물려준 클래스 : 부모 클래스 (Superclass, Parents class) 다른 클래스로부터 상속받지 않은 클래스 : 기반클래스(Base class) 상속(Inheritance) 기반클래스를 다른 클래스에서 물려받는 것을 말합니다. 자식 클래스는 부모 클래스의 메서드, 프로퍼티, 서브스크립트를 사용, 재정의 할 수 있으며 프로퍼티 감시자를 구현할 수 있습니다. class 자식 클래스 이름: 부모 클래스 이름 { //클래스 내용 구현 } 재정의(Override) 부모클래스의 메서드, 프로퍼티, 서브스크립트 등을 그대로 사용하지 않고 변경하여 사용하는 것을 오버..
[swift] Subscript [swift 기초문법] - 서브스크립트(Subscript) 서브스크립트(Subscript) 클래스, 구조체, 컬렉션, 리스트, 시퀀스 등 타입 요소에 접근하는 단축 문법입니다. 별도의 getter, setter를 구현하지 않아도 set하거나 get할수 있습니다. 각 타입의 구현부 또는 익스텐션 구현부에 위치해야 합니다. 읽고 쓰기 가능하게 하거나 읽기만 가능하게도 구현이 가능합니다. 연산 프로퍼티의 형태와 유사합니다. 다양한 매개변수 타입을 사용하여 중복정의(Overload)가 가능합니다. 자신이 가지는 시퀀스나 컬렉션 리스트 등의 요소를 반환하고 설정할 때 주로 사용합니다. 인스턴스 이름 뒤에 대괄호만으로 편리하게 사용 가능합니다. subscript(index: Int) -> Int { get { //..
[swift] Map, Filter, Reduce, Monad, FlatMap [swift] 기초문법 - 맵(Map), 필터(Filter), 리듀스(Reduce), 모나드(Monad), 플랫맵(FlatMap) 스위프트의 대표적인 고차함수로 맵(Map), 필터(Filter), 리듀스(Reduce)가 있다. (고차함수 : 매개변수로 함수를 갖는 함수를 말함) 맵(Map) 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 새로운 컨테이너를 생성하여 반환 (기존 컨테이너의 값은 변경되지 않음) 시퀀스(Sequence), 콜렉션(Collection) 프로토콜을 따르는 타입과 옵셔널은 모두 맵을 사용할 수 있다. (배열, 딕셔너리, 세트, 옵셔널) for-in 구문 사용하는것과 비슷하나 코드가 더 간결하고 컴파일러 차원에서 성능 차이가 있다. array example ..
UIWebView WKWebView 비교 및 쿠키 저장 방법 UIWebView (deprecated) 쿠키 저장소 : HTTPCookieStorage 쿠키 저장 여부 : 휘발성 (앱이 메모리에서 해제되면 쿠키도 삭제됨) 웹과 상호작용 : 불편함 ( 웹에서 앱으로 메시지를 주고 싶을 때는 특정 url을 호출하는 방법으로 해야 함) WKWebView 쿠키 저장소 : WKHTTPCookieStore 쿠키 저장 여부 : 비휘발성 (앱이 메모리에서 해제돼도 유지됨) 웹과 상호작용 : WKUserContentController 를 사용하여 웹에서 앱으로 메시지 전달 가능 (Script message handler 기능)
Firebase Dashboard 지난 30분간 사용자 숫자 iOS만 적게 나오는 문제 Firebase Dashboard 지난 30분간 사용자 숫자 iOS만 적게 나오는 문제 문제점 Firebase의 Dashboard에 "Users in last 30 minutesers in last 30 minutes"라는 항목에서 iOS의 숫자가 Android에 비해 매우 적게 보여지고 있음 Firebase에 해당 내용 문의 Firebase 이메일 답변 내용 This is Andy from Firebase Support, and I'd be happy to help you out here. It looks like you are seeing a lower number of users in the “Users in last 30 minutes” compared to the “Active Users” re..
iOS 테스트 파일 실행 방법 준비물 Mac PC (없으면 테스트 맥북 사용) Apple Configurator 2 (https://itunes.apple.com/kr/app/apple-configurator-2/id1037126344?mt=12) ipa 파일 애플 개발자 프로그램에 UDID가 등록된 아이폰 (유의사항 참고) 유의사항 애플 개발자 프로그램에 UDID가 등록되어있지 않은 기기에는 ipa 설치가 불가하므로 등록 안된 기기는 개발자에게 요청합니다. UDID가 한번 등록됬던 기기는 다시 요청을 하지 않습니다. UDID 확인 방법 http://scaleup.tistory.com/17 설치방법 Apple Configurator 2 실행 기기를 PC에 연결 아래 이미지에 안내를 참고하여 ipa파일을 Apple Configurato..
딥링크란? Firebase Dynamic Link 생성 방법 딥링크란 딥링크(Deeplink)는 특정 페이지에 도달 할 수 있는 링크를 말하며 모바일 딥링크란 모바일 어플리케이션의 특정 페이지에 도달 할 수 있는 링크를 말합니다. 아래 내용은 파이어베이스(Firebase)를 사용한 딥링크 생성방법입니다. 딥링크 url 직접 만드는법 형식 https://domain/?link=your_deep_link&apn=package name&isi=App Store ID&ibi=bundle identifier 동적 링크 매개변수 딥 링크 매개변수(페이로드 매개변수) link 앱에서 열리는 링크입니다. 앱이 처리할 수 있는 URL(일반적으로 앱의 콘텐츠 또는 페이로드)을 지정할 수 있으며, 이를 통해 사용자에게 쿠폰을 지급하거나 시작 화면을 표시하는 등 앱의 특정 로직을 시작..