iOS
-
[Swift] Xcode 14 에서 SwiftUIX 불러오기iOS/Swift 2022. 12. 16. 11:42
예전 강의에서는 File > Package > Swift Package 로 들어가서 외부소스를 불러왔었는데 Xcode 14 부터는 달라졌다. 우선 프로젝트 최상위 파일로 간다. Package Dependencies 로 가서 화면 하단의 + 버튼을 누른다. SwiftUIX 의 깃허브 주소 복사 https://github.com/SwiftUIX/SwiftUIX 검색창에 붙여넣고 Add Pakage 누르면 끝 잘 추가 된 것을 볼 수 있다 소스코드를 사용할 파일 상단에 SwiftUIX를 import 해주고, SwiftUIX 라이브러리에 있는 VisualEffectBlurView를 사용해본다. 잘 적용된것을 볼 수 있다. 왼쪽은 VisualEffectBlurView(blurStyle: .systemMateria..
-
[Figma] 날씨앱 클론 디자인iOS/Figma 2022. 12. 12. 22:53
앱 UI 공부를 어떻게 해야할까 고민하다가, 우선 무작정 따라서 만들어보자 생각이 들었다. 유튜브에 "how to design iOS app" 을 쳐보니까 위의 영상이 조회수도 높고 댓글 반응도 좋았다. 한눈에 봐도 예쁘다. 더보기란을 읽어보니 다크모드 날씨 앱을 구현한거라고 한다. 하다보면 손에 익겠지 싶어 영상에 나온 단계 하나 하나 전부 따라해봤다. 아래는 내가 하면서 정리한 스크린샷과 설명들. 나중에 기억나지 않을때 복습하기! 1. FIGMA 에 로그인 한 후 new design 클릭 2. Page 1 를 누르고 A 를 눌러 화면 드래그 후 프레임 하나 생성하기 크기는 1600W x 1200H 3. 색상을 누르고 Radial - F7CBFD 로 만들기 4. 플러스 버튼을 누르고 두번째 색상은 77..
-
[iOS 앱개발] Storyboad SegueiOS 2022. 12. 8. 12:17
Storyboad Segue 컨트롤러 끼리 연결 되어 있는 선이다. prepare(for:) 메소드가 사용된다. 다음 네비게이션 화면을 위해 사전 준비를 하라는 의미이다. [애플 공식 문서] https://developer.apple.com/library/archive/navigation/ Documentation Archive developer.apple.com https://developer.apple.com/documentation/uikit/uistoryboardsegue/ Apple Developer Documentation developer.apple.com https://developer.apple.com/library/archive/featuredarticles/ViewControllerP..
-
[iOS 앱개발] ModaliOS 2022. 12. 8. 12:12
iOS 에서 Modal 사용 웹에서는 필히 수행해야할 일들이나 강조해야할 부분을 띄우는 기능을 하지만, 앱에서는 크게 사용되지는 않는다. iOS 에서는 화면 아래에서 올라오는게 가장 기본적이다. 화면을 꽉 채우기도 하고, alert 처럼 뜨기도 하고, 화면 일부만 가리게 할 수 있다. 이메일 작성이나 메시지 작성의 경우 화면을 모두 가리는게 일반적이다. 화면 전환이 꼭 필요치 않은 경우 휴먼 인터페이스 가이드라인 문서를 보면 모달 사용을 최소화하라고 나와 있다. 모달을 사용해야한다면 간결하고 잛게 설계해야한다. 애플 제품을 오래 사용한 사용자들은 굉장히 애플이 만들어놓은 인터페이스에 익숙해져 있기 때문에 미세한 차이를 느끼고 불편함을 느낄 수도 있다. 그렇기 때문에 휴먼 인터페이스 가이드라인 문서를 참고..
-
[iOS 앱개발] 네비게이션 인터페이스iOS 2022. 12. 8. 12:06
UINavigationController는 UIViewControllder를 상속받은 클래스이다. View 단위로 화면을 움직이게 하는것 관리하는 View 컨트롤러를 최소한 하나는 가지고 있어야한다. 이를 루트 뷰 컨트롤러 라고 한다. 세그를 통해서 다음 뷰가 어디일지를 정한다. 사용자 입장에서는 네비게이션 바를 사용하는것이 편하다. 네비게이션 인터페이스는 가장 기본적인 부분이라 잘 알고 있어야한다. [네비게이션 관련 애플 공식 문서] https://developer.apple.com/design/human-interface-guidelines/components/navigation-and-search/tab-bars/ Tab bars - Navigation and search - Components -..
-
[iOS 앱개발] 앱에서 이메일 보내기 예제iOS/Swift 2022. 12. 5. 18:23
// // ViewController.swift // sendEmail // // Created by 박단비 on 2022/12/05. // import MessageUI import SafariServices import UIKit class ViewController: UIViewController, UINavigationControllerDelegate, MFMailComposeViewControllerDelegate { override func viewDidLoad() { super.viewDidLoad() let button = UIButton(frame: CGRect(x:0, y:0, width: 220, height: 50)) view.addSubview(button) button.setTi..
-
[Swift] 상속iOS/Swift 2022. 12. 4. 17:02
부모의 class 에 선언되어 있는 함수들을 가져다 쓰는것 (=override, 덮어쓰기) import UIKit // 부모가 자식에게 물려주는것 // 자식은 부모의 것을 가지고 있으면서 추가적으로 본인의 기능을 만듬 class Friend { var name : String // 부모 함수 1 init(_ name: String){ self.name = name } // 부모 함수 2 func sayHi(){ print("안녕 난 \(self.name) 라고 해") } } class BestFriend : Friend { //Friend 를 overide 한다 // 부모 함수 1 override init(_ name: String) { // super = 부모 // 부모를 상속받았으면 꼭 init 을 ..
-
[Swift] 객체 생성자, 해제자iOS/Swift 2022. 12. 4. 11:16
이니셜라이저 (Initializers) 이니셜라이저는 특정 타입의 인스턴스를 생성합니다. 이니셜라이저의 가장 간단한 형태는 파라미터가 없고 init 키워드를 사용하는 것입니다. import UIKit class MyFriend { var name : String init(_ name: String = "이름없음"){ self.name = name print("MyFriend가 메모리에 올라갔다 - \(name)") } deinit { print("메모리에서 사라짐 - \(name)") } var calledTimes = 0 let MAX_TIME = 5 static var instancesOfSelf = [MyFriend]() class func destroySelf(object: MyFriend){ i..