분류 전체보기
-
[ios - SwiftUI] Widget 사용하기 (1/2)ios 2021. 2. 4. 10:23
이번 글에서는 위젯 사용 및 뷰 이동을 테스트한 글을 정리해 보았습니다. 먼저 Swift 프로젝트에서 Widget Extension을 추가해 주도록 하겠습니다. Extension이 추가되면 기본적인 코드가 작성된 swift 파일을 확인할 수 있습니다. 이제 작성된 코드의 의미를 먼저 알아보도록 하겠습니다. struct Provider: IntentTimelineProvider { func placeholder(in context: Context) -> SimpleEntry { SimpleEntry(date: Date(), configuration: ConfigurationIntent()) } func getSnapshot(for configuration: ConfigurationIntent, in con..
-
[ios-Swift] Share Extension 사용하기ios 2021. 1. 27. 10:49
이번 글에서는 Share Extension을 커스텀 뷰로 꾸며 사용하는 글입니다. 1. 설정 ShareExtensionExample 프로젝트를 생성한 후 File -> Target -> Share Extension을 추가해 주도록 합니다. Extension -> App 간 데이터 사용은 동일한 그룹을 사용해야 데이터를 공유할 수 있는 것으로 알고 있어 그룹 설정을 먼저 하도록 하겠습니다. 프로젝트의 Capacapabilities -> App Grouops를 선택 후 그룹을 설정해 주도록 합니다. 그룹명은 group.Bundle identifier.Share를 사용했습니다. TARGETS -> 프로젝트에서 추가한 그룹을 셰어 익스텐션에서 체크해주도록 합니다. 이제 그룹 설정이 완료되었습니다. 이제 우리는 ..
-
[ios - Swift] Phi Chart View (CALayer)ios 2021. 1. 12. 10:18
() 이번 글에서는 지난번에 배운 UIBezierPath, CAShapeLayer를 사용해 파이 차트를 만들어 보도록 하겠습니다. import UIKit class UIPieChatView: UIView { override init(frame: CGRect) { super.init(frame: frame) } required init?(coder: NSCoder) { super.init(coder: coder) } override func setNeedsDisplay() { super.setNeedsDisplay() definePieChatLayer() } private func definePieChatLayer() { } } UIView를 상속받은 기본적인 클래스 구성입니다. 앞으로 이 클래스에 사용자..
-
[ios - Swift] Circle Progressbar 만들기 (CALayer)ios 2021. 1. 8. 13:53
이번에는 위 이미지와 같은 CAGradientLayer, CAShapeLayer를 사용한 원형 프로그래스 바를 만들어 보도록 하겠습니다. Layer에 대한 자료는 baked-corn.tistory.com/110 참조해 보는 것도 좋고 간단하게 모든 뷰는 UI를 담당하는 하나의 CALayer를 가지고 있고 CALayer는 여러 subLayer를 가질 수 있다고 보면 될 것 같습니다. 우선 이미지와 같이 프로그래스 바가 진행하면서 보일 부분을 나타내기 위해 CAGradientLayer를 사용해 뷰에 대한 레이어를 설정해 주면 됩니다. import UIKit class UICircleProgressbar: UIView { override init(frame: CGRect) { super.init(frame: ..
-
[ios - Swift] FileManager 사용한 저장, 불러오기ios 2021. 1. 5. 18:09
이번 글에서는 FileManager를 사용해서 앱 내 저장 공간에 데이터를 저장 및 불러오기를 처리하도록 하겠습니다. 파일을 저장 또는 불러오려면 파일의 위치를 알아야 하는데 파일의 위치는 URL로 표현할 수 있습니다. 우선 파일의 경로를 앱/videos/MyFileSaveName.mp4라고 생각한다면 아래와 같이 사용할 수 있습니다. guard let docsUrl = FileManager().urls(for: .documentDirectory, in: .userDomainMask).first else { return } let dirUrl = docsUrl.appendingPathComponent("videos") let saveUrl = dirUrl.appendingPathComponent("MyF..
-
[ios - Swift] MapView 사용하기 (MKMapView 2 / 2)ios 2020. 12. 23. 11:01
이번 글에서는 지난 글에서 얘기한 것과 같이 지역 내 검색 및 좌표에 대한 정보를 추출하는 방법을 알아보도록 하겠습니다. 위 gif를 살펴보면 맵 뷰의 현재 위치, 중앙 위치의 주소, 주변 가게들이 나오는 것을 확인할 수 있습니다. 해당 기능을 사용할 수 있도록 하나씩 작성해 보도록 하겠습니다. 1. 내 위치 찾기 @IBAction func changeValue(_ sender: UISegmentedControl) { // "현재 위치" 선택 - 현재 위치 표시 if sender.selectedSegmentIndex == 0 { self.mainTitle.text = "" self.subTitle.text = "" // 사용자의 현재 위치 locationManager.startUpdatingLocatio..
-
[ios - Swift] MapView 사용하기 (MKMapView 1 / 2)ios 2020. 12. 22. 17:21
이번 글에서는 MapView 이용한 간단한 위치 앱을 만들어 보도록 하겠습니다. init.plist 에서 지도 권한을 요청할 수 있도록 추가합니다. 화면 구성은 다음과 같은 뷰로 구성되어있고 사용하려는 목적은 아래와 같습니다. Segmented Control : 현 위치와 특정 위치로 이동합니다. CollectionView : 맵 뷰에 나타나는 지역에서 해당하는 특정 건물을 찾습니다. Label : 현 위치와 주소를 보여줍니다. 이제 viewDidLoad에서 델리게이트 및 권한 요구 코드를 작성해 주도록 합니다. let locationManager = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() mapkit.delegate ..
-
[ios - Swift] Alamofire Exampleios 2020. 12. 21. 09:40
맥북에서 프로젝트 파일이 사라지는 버그가 있는 것 같아 관련 소스가 많이 사라져 내용이 빈약합니다... 이번 글에서는 Alamofire 라이브러리에 대한 간단한 코드만 작성하도록 하겠습니다. 우선 서버는 톰캣 서버를 이용했으며 결과 값 수신은 json을 이용해 리턴 받을 수 있도록 별도의 서버를 구축하면 됩니다. 1. request guard let url = URL(string: "http://192.168.0.1/rest/member/members.json") else { return } let params = [ "identifier" : "공유", "password" : 1234, ] as [String : Any] let alamo = AF.request(url , method: .post , ..