본문 바로가기

개발/iOS19

SwiftUI에서 Admob광고 추가하기 SwiftUI로 넘어오면서 Admob광고를 어떻게 추가하느냐가 문제가 되었다. 구글에서는 SwiftUI발표 이후 따로 이에 대해 따로 발표한게 없는 것으로 안다. 다행히 SwiftUI는 완전 새로운 것이 아니기 때문에 하위호환성도 어느정도 가지고 있다. StackOverflow에 다행히 해결 방법이 존재 하였다. # Google AdMob integration in SwiftUI 우선, UIViewControllorRepresentable을 상속받아 GADBannerViewController를 정의한다. import GoogleMobileAds import SwiftUI import UIKit struct GADBannerViewController: UIViewControllerRepresentable .. 2019. 12. 27.
Swift 함수 2 - 함수형 프로그래밍? 0. 함수형 프로그래밍??? Swift코드를 처음 접하게 된다면 적지 않게 난감한 코드가 눈에 들어오는데 바로 함수이다. 앞서 포스팅한 함수는 기존 여타 다른 언어들(절차지향적 언어, 명령형언어 java, C 등등)과 마찬가지 수준이지만 오늘 공부한 함수는 바로 함수형 프로그래밍의 페러다임에 따라 다양한 함수의 사용성을 공부해보고자 한다. 나는 주로 현업에서 Windows 시스템 프로그래밍을 하고 있는 개발자 이기 때문에 C, C++문법에 좀 더 익숙하다. 이런 관점에서 봤을 때 함수형 프로그래밍 언어인 스위프트를 봤을 때 상당히 낯설다. 이론적으로 찾아보면 함수형 프로그래밍의 가장 큰 특징은 프로그램의 상태에 관계없이 항상 같은 결과를 얻어낼 수 있다는 점이다. 이게 무슨말인지 함수형 프로그래밍을 해보.. 2019. 12. 1.
Swift 상수, 변수 스위프트에도 상수와 변수의 개념이 존재한다. 상수는 변하지 않는 값을 말하며, 변수는 변하는 값을 말한다. 변수는 var, 상수는 let 키워드를 통해 선언 될 수 있다. 1. 상수 : let 상수는 변하지 않는 값을 저장한다. 아래 예제코드를 보자. import Foundation let a : Int //상수 선언 a = 5 // 값대입 print(a) a = 6 //상수는 변경할 수 없다. a라는 상수를 선언하고 5를 대입하였다. 한번 출력하고 6을 입력할 때 컴파일러는 에러를 내놓는다. /tmp/B9F84CA6-7E22-4113-AE2E-A0D6A98845B4.beSm8X/main.swift:10:3: error: immutable value 'a' may only be initialized on.. 2019. 11. 27.
SwiftUI] 스위프트UI에서 UNUserNotificationCenter 사용하기 지난번 포스트에서 iOS의 UNUserNotificationCenter를 이용해보는 예제를 알아 보았었다. 이번에는 iOS13에서 발표된 SwiftUI를 이용하여 사용할 때는 어떻게 사용하는지 무엇이 다른지 알아 보겠다. 1. SwiftUI에서 viewDidLoad 함수 구현은 어떻게? viewDidLoad는 iOS view생명주기(LifeCycle)에서 뷰가 로드된 후의 작업을 정의할 수 있다. 부모클래스의 함수를 override하여 정의한다. 대부분 윈도우의 MFC나 안드로이드나 이런 방식으로 정의 한다. swiftUI는 UI요소마다 Modifier를 설정하여 속성을 변경한다. SwiftUI에서 Action을 정의할 때에도 같은 방식으로 정의한다. SwiftUI도 다를바가 없다. SwiftUI에서도 .. 2019. 11. 20.
Swift / iOS ] UNUserNotificationCenter를 이용하여 타임 트리거 사용해보기 오늘은 UNUserNotificationCenter를 이용해보는 예제를 작성해 보겠다. 그전에 UNUserNotificationCenter란 무엇인가? Apple 개발자 문서에 따르면.. UNUserNotificationCenter는 앱이나 앱의 익스텐션들과 관련된 여러 알림들을 중앙에서 관리하는 객체라 한다. 이를 사용하기 위해서는 사용자에게 알람을 허락 받는 퍼미션을 물어봐야한다. 알림과 뱃지, 소리 등을 설정할 수 있고 스케줄링으로 푸시를 줄수도 있다 한다. 더 자세한 내용은 개발자 문서를 참고 https://developer.apple.com/documentation/usernotifications/unusernotificationcenter UNUserNotificationCenter - Use.. 2019. 11. 20.
Swift ] Swift로 콘솔 출력 해보기 print 프로그래밍언어를 처음 배우면 가장 먼저 하는 것은 바로 hello world! 출력하기 일 것 이다. 출력은 프로그램의 결과물이며 프로그래머가 작성한 프로그램이 올바르게 동작했는지 확인하는 가장 확실한 방법이기 때문이다. printf("hello world\n"); console.log("hello world"); System.out.print("hello world"); print "hello world" echo "hello world" .... Swift를 배우는 첫걸음으로 콘솔 출력을 해보자. 다른 언어와 같이 콘솔 출력은 간단한 함수 하나로 시작된다. print https://developer.apple.com/documentation/swift/1541053-print print(_:separ.. 2019. 11. 17.
Swift ] Swift Playground로 연습하기 xcode에는 Playground라고 간단한 코딩 연습을 할 수 있는 방법을 제공한다. 스위프트가 나온지 이제 꽤 시간이 흘렀고 여러 프로젝트 들에서 실제로 사용되고 있는 이 시점에서 Swift를 배워보고자 Swift Playground를 이용하고자 한다. Xcode 11 최신 기준으로 Xcode를 실행하면 첫 화면에서 "Get started with a playground"라는 메뉴를 볼 수 있다. 클릭하자. 프로젝트 템플릿을 선택하는 화면이 나오는데 여기서 단순히 Swift에 대한 코딩연습을 하고 싶다면 macOS -> Blank를 선택하자. next 를 클릭하여 프로젝트 경로를 선택하고나면 처음으로 반기는 소스코드 화면. 이곳에서 여러가지 코딩 연습을 하면 된다. 콘솔 ouput을 보고싶다면 헤매지.. 2019. 11. 17.
SwiftUI ] SwiftUI에서 Modal View 띄우기(모달뷰) 오늘은 SwiftUI에서 Modal View를 띄우는 것을 알아 보겠다. 기존의 Objective-C로 모달뷰를 띄우려면 아래와 같이 하던 것을 SwiftUI에서는 어떻게 할까? - (IBAction)showMyModal { MyModal *myModal = [[MyModal alloc]initWithNibName:@"MyModal" bundle:nil]; [myModal setModalTransitionStyle:UIModalTransitionStylePartialCurl]; [self presentModalViewController:myModal animated:YES]; } 우선 예제로 SwiftUI프로젝트를 생성하고 ContentView에 Button을 하나 추가한다. import SwiftUI .. 2019. 11. 13.
SwiftUI ] 카드 UI 예제 -2 List, NavigationView 지난번 포스트에 이어 List와 NavigationView를 조합해 보겠다. * cardData : CardView에 바인드될 데이터 앞서 정의한 CardView를 List로 출력하기 위해서는 CardView에 바인드될 데이터 구조체를 정의하여야 한다. 이때 Identifiable 프로토콜을 채택한다. struct cardData: Identifiable{ var id = UUID() var image: String var category: String var heading: String var author: String } 프로토콜이 무엇인가.. https://blog.yagom.net/531 Swift - 프로토콜 지향 프로그래밍 오늘의 주제 1. 프로토콜 지향 프로그래밍 안녕하세요, 야곰입니다. 지.. 2019. 11. 12.