목록Swift (45)
브래의 슬기로운 코딩 생활

아이콘을 탭하면 모달창이 나오고 learn more버튼을 탭하면 특정 url로 가는 safari앱을 실행시키는 프로젝트이다. Detail 스토리보드를 만들고 FrameworkDetailViewController를 만들어서 연결해준다. FrameworkDetailViewController 소스 safari 관련함수를 쓰기 위해서는 다음을 import해주어야 한다. 다음은 메인 스토리보드를 관리하는 뷰컨트롤러의 소스중 일부 이다. 이 코드블럭을 실행하려면 45번째 줄의 소스가 필요하다. 사실 이건 애플 프레임워크 프로젝트를 만들어 놓고 모달 기능만 추가한 프로젝트라서 모든 소스를 포스팅하지 않고 추가한 부분만 포스팅 하였다.

UICollectionView 구현을 위해서는 presentation, data, layout을 구현해야 한다. UICollectionView 소스 UICollectionViewCell 소스 BannerInfo소스

기존 UICollectionView 에서 Data, Presentation 구현 방법은 에러가 생길수 있음 UICollectionViewDataSource UICollectionViewDiffableDataSource 기존 UICollectionView 에서 layout 구현관련해서 복잡한 구현시, 난이도가 갑자기 올라감 UICollectionViewFlowLayout UICollectionViewCompositionalLayout 예)

1. 화면을 컨트롤할 뷰 컨트롤을 만든다. 2. 해당 화면에 클래스를 연결해주고 스토리보드 아이디도 동일한 이름으로 설정해준다.

Swift언어란? Swift는 Apple이 iOS 애플리케이션을 개발하기 위해 도입한 프로그래밍 언어입니다. 모듈화란? 모듈화는 프로그램을 여러 개의 독립적인 부분으로 나누는 것을 말합니다. CI/CD란? CI/CD (Continuous Integration/Continuous Delivery)는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법입니다. 테스트 자동화란? 테스트 자동화는 소프트웨어의 품질을 향상시키기 위해 테스트를 자동으로 수행하는 프로세스 입니다. 함수형 프로그래밍이란? 함수형 프로그래밍은 불변성과 순수 함수를 중시하여 부작용을 최소화하고 코드의 간결성과 안정성을 추구하는 프로그래밍 패러다임입니다. 리액티브 프로그래밍이란? 리액티브 프로그래밍은 ..

Autolayout (오토 레이아웃 이란?) 오토 레이아웃(Auto Layout)은 제약 조건(Constraints)을 이용해서 뷰의 위치를 지정하는 것. 다시 말하면, 두 뷰 사이의 관계를 제약 조건이라는 것을 이용해서 뷰의 크기와 위치를 지정하는 것. 오토 레이아웃은 여러 해상도를 지원하기 위해 만들어 졌다. 아이폰의 크기가 다양해지면서 해상도도 달라졌는데, 다른 크기에서도 같은 화면을 보여주기 위해 오토 레이아웃을 사용한다. 세로 보기 화면뿐만 아니라 가로 보기 화면까지도 지원한다. 위의 이미지를 보면 아이폰SE와 아이폰8, 아이폰8 Plus 기종이 달라도 보여지는 화면이 똑같다는 것을 볼 수 있다. 위의 이미지와 같이 오토 레이아웃은 제약 조건(Constraints)을 이용하여 자동으로 해상도에 ..

앱 개발 기술 분류 native - 안드로이드: JAVA, Kotlin - iOS: Swift, Objective-C cross platform - React native - Flutter - Web View를 감싸고 있는 웹사이트 - HTML+CSS+JS - Apache Cordova Xcode로 Swift문법 공부하기 Playground로 Swift문법 공부하기 Playground로 Swift문법과 UI테스트 폰트 조절: [Xcode]-[Preferences]-[Themes] 새로운 앱 만들기: [File]-[New]-[Project]-[iOS]-[App] 프로젝트 기본 설정 같은 이름의 프로젝트가 이미 있다면 폴더 변경하거나 이름 변경 프로젝트 생성 후 Xcode 초기 화면 Deployment Ta..

옵셔널 체이닝 (Optional Chaining) 옵셔널 체이닝 (Optional Chaining) 옵셔널로 선언된 변수의 맴버에 안전하게 접근하기 위한 방법 (?) Optional Chaining 예 class Person { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } } let kim: Person = Person(name: "Kim", age: 20 ) print(kim.age) let han: Person? = Person(name: "Han", age: 25 ) print(han.age) //print(han!.age) // print(han?.age) //Optiona..

클래스 vs. 객체 vs. 인스턴스 객체 인스턴스 인스턴스(instance) 실제로 메모리에 할당된 객체(object) 소프트웨어 애플리케이션을 개발하는 데 사용되는, 쉽게 사용할 수 있으며 재사용할 수 있는 기능을 가진 모듈 객체의 구성 - 데이터 변수(data variable) or 속성(property) - 함수 or 메서드(method) 클래스란? 청사진이나 설계도가 건물이 완성된 후의 모습을 나타내고 있는 것처럼 클래스(class)는 객체가 생성되었을 때 어떠한 모습을 보일 것인지를 정의 - int x; - Student han; //C++ - 클래스 인스턴스; Swift 클래스 선언하기 클래스의 기본 구조는 다음과 같다. class 새로운 클래스 이름 : 부모 클래스 { // 프로퍼티 // 인..

first class object : (1)함수를 변수에 저장 가능 Swift는 함수를 데이터 타입처럼 처리할 수 있음 다음과 같이 함수를 상수 또는 변수에 할당하는 것이 가능 func inchesToFeet (inches: Float) -> Float { return inches * 0.0833333 } let toFeet = inchesToFeet //함수를 자료형처럼 사용 함수를 호출하려면 원래의 함수 이름 대신에 상수 이름을 이용하여 호출 가능 print(inchesToFeet(inches:10)) print(toFeet(10)) //주의 : 매개변수명(inches:) 안씀 first class object : (2) 함수를 매개변수로 사용 func inchesToFeet (inches: Floa..