모바일앱199 텍스트인코딩에 관하여 텍스트인코딩에 관하여 우리가 URL 통신을 할때에는 String이 아닌 URL형태를 가지고 통신을 합니다. URL은 String 형식을 URL형식으로 변환하는 과정을 통해 만들 수 있는데 이 과정속에는 아래의 검증과정이 포함되어있는 것을 볼 수 있어요 addingPercentEncoding 이 함수는 지정된 Set에 없는 모든 문자를 백분율로 인코딩된 문자로 바꾸어 새로운 문자열을 반환해주는 함수에요. 이때 withAllowedCharacters의 파라미터로 들어가는 Set 요소들을 제외하고는 모두 아래처럼 퍼센트로 인코딩된 문자로 출력됩니다 예시 1 let urlStr = "www.naver.com/search?location=명동" guard let encodedStr = urlStr.addingPe.. 2022. 5. 18. 오토레이아웃 뽀개기 이번 공부는 정대리님의 오토레이아웃 셀프사이징 유튜브 영상을 토대로 정리했습니다. 출처: https://www.youtube.com/watch?v=RsulV-KCtss 오토레이아웃의 개념 레이아웃을 자동으로 계산 뷰의 위치 : 앵커로 제공 가로 → X축 세로 → Y축 뷰의 크기 : 스크린사이즈를 기반으로 뷰의 크기 제공가능 width height Constraint First item: X를 Second item: Y로 conflicting Constraint 오토레이아웃시 UI에 서로 충돌하는 Constraint를 넣어줄 경우, 좌우 앵커가 우선이 된다. Constraint를 지워도 되고, 빨간 버튼을 눌러서 충돌하는 값을 선택해도 지워진다. 스토리보드에서 복제하기 필요한 것을 클릭하고 option⌥ .. 2022. 5. 14. iOS 키보드 타입을 더이상 찾아해매지말자. 서론 텍스트필드를 생성하고 해당작업을 테스트를 하다보면 사용자가 해야하는 작업을 정말 여러번 해야하는 경우가 있습니다. 중간에 얼럿, 비밀번호를 입력하는 로직을 개발하면서 ....대체 비밀번호를 입력을 했는지 모를정도로 테스트를 했어요. 키보드가 켜졌을 때, 내가 원하는 키보드가 아니면 한영, 숫자선택 을 꼭 눌러야하는데요. 결국은 사용자가 해야하는 작업을 여러 차례 하는 것이지만 조금이라도 간편해질 수는 없을까 생각해봤습니다. 사실 제가 편하자고... 예를 들면 텍스트필드(빈칸)에 입력할 때, 이메일 키보드가 나오든지 숫자패드가 나오든지 등을 결정하는 거 . 별거 아닌데 사용경험에 작업하나라도 줄면 좋을것같아서요. 다들 당연히 하시는 작업이긴한데 저는 자꾸 까먹어서 정리했습니다 키보드타입의 종류 키보드.. 2022. 4. 28. 개발 / 운영서버를 반영하는 변수 만들기 용도 여러개의 서버를 구분하기 위해서 만들었어요 서버가 PRD, DEV 두개라면 Bool 로 설정해도되지만 가끔 QA가 존재 할 수도 있어요 저의 경우는 한 앱에서 DEV 서버와 운영서버를 변경하면서 필요할 때 변경 가능하도록 하기 위해 만들었어요. ➖ 기본세팅 : 현재서버를 가져오는 방법 준비물 : 1. 서버별 도메인정보 2. 내 앱에서 도메인을 호출하는 방법 먼저 현재 서버에 대한 정보를 가져와야해요. 아마 통신을 하는 앱이라면 도메인을 가져오는 부분이 있을거에요. 그래서 현재 도메인을 가져오세요. 요건 사람마다 다르니 알아서 가져오셔야겠네요 ㅎㅎ 제가 하나 예시로 준비해봤습니당 예시 ) 개발서버 : https:// dev.m.geekcode.com 운영서버 : https:// m.geekcode.c.. 2022. 4. 27. 롱프레스 및 햅틱진동 구현하기 롱프레스 및 햅틱진동 구현하기 롱프레스 시간은 3초로 지정 햅틱진동 구현 AudioToolbox 사용 햅틱진동 구현하기 1. AudioToolbox Framework 추가해주기 프로젝트 - General - Framework, Libraries, and Embedded Content AudioToolbox.framework 찾아서 Add 헤더파일추가하기 swift: Import objc : #import 진동메서드 구현 AudioServicesPlaySystemSound(1520); 자주쓰는 진동 패턴 : 1519, 1520, 1521 진동관련 참고블로그 진동메서드관련 소들이 블로그 참고 https://babbab2.tistory.com/36 진동메서드관련 종류별 소개 https://medium.com/.. 2022. 4. 26. Objective C 울렁증 극복하기 오늘 부터 회사에서 맡아야하는 앱은 Objective-C 였다. 하.. 전혀 열받지 않고 어질어질 할 뿐.... 이게 뭐야....? 난 크로스플랫폼으로 빌드한 건줄 알고... swift 파일 어딨지? 하고 있었다. 아.. swift가 아니니까 swift파일이 없는 거구나..... h 랑 m 아이콘이 엄청 많다. 와... 그럼 일단... 왜 해야하는 지 바로 느껴졌다. 오늘은 소들이 님의 블로그를 가지고 공부를 했다. objc를 공부해야하는 이유 장점 회사코드 리팩토링이 가능 기능검색시 굉장히 많은 비중으로 objc가 나온다 ios 언어의 왕이 될 수 있다. 단점 어렵고 지저분 처음볼 때 난해하다 깊게 공부하지는 않아도 이해할 수 있을 정도 수준으로 공부하기 프로젝트 생성 ➖ 생성시 language 선택 .. 2022. 4. 21. ios 소켓통신에 대하여 0. 서론 오늘 몇시간을 소켓통신에 대하여 조사를 했는데 생각보다 많은 자료를 찾지는 못했다. 한번 다시 정리해야할 자료이므로 참고 부탁드립니다. 한번 쭉 읽어보셔도 좋을 거에요 1. 선행지식 📌 📌 2. 개념 소켓이란 정규 유닉스 파일 기술자를 이용하여 다른 프로그램과 정보를 교환하는 방법 용어 설명 유닉스는 운영체제 중 하나입니다. 유닉스에서는 모든 것이 파일로 존재하게 됩니다. 그리고 소켓도 유닉스에서 파일 로 취급받습니다. 모든 유닉스 프로그램은 파일 기술자(File Descriptor) 라는 것을 통해서 입출력(read, write)을 실행합니다. 파일 기술자는 열린 파일을 의미하는 인덱스 번호입니다. 비슷한 맥락으로 **소켓 기술자(Socket Descriptor)**는 소켓을 만들고 얻은 파.. 2022. 4. 20. WKWebView에서 보내는 JS를 캐치하는 방법 웹에서 보내는 javascript를 캐치하려면 미리 등록을 해야한다. 이때 javascript를 보낼때 message에 javascript를 보내고 body값을 함께 NSDictionary (JSON) 형태로 보내주면 그걸 파싱해서 받을 수 있다. // MARK: - WKScriptMessageHandler extension MainViewController: WKScriptMessageHandler { /// message name: javascript 명 /// 이렇게 사용하려면 javascript 명을 미리 등록을 해야한다. func userContentController(_ userContentController: WKUserContentController, didReceive message: W.. 2022. 4. 15. WKWebView 기본메서드 와 Delegate메서드 [WKUIDelegate,WKUIDelegate] WKWebView에서 자주 사용하는 기본메서드 load( _: ) HTML 파일을 읽어들일 때 사용. 쉽게 말해 웹페이지를 로드한다고 생각을 하시면 될 거 같습니다. 비동기 메서드라 동시에 다른 로직을 처리할 수 있어 앱이 자연스럽게 진행이 되어가는 장점이 있습니다. func load(_ request: URLRequest) -> WKNavigation? loadHTMLString(_:baseURL:) 말 그대로 HTMLString을 읽어오는 메서드로 직접 웹페이지를 로드해서 웹페이지로 이동을 하거나 개발자가 만든 URL로 이동하게 함 첫 번째불러올 웹페이지 url을 읽어오는 것입니다. 두 번째relative URL을 해결할 때 사용되는 기본 URL func loadHTMLString(_ string: .. 2022. 4. 14. mutating 과 구조체 참고: https://velog.io/@wook4506/iOS-Swift-Swift-문법을-알아보자-18편-mutating Class && Struct && Enum 미완 enum추가 기존 글에서 클래스는 참조타입이고 구조체와 열거형은 값 타입이라고 정리를 했다. 그래서 값타입인 구조체에서는 인스턴스 메소드 내에서 프로퍼티들을 수정할 수 없게 되어있다. 때문에 이 프로퍼티들을 구조체 안에 있는 메소드에서 수정을 하려면 mutating이라는 키워드를 사용해야한다. mutating 특정 메소드 내에서 구조체 또는 열거형의 프로퍼티를 수정해야하는 경우, 해당 메소드의 동작을 변경하도록 하는 것 예시를 보면 Person이라는 구조체에서 init을 통해 초기화를 해주어서 완벽한 코드처럼 보이지만 에러가 발생한다... 2022. 4. 13. 이전 1 ··· 3 4 5 6 7 8 9 ··· 20 다음