반응형

전체 글 104

1. 요구사항 확인

소프트웨어 아키텍처정의 : 소프트웨어를 설계하고 전개하기 위한 지침이나 원칙 소프트웨어 아키텍처 4+1 뷰유스케이스 뷰(사용자) : 아키텍처를 도출하고 설계하는 작업을 주도하는 뷰논리 뷰(설계자) : 시스템의 기능적인 요구사항을 지원(클래스 다이어그램)프로세스 뷰(시스템 통합 담당자) : 테스크, 프로세스와 이들 사이의 상호작용 등의 관계를 표현하는 뷰구현 뷰(프로그래머) : 정적인 소프트웨어 모듈의 구성을 표현하는 뷰(컴포넌트 다이어그램)배포 뷰 (엔지니어): 물리적인 노드의 구성과 상호 연결관계를 표현하는 뷰(배포 다이어그램) SW패턴 종류-레이어 패턴 : 하위 모듈들의 그룹으로 나눌 수 있는 구조화된 프로그램- 클라이언트-서버 패턴 : 하나의 서버와 다수의 클라이언트, 두 부분으로 구성된다.- 파이..

정보처리기사 2021.05.19

[Framework] 파인더 커스텀 FIFinderSync(2)

Custom Toolbar 생성 Toolbar 이름 정의 override var toolbarItemName: String { return "FinderSy" } FinderSy라는 타이틀을 가진 Toolbar을 생성해준다 ToolBar 세부 내용 정의 override var toolbarItemToolTip: String { return "FinderSy: Click the toolbar item for a menu." } Toolbar안에 어떤 세부적인 기능들이 있는지 명시해준다. Toolbar의 이미지 설정 override var toolbarItemImage: NSImage { return NSImage(named: NSImage.cautionName)! } 툴바의 이미지를 NSImage 타입으로..

macOS 2021.05.03

[Framework] 파인더 커스텀 FIFinderSync(1)

FIFinderSync FIFinderSync는 macOS 프레임워크 중 사용자 정의 바로가기 메뉴 및 도구모음 버튼을 Finder에 추가한다. 이 클래스는 개발자가 액세스할 수 있는 API를 제공하지 않지만 프로토콜을 채택한다. 또한 폴더가 열리고 사용될 때를 탐지하여 감시할 수 있도록 설정하고 등록할 수 있다. 또한 해당 폴더안에 있는 파일안에 커스텀 컨텍스트 메뉴를 만들어서 사용할 수 있다. FIFinderSync는 NSObject를 상속한다. 기능 Sidebar Icon에 원하는 폴더 추가 해당 폴더안에 있는 파일 및 폴더에 뱃지기능 추가 해당 폴더안에 있는 파일 및 폴더에 원하는 context Menu 추가 가능 Finder Toolbar에 원하는 커스텀 버튼 추가 시작하기 원하는 xCode p..

macOS 2021.04.29

SwiftUI Segmented Control

개요UIKit에서 UISegmentedControl은 SwiftUI의 Picker와 같은 역할을 한다. 이번에는 Picker 컴포넌트와 UISegmentedControl 함수를 통해 서로 다른 이미지를 View에 표시해주는 간단한 프로젝트를 해볼 예정이다. 코드SideOfTheForceenum SideOfTheForce: String, CaseIterable { case light = "Light" case grey = "Grey" case dark = "Dark" }Picker의 타이틀을 정해주는 String 타입의 enum이다. light, grey, dark 총 3가지의 case가 있고 이것을 String값으로 반환해준다. CaseIterable 프로토콜을 채용하면 안에 있는 값들을 배열처럼 사용할..

SwiftUI 2021.04.01

SwiftUI Binding, Environment

개요 swiftUI에서 자신의 뷰에서의 상태값을 저장할 때는 @State 키워드를 사용한다. 하지만 이 상태값을 자신의 하위 뷰에도 적용시킬 때가 분명히 필요하다 이럴 때 사용하는 것이 바로 @Binding 키워드이다. 그리고 모든 View에는 환경 기본값이 존재한다. 사용하기 전에 따로 설정을 하지 않아도 기본적으로 설정되어있는데 이 값을 바꾸고 싶을 때는 @Environment 키워드를 사용하여 변경이 가능하다. 시작하기 @Binding 키워드를 통해서 다크모드를 사용할 수 있는 Boolean 변수를 다른 View와 공유를 하고 @Environment 키워드를 통해서 현재 View의 presentationMode의 값을 변경해서 현재 열려있는 View를 종료할 수 있게 도와주는 변수를 만들 예정이다...

SwiftUI 2021.03.31

SwiftUI Profile View

오늘은 SwiftUI 프레임워크를 이용하여 간단한 Profile UI를 만들 예정이다.결과프로필 사진과 사용자에 대한 간단한 정보를 담아주는 Textfield가 있고 오른쪽 상단에는 저장하는 버튼과 삭제하는 버튼을 생성하였다. State 변수 선언struct ContentView: View { @State private var firstName = "" @State private var lastName = "" @State private var company = "" var body: some View { } }우선 TextFiled에 입력된 값을 담는 변수들을 State로 감싸서 선언해주었다. SwiftUI의 컴포넌트는 일반적으로 Struct단위로 구성되어 사용되는데 Struct 내에서는 값이 변경이 ..

SwiftUI 2021.03.30

[iOS, macOS] PromiseKit

[참조] https://www.raywenderlich.com/9208-getting-started-with-promisekit PromiseKit이란? PromiseKit은 Apple의 모든 플랫폼에서 사용가능한 오픈소스 중 하나로 비동기 프로그래밍 관련 프로젝트를 진행할 때 도와주는 프레임워크이다. 특정 순서로 작업을 진행해야하는 비동기 함수를 작성할 때 효과적으로 사용이 가능하다. Promise의 장점은 변화에 따른 주기적인 업데이트를 한다는 것이다. 오픈소스를 사용할 때 주의해야 할 점이 swift나 xcode의 업데이트에 관해서 수시적으로 프레임워크를 업데이트를 하는지이다. 이런 것을 확인하지 않고 오픈소스를 사용하다가 갑자기 프로젝트 관리가 중단되면 프로젝트 안에 관련 모든 코드를 지워야되는 ..

macOS 2021.03.23

SwiftUI 사진 가져오기(3)

swiftUI 사진 가져오기(1) swiftUI 사진 가져오기(2) macOS macOS에서 프로젝트를 실행할 때 사용하는 소스코드이다. 앞서 말했듯이 Target을 OS에 맞게 설정하고 소스파일 제목 제일 끝에 "_(원하는 OS)"를 적으면 자동으로 인식한다. NSUIImage_macOS import AppKit import SwiftUI public typealias NSUIImage = NSImage extension NSUIImage { var data: Data? { //비트맵 이미지 데이터 return self.tiffRepresentation } static func image(fromData data: Data) -> Image { return Image(nsImage: NSImage(da..

SwiftUI 2021.03.20

SwiftUI 사진 가져오기(2)

이전 게시물 보기 MemeTextField.swift 위쪽과 아래쪽에 있는 Text컴포넌트의 UI를 꾸며주는 코드이다. import SwiftUI struct MemeTextField: View { @Binding var text: String var body: some View { TextField(text, text: $text) .multilineTextAlignment(.center) .lineLimit(nil) .foregroundColor(.black) .font(Font.system(size: 25, weight: .bold)) .textCase(.uppercase) } } @Binding 어노테이션을 사용하여 text 변수를 사용하였는데 이렇게 지정한 이유는 여러개의 뷰에서 동시에 Stat..

SwiftUI 2021.03.19
반응형