분류 전체보기(43)
-
Swift) 프로그래머스 Lv.2 - 가장 큰 수 풀이
https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr "순서를 재배치하여" 만들 수 있는 가장 큰 수를 찾는다. 예제 1번을 들어서 풀어보자. numbers: [6, 10, 2] 먼저 6과 10이 있다고 하자. 이때 두 수를 재배치하면 610 과 106을 얻을 수 있다. 이때 610이 더 크므로 6이 10보다 앞서서 배치한다. 결과 : [6, 10, ..
2021.07.28 -
iOS) 데이터 검색기능 구현 Firebase Database
이 포스팅은 https://codecrafting.tistory.com/47 에서 이어진다. 내용중 이해가 되지 않는 부분이 있다면 참고하길 바란다. iOS) Firebase 를 이용한 회원가입과 프로필 사진 등록 Firebase Auth, Firebase Database, Firebase Storage 회원가입 기능을 구현하려면 먼저 회원객체가 필요하다. struct DuetUser { let firstName: String let lastName: String let emailAddress: String // To solve issue that not allow some special symbols("[",.. codecrafting.tistory.com 이번에 구현할 기능은 검색기능이다. 특히 앞부..
2021.07.25 -
iOS) Firebase 를 이용한 회원가입과 프로필 사진 등록 Firebase Auth, Firebase Database, Firebase Storage
회원가입 기능을 구현하려면 먼저 회원객체가 필요하다. struct DuetUser { let firstName: String let lastName: String let emailAddress: String // To solve issue that not allow some special symbols("[", "@", "," ...), exchange symbols in email like ".", "@" to "-" var safeEmail: String { var safeEmail = emailAddress.replacingOccurrences(of: ".", with: "-") safeEmail = safeEmail.replacingOccurrences(of: "@", with: "-") retu..
2021.07.24 -
iOS) 포토 라이브러리에서 사진 가져오기
보통 앱에서 회원가입을 할때 프로필 사진용으로 사진업로드 기능을 지원한다. 이 포스팅에서는 포토 라이브러리에서 사진을 가져오거나, 카메라를 사용하여 직접 사진을 올리는 방법에 대해 설명한다. 내가 구현한 회원가입 화면의 스크린샷이다. 사람모양의 아이콘이 있고 이것을 클릭하면 사진관련 동작을 실행할수 있도록 한다. 1. 이미지뷰 생성 및 배치 일단 UIImageView를 만들어 위 사진처럼 배치해주는 것에서 시작한다. private let imageView: UIImageView = { let imageView = UIImageView() imageView.image = UIImage(named: "person") imageView.tintColor = .gray imageView.contentMode =..
2021.07.23 -
iOS) 키보드 한글처리 addingPercentEncoding(withAllowedCharacters:)
TextField 에서 한글을 처리하여 URL인스턴스 인자에 할당하고 이를 사파리로 보내 검색기능을 구현하려고 한다. 이때 TextField 의 value 가 한글이라면 addingPercentEncoding 방식을 사용한다. addingPercentEncoding 은 문서에 따르면 문자열을, 백분률로 인코딩하여 새로운 문자열을 리턴하는 함수다. 인자는 Character Set 타입을 받고 있는데, 이것도 문서를 보면 URL Encoding을 위한 Character Set 에 어떤것들을 써야하는지 나와있다. 옵션이 많고 많지만 한글은 기본적으로 urlQueryAllowed 를 사용하자.
2021.07.14 -
iOS) 프로젝트에서 Image 추가와 사용
이미지에는 png와 jpg를 많이 쓸텐데 기본적으로 권장되는 형식은 png이다. 프로젝트에 이미지 자원을 추가하기 위해서 Assets.xcassets 에 이미지를 드랍하는 형식을 사용한다. 이때 이미지이름의 접미어에 @1x, @2x, @3x 중 하나를 붙이면 해당 섹션에 자동으로 이미지가 넣어진다. 1x 2x 3x는 간단히 말하자면 해상도의 차이인데 레티나 디스플레이 이전에는 저해상도만을 지원하기 때문에 1x 를 주로 사용하지만, 레티나 이후는 2x를, ~~Plus ~~Pro 가 붙은 기종들은 3x의 이미지를 사용한다. 더 자세한 설명은 여기를 참고 이제 추가한 이미지들을 ImageView에 넣을 수 있다. Interface Builder에서 넣는 방법은 storyboard 라이브러리에서 ImageVie..
2021.07.12 -
iOS) Collection View 와 Page Control
구현할 것은 가로로 화면을 넘기면 페이지들이 나타남과 동시에 하단의 페이저 역시 해당 색깔로 따라가는것이다. CollectionView 를 구현하기 위해서는 TableView와 마찬가지로 DataSource가 필요했다. 다른점은 TableView는 일반 UITableViewDelegate가 필요하지만 CollectionView에서는 UICollectionViewDelegateFlowLayout 이 필요했다. @IBOutlet weak var listCollectionView: UICollectionView! let list = [UIColor.red, UIColor.green, UIColor.blue, UIColor.gray, UIColor.black] @IBOutlet 으로 이어진 UICollectio..
2021.07.10 -
[iOS] 세그웨이 Segue :: 스토리보드에서 화면을 전환하는 3가지 방법
codecrafting.tistory.com/33 에서 부터 이어지는 시리즈 포스팅입니다. iOS 화면전환 시리즈 프로젝트는 모두 다음과 같은 세팅이 되어있습니다. 1. Project Application : (iOS) App 2. Interface : Storyboard 3. Life Cycle: UIKit App Delegate 4. Language : Swift 5. Use Core Data : 체크해제 시뮬레이터 iOS 버전은 14.4버전, 하드웨어는 iPhone8을 사용중입니다. Xcode 버전은 12.4를 사용중입니다. 하위버전으로 실습하실 경우 UI가 미묘하게 다릅니다. 스토리보드에서 화면을 전환하는 3가지 방법 3. 세그웨이 (Segue) 세그웨이를 이용한 화면전환은 스토리보드의 강점을 한..
2021.03.01 -
[iOS] Navigation Controller :: 스토리보드에서 화면을 전환하는 3가지 방법
codecrafting.tistory.com/33 에서 부터 이어지는 시리즈 포스팅입니다. iOS 화면전환 시리즈 프로젝트는 모두 다음과 같은 세팅이 되어있습니다. 1. Project Application : (iOS) App 2. Interface : Storyboard 3. Life Cycle: UIKit App Delegate 4. Language : Swift 5. Use Core Data : 체크해제 시뮬레이터 iOS 버전은 14.4버전, 하드웨어는 iPhone8을 사용중입니다. Xcode 버전은 12.4를 사용중입니다. 하위버전으로 실습하실 경우 UI가 미묘하게 다릅니다. 스토리보드에서 화면을 전환하는 3가지 방법 2. 네비게이션 컨트롤러 (Navigation Controller) 이번에는 화..
2021.02.28 -
iOS) 그래서 ViewController 란 뭘까
iOS 특유의 유저 인터페이스 구조부터 파악하고 넘어가보자. iOS는 일반 데스크톱과 UI 표현 구조가 좀 다르다. 핸드폰 특성상 단 하나의 화면만 표현되고, 다른 프로그램이 실행되면 기존의 화면은 내려가고 그 자리를 새로운 화면이 채운다. iOS에서는 이러한 과정을 구현하는데 윈도우와 뷰 객체가 사용된다. 윈도우와 뷰 윈도우는 iOS 에서 디바이스의 스크린을 빈틈없이 채우기 위한 객체로, 항상 UI 표현 계층의 최상위에 위치한다. 뷰의 일종이지만 직접 컨텐츠를 가지지는 않으며 컨텐츠를 가진 뷰 객체를 내부에 배치하여, 화면에 출력하는 역할만을 수행한다. 때문에 화면이 전환되더라도 윈도우 객체는 전환되지 않으며, 내부의 배치된 뷰의 컨텐츠만 바뀐다. 뷰는 컨텐츠를 담아 이를 스크린상에 표시하고, 사용자의..
2021.02.27