iOS
-
[iOS] 2주 차 미션 - Auto layout을 활용해서 클론 코딩을 해보자!iOS/UMC 2022. 10. 1. 04:22
2주 차 미션 💡 실제 앱을 하나 정해서, 특정 화면 구성해보기 💡 버튼 터치를 통해 다른 화면 (다른 스토리보드와 ViewController)으로 화면 전환하기(Present, Navigation) ✅ 다양한 Auto Layout을 활용해보기 ✅ Safe Area 지키기 ✅ 모든 디바이스 크기에 대응하기 1. 스탠다드 미션 내가 정한 어플리케이션 '런데이': 런닝이나 걷기 운동을 할 때 사용하는 어플이다. 간단하게 실습해보기 좋을 것 같아서 선택했다. 디바이스 크기에 맞도록 auto layout을 설정해서 메인 페이지를 만들어봤다 ✅ 스크롤 되는 버튼 만들기 실제로 horizontal scroll 버튼을 이렇게 만들어서 구동되는지는 모르지만, 스크롤이 되는 화면을 만드는 것을 목표로 했다. 1️⃣ 스토..
-
[iOS] UMC iOS 세미나 2주 차iOS/UMC 2022. 9. 26. 22:50
오늘 배운 내용 💡 Auto layout App Store의 첫 화면을 간단하게 따라해보며 Auto layout 실습을 했다! Label 과 UiView의 차이점? Label은 leading값과 top값만 잡아줘도 되지만, UiView는 top, leading + height(또는 bottom) 값까지 잡아줘야 한다. 그 이유는 text는 폰트 사이즈에 따른 text box 영역이 있기 때문에 Xcode가 유추할 수 있지만, UiView는 유추할 방법이 없기 때문이다.
-
[iOS] Storyboard UIComponents / Auto layout 탐구iOS/UMC 2022. 9. 24. 04:21
💡 Xcode 스토리보드 UI 컴포넌트 종류 Auto layout에 대해 알아보자 1️⃣ Storyboard UI Components 어떤 용도인지 알아야 쓸 수 있다! 📌 아이콘과 같이 봐야 외우기 쉬울 것 같아서 이미지와 함께 직접 적어서 공부했다 2️⃣ Auto layout 다음 2주 차 세미나에서 자세하게 배울 예정이기에 - 무엇인지? - 왜 중요한지? 에 대해서 알아보고자 한다. ✅ Auto layout이란? 오토 레이아웃은 제약 조건(Constraints)을 이용해서 뷰의 위치를 지정하는 것이다. ✅ Auto layout의 역할 다른 디바이스라도 똑같은 위치에 올 수 있도록 지정하기 위해 Auto layout을 사용한다! ✅ Auto layout 설정 방법
-
[iOS] info.plist / AppProject 속성 탐구iOS/UMC 2022. 9. 24. 03:16
💡 info.plist와 AppProject의 속성을 알아보자! 1️⃣ info.plist info.plist란? Information Property List의 약자로, 번들을 식별하고 구성하는 키-값 쌍을 포함하는 리소스이다. *번들(Bundle) Bundle은 하나의 앱을 구성하는 여러 요소를 묶음으로 관리하는 디렉터리이다. iOS 환경에서는 어플리케이션, 프레임워크, 플러그인, 그리고 다른 타입의 소프트웨어들이 번들이다. 더 나은 사용자 경험을 제공하기 위해서 iOS, macOS는 각 앱과 번들에 특별한 메타데이터 존재에 의존한다. 몇 개는 유저에게 보이고, 몇 개는 앱의 런칭을 용이하게 하는 시스템 프레임워크에 사용되는 등 다양한 용도로 쓰인다. 앱이 시스템에게 메타데이터를 제공하는 방법은 in..
-
[iOS] 인스타그램 클론 코딩을 해보자!(1) - 로그인, 회원가입 화면iOS/project 2022. 9. 23. 23:33
📌 목표 - storyboard, autolayout과 친해지기 - 버튼을 눌렀을 때 넘어가는 화면 구현하기 결과물 storyboard로 object 생성하기 오브젝트를 생성하는 것은 별로 어렵지 않으므로 꿀팁만 기록해둔다 오브젝트를 선택하고, ctrl을 눌러 다른 오브젝트에 가져다대면 constraint를 설정할 수 있는 팝업이 떠서 훨씬 편리하다! 페이스북으로 로그인 버튼을 만들 때, 버튼 옆에 이미지를 따로 구현하지 않고 버튼의 속성 inspector에서 같이 설정해줄 수 있다 Button Action 구현하기 @IBAction func emailTextFieldEditingChanged(_ sender: UITextField) { let text = sender.text ?? " " //옵셔널 s..
-
[Swift] 익스텐션(extension)iOS/Swift 2022. 9. 3. 17:41
익스텐션이란? 타입을 나눠서 작성하고, 하나의 타입으로 동작하는 것 기존에 작성된 타입이나 남이 작성한 타입을 확장할 수 있다 서로 다른 파일에 작성 가능하다 class Dog { func eat() { print("밥먹기") } } // 확장 extension Dog { func growl() { print("으르렁") } } var myDog = Dog() myDog.eat() // 원래 클래의 메서드 myDog.bike() // 확장한 클래스의 메서드 익스텐션으로 가능한 것 계산 프로퍼티, 메서드, 프로토콜, 서브스크립트, 중첩 타입, ... 불가능한 것 designated initializer, 저장 프로퍼티 extension과 프로퍼티 - 계산 프로퍼티 가능 (designated initiali..
-
[Swift] 객체 지향 프로그래밍iOS/Swift 2022. 9. 1. 23:55
객체 지향 프로그래밍 [예시] - 학사 관리 시스템 학생의 이름, 전공 수강신청 과목 수강신청 하기 - 게임 캐릭터 캐릭터의 능력 캐릭터 이동, 공격, 방어 등 객체 지향 프로그래밍 작성 방법 [객체의 속성] 가로, 세로 길이가 10, 20인 사각형 사각형은 객체이고, 가로 세로 길이는 사각형 객체가 가진 속성이다 [객체의 행위] 사각형의 넓이 계산 사각형은 정사각형인지 판단 사각형을 다루는 애플리케이션 클래스 객체의 타입 정의 프로퍼티 객체의 속성 정의 메소드 객체의 행위 정의 클래스에서 객체 생성 객체 생성 객체에 속성 설정 객체 메소드 실행 클래스 정의와 객체 생성 클래스 정의 class Rectangle { } 객체 생성 var rect = Rectangle() // var: 새로운 객체 대입 가..
-
[Swift] 프로토콜(protocol)iOS/Swift 2022. 8. 31. 23:57
💡 프로토콜 - 특정 역할을 하기 위한 메서드, 프로퍼티 등의 청사진이다(채택받는 타입이 구현을 약속한다) - 프로토콜은 구현부 {}가 없기 때문에 단독으로 사용이 불가하다 -> 클래스, 구조체와 함께 사용 - 프로토콜을 사용하면 클래스, 구조체 등 다른 타입이더라도 같은 인터페이스로 다양한 구현이 가능하다! 프로토콜 정의 protocol 프로토콜 이름 { 프로토콜 정의 } 프로토콜 채택 // 구조체, 클래스, 열거형에서의 구현 방법 struct SomeStruct: AProtocol, AnotherProtocol { // 구조체 정의 } class SomeClass: AProtocol, AnotherProtocol { // 클래스 정의 } enum SomeEnum: AProtocol, AnotherPr..