[Swift] Swift 공식 문서 - Swift 소개(2)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 1편에 이어 애플 개발자 홈페이지의 Swift 소개를 정리하려고 합니다. 1편 바로 가기 2021.12.14 - [Swift/공식 문서 정리] - [Swift] Swift 공식 문서 - Swift 소개(1) * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 목차 Source and Binary Compatibility 스위프트 5를 사용하면 새로운 버전의 컴파일러를 사용하기 위해 스위프트 4 코드를 수정할 필요가 없습니다. 대신 새로운 컴파일러를 사용하면 한 번에 한 모듈씩 새로운 Swift 5 기능을 이용하여 마이그레이션 할 수 있습니다. Swift 5는 이제 앱을 위한 바이너리 호환성을 도입했습니다. 즉, 추후 새로운 버전의 OS가 릴..
[Swift] Swift 공식 문서 - Swift 소개(1)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 애플 개발자 홈페이지의 Swift 소개를 정리하려고 합니다. Swift 공식 가이드 문서를 정리하기 전에 Swift가 무엇인지, 어떻게 소개되고 있는지 알아야겠다는 생각이 들었습니다. 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 목차 배우기 쉽고 강력한 프로그래밍 언어 Swift는 iOS, iPadOS, macOS, tvOS 및 watchOS를 위한 강력하고 직관적인 프로그래밍 언어입니다. Swift 코드 작성은 대화형이고 재미있으며, 구문은 간결하면서도 표현력이 있습니다. 또한 스위프트는 개발자들이 사랑하는 현대적 기능을 포함하고 있습니다. 스위프트 코드는 설계상 안전하고 빠르게 실행되는 소프트웨어도 생산합니다. Modern 스위프트는..
[iOS/Swift] 선택한 TableViewCell의 IndexPath 구하기
·
iOS/개념 & 개발
[iOS/Swift] 선택한 TableViewCell의 IndexPath 구하기 안녕하세요. 개발하는 정주입니다. 오늘은 선택한 TableViewCell의 IndexPath 구하는 방법에 대해 포스팅하려고 합니다. 바로 시작합니다. 구현 상황 스토리보드에서 segue를 이용해 화면 이동을 했습니다. TableViewCell을 누르면 다음 화면으로 데이터를 넘기며 넘어가는 로직입니다. 따라서 cell을 눌렀을 때 누른 cell의 indexPath를 구해야 했습니다. indexPathForSelectedRow https://developer.apple.com/documentation/uikit/uitableview/1615000-indexpathforselectedrow Apple Developer Docu..
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(5) - 코드 리뷰 / Pass 후기
·
iOS 프로젝트
안녕하세요. 개발하는 정주입니다. 오늘은 Sign Up 코드 리뷰를 받은 것에 대해 포스팅하려고 합니다. 재제출 결과 Pass를 받을 수 있었습니다. 이번 리뷰어는 두 가지 코멘트를 달아주셨는데요. 이에 대해 자세히 알아보겠습니다. Fail 이유에 대해서는 4편을 참고해 주세요! 목차 종합 의견 리뷰어가 남긴 종합 의견은 "깔끔하다."입니다. 이 멘트를 보고 참 기분이 좋았습니다. Clean Code에 신경을 쓰자는 다짐을 하고 iOS에 임한 만큼 코드가 깔끔하다는 평가는 잘 동작한다보다 훨씬 크게 다가왔습니다. 보람이 있네요. 칭찬과 아쉬움 칭찬을 받은 점은 화면 밖을 터치할 때 키보드가 내려가게 처리한 점이었습니다. 이에 대해서는 자세히 포스팅을 했기에 지난 포스팅으로 대신하겠습니다. 2021.12...
[iOS/Swift] Assets에서 JSON 파일 읽어오기
·
iOS/개념 & 개발
[iOS/Swift] Assets에서 JSON 파일 읽어오기 안녕하세요. 개발하는 정주입니다. 오늘은 Assets에서 JSON 파일을 읽어오는 방법에 대해 포스팅하려고 합니다. JSON을 파일로 지정해서 Asset에 넣고 사용할 때 유용한 방법입니다. NSDataAsset 프로젝트에 JSON 파일을 Asset에 등록하여 사용하기 위해서는 Data Set으로 생성, 삽입해야 합니다. Data Set은 Finder에서 확장자를 확인해보면 dataset 확장자로 나옵니다. 이렇게 Data Set을 코드에서 가져와 사용하고 싶을 때는 NSDataAsset을 쓰면 됩니다. Assets에서 JSON 파일 읽기 위의 내용을 토대로 JSON 파일을 읽어보겠습니다. guard let asset = NSDataAsset...
[Swift] JSON 다루기 / JSON Codable
·
Swift/개념 & 응용
[iOS/Swift] JSON 다루기 / Codable / JSON Decoder / JSON Encoder 안녕하세요. 개발하는 정주입니다. 오늘은 iOS에서 JSON을 다루는 방법에 대해 포스팅하려고 합니다. JSON 데이터를 넣는 구조체 정의와 인코딩, 디코딩에 대해 알아봅시다. Codable JSON을 다루기 전 Codable이 뭔지 알아야 합니다. 공식 문서에서는 Codable을 "Codable is a type alias for the Encodable and Decodable protocols."로 정의하였습니다. 즉 인코딩과 디코딩을 할 수 있는 프로토콜이라는 뜻이며 그러한 것을 수행하려고 할 때 채택하면 됩니다. typealias Codable = Decodable & Encodable ..
[iOS/부스트 코스] WeatherToday(1) - 사전 탐구
·
iOS 프로젝트
안녕하세요. 개발하는 정주입니다. 오늘은 WeatherToday 사전 검수에 대해 포스팅하려고 합니다. 목차 프로젝트 개요 이번 프로젝트는 JSON 데이터, 내비게이션 컨트롤러, 테이블 뷰를 중점으로 진행됩니다. JSON 데이터를 활용하여 날씨 정보를 보여주고 내비게이션 컨트롤러, 테이블 뷰를 활용합니다. 화면 1(세계 국가 리스트) 내비게이션 타이틀은 "세계 날씨"이다. 테이블 뷰 셀 왼쪽에는 국기 이미지를 보여주며, 국기 이미지 오른쪽에는 국가 이름을 보여준다. 테이블 뷰 셀의 액세서리 뷰를 통해 다음 화면으로 이동 가능함을 표시한다. 테이블 뷰 셀을 누르면 화면 2로 이동하며 데이터도 함께 전달된다. 화면 2(도시 목록) 내비게이션 아이템의 타이틀은 이전 화면에서 선택된 국가 이름이 설정된다. 내비..
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(4) - 코드 리뷰 코멘트 적용
·
iOS 프로젝트
안녕하세요. 개발하는 정주입니다. 오늘은 Sign Up 코드 리뷰를 받은 것에 대해 포스팅하려고 합니다. 결과는 오토 레이아웃에서 한 곳 실수를 해서 Fail을 받았습니다. 기준이 엄격하긴 한 듯 하나 이해 못 하는 이유는 아니었기에 수정하여 추가 결제, 재제출하였습니다. 이에 대해 자세히 알아보겠습니다. 목차 Fail을 받은 이유 Fail이 난 가장 큰 이유는 SafeArea를 고려하지 않은 오토 레이아웃 적용이었습니다. 모든 곳에선 아니고 한 부분이 그랬네요. 세로 모드일 때는 SuperView와 SafeArea의 좌우 영역이 같기 때문에 상관없지만 가로로 회전시킬 경우 차이가 나기 때문에 화면 3의 Birth Label의 오른쪽이 잘리는 문제가 생겼습니다. 따라서 스토리보드에서 오토 레이아웃을 다시..
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(3-2) - 기능 구현하기(2)
·
iOS 프로젝트
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(3-2) - 기능 구현하기(2) 안녕하세요. 개발하는 정주입니다. 오늘은 네이버 부스트 코스 프로젝트 B-Sign Up의 화면 구성하기를 포스팅하려고 합니다. 기능 구현은 로그인 화면, 회원 가입(기본 정보) 화면을 1편, 회원 가입(부가 정보) 화면을 2편으로 나눴습니다. 목차 회원 가입(부가 정보) 회원 가입(부가 정보) 화면에서는 Date Picker 기능과 싱글톤 공유 객체의 적용이 핵심이었던 것 같습니다. Date Picker부터 보겠습니다. Date Picker 공식 문서부터 보도록 하겠습니다. https://developer.apple.com/documentation/uikit/uidatepicker/ Apple Developer ..
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(3-1) - 기능 구현하기(1)
·
iOS 프로젝트
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(3) - 기능 구현하기 안녕하세요. 개발하는 정주입니다. 오늘은 네이버 부스트 코스 프로젝트 B-Sign Up의 화면 구성하기를 포스팅하려고 합니다. 기능 구현은 로그인 화면, 회원 가입(기본 정보) 화면을 1편, 회원 가입(부가 정보) 화면을 2편으로 나눴습니다. 목차 공통 텍스트 필드를 편집 중일 때 화면 빈 공간을 터치하면 키보드가 내려가고 편집이 종료되는 기능은 모든 화면에 적용되어야 합니다. 해당 기능 구현 및 분석은 따로 포스팅을 진행하였으니 확인해주시면 감사하겠습니다! 2021.12.03 - [iOS/iOS 개발] - [iOS/Swift 5] iOS 개발 - 화면 터치 시 키보드 내리는 방법 / touchesBegan() / end..
[iOS/Swift] UIImagePickerController에서 PHPickerViewController로 변경된 이유
·
iOS/개념 & 개발
안녕하세요. 개발하는 정주입니다. 오늘은 UIImagePickerContoller에서 PHPickerViewController로 변경된 이유에 대해 포스팅하려고 합니다. 현재 제 실력으로 소화한 내용만 작성하였습니다. 시간이 흐른 뒤 실력이 늘면 내용이 업데이트될 수도 있습니다. 틀린 점이 있다면 댓글로 알려주세요. 즉시 수정하겠습니다. UIImagePickerContoller UIImagePickerContoller는 기존 iOS에서 사용되는 이미지, 영상을 선택, 편집뿐만 아니라 카메라까지 사용할 수 있는 유용한 클래스였습니다. 공식 문서에선 "A view controller that manages the system interfaces for taking pictures, recording movi..
[iOS/Swift] 화면 터치 시 키보드 내리는 방법 / touchesBegan() / endEditing() / first responder
·
iOS/개념 & 개발
[iOS/Swift] 화면 터치 시 키보드 내리는 방법 / touchesBegan() / endEditing() / first responder 안녕하세요. 개발하는 정주입니다. 오늘은 화면 터치 시 키보드를 내리는 방법에 대해 포스팅하려고 합니다. 해당 포스팅에서는 화면의 빈 공간을 눌렀을 때 키보드가 내리는 방법에 대해 기술합니다. View를 눌렀을 때 등의 응용은 스스로 생각해보세요! 조금만 응용하면 가능합니다. 바로 시작합니다. 코드 override func touchesBegan(_ touches: Set, with event: UIEvent?) { self.view.endEditing(true) } 코드 자체는 상당히 짧습니다. 하지만 모르는 것 투성이었습니다. 첫 번째로 touchesBega..
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(2) - 화면 구성하기
·
iOS 프로젝트
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(2) - 화면 구성하기 안녕하세요. 개발하는 정주입니다. 오늘은 네이버 부스트 코스 프로젝트 B-Sign Up의 화면 구성하기를 포스팅하려고 합니다. 목차 공통 모든 화면은 가로로 돌렸을 때 사용성에 이상이 없을 정도의 레이아웃이어야 합니다. 예를 들어, 버튼 가려지거나, 지나치게 레이아웃이 훼손이 되면 안 됩니다. 이를 생각하고 모든 화면을 구성하였습니다. 로그인 화면 로그인 화면입니다. 최상단에 로고 이미지가 있고 ID 텍스트 필드와 Password 텍스트 필드가 있습니다. 그 아래에는 Sign In, Sign UP 버튼이 있습니다. 이 화면에서 헤맨 점은 기기를 가로로 눕혔을 때 레이아웃 배치입니다. 하단 버튼의 bottom 제약을 주지 ..
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(1) - 사전 탐구
·
iOS 프로젝트
[iOS/부스트 코스] iOS 앱 프로그래밍: Sign Up(1) - 사전 탐구 안녕하세요. 개발하는 정주입니다. 오늘은 네이버 부스트 코스 프로젝트 B-Sign Up의 사전 탐구에 대해 포스팅하려고 합니다. 목차 화면 1 - 로그인 화면 Password TextField는 마스킹이 되어야 한다. 화면 2 - 회원가입 화면(기본정보) 프로필 이미지의 비율은 1:1이다. 프로필 이미지는 원본 비율을 유지해야 한다. 세 개의 TextField는 여백이 동일하다(균등 분배). 패스워드와 패스워드 체크 TextField는 마스킹이 되어야 한다. 중간 자기소개 TextField는 상하 View를 배치한 뒤 빈 여백을 모두 채운다. 자기소개 TextField는 내부 패딩이 존재하며 왼쪽 위부터 글자가 작성된다. 다..
[iOS/부스트 코스] iOS 앱 프로그래밍: Music Player(4) - 오토 레이아웃 적용 / 코드로 View 생성
·
iOS 프로젝트
[iOS/부스트 코스] iOS 앱 프로그래밍: Music Player(4) - 오토 레이아웃 적용 / 코드로 View 생성 안녕하세요. 개발하는 정주입니다. 오늘은 오토 레이아웃 적용과 코드로 View 생성에 대해 포스팅하려고 합니다. 참고로 iOS에서는 인터페이스 빌더로 화면을 구성하는 방법과 코드로 화면을 구성하는 방법이 다릅니다. 스토리보드를 이용하면 눈에 보이기 때문에 화면 구성이 편리하다는 장점이 있지만 협업에서 머지 과정 중에 충돌이 자주 발생한다는 단점이 있습니다. 코드를 이용하면 직관성은 떨어져도 협업에서는 오히려 더 편하다고 합니다. 결론은 둘 다 사용해야 한다는 점! 화이팅입니다. 오토 레이아웃 적용 (인터페이스 빌더) 인터페이스 빌더로 오토 레이아웃 적용을 먼저 해보겠습니다. 하는 방..
유정주