본문 바로가기

분류 전체보기

(40)
SwiftUI, 스위프트 UI 배경 색깔 지정 SwiftUI, 스위프트 UI 배경 색깔 지정 이게 뭐라고 한참을 헤맸다. css처럼 background-color : "#dedede" 요렇게 하면 깔끔하고 좋을텐데. 그렇다고 막 어려운 건 아니지만 헤맸기에 정리하기 위해 정해둔다. 나는 컬러값 hex 코드로 알고 있고 그냥 string값으로 넣으면 딱 바뀌겠지 했는데 그게 아니었다. 일단 색상을 hex코드로 넣을 수가 없다. 넣는 방법이 있긴 하던데 또 UIColor를 extension하고 해야 되길래 난 그런거 딱 질색이라 그냥 hex코드는 안쓰기로 했다. RGB는 사용할 수 있다. 그래서 일단 내가 원하는 hex코드는 rgb로 바꿔주는 사이트에서 바꿨다. www.rgbtohex.net/hextorgb/ HEX to RGB Join to acces..
SwiftUI에서 CustomColor 사용하기 SwiftUI에서 CustomColor 사용하기 처음에 swiftUI로 코딩을 했을 때 색깔을 지정하는 데 있어서 꽤 애를 먹었다. swiftUI에서 지정한 컬러만 사용하나 되기도 싶고. 저번 포스팅에서 rgb컬러를 사용하는 것을 보여주었지만 매번 이렇게 하는 거는 좋지 않은 것 같아서 방법을 더 찾아보니 더 좋은 방법이 있었다. 웹에서 개발할 때 자주 사용하는 컬러를 테마 컬러로 지정해서 이름을 정해주면 이름만 적으면 해당 컬러를 불러올 수 있었다. 그와 비슷한 방법이 swiftUI에 있었다. 우선 프로젝트를 만들면 네비게이션 영역에 Assets.xcassets라는 폴더처럼 생긴 파일이 있을 것이다. 저 빨간 부분에 오른쪽 마우스를 클릭하면 메뉴가 뜨는데 Color Set을 클릭하자. 그러면 다음과 같..
스위프트 클로저(feat. 함수) 스위프트 클로저(feat. 함수) 스위프트를 배우면서 클로저라는 낯선 문법을 발견해서 정리해 두기 위한 포스팅이다. 함수에 대해서 잘 모른다면 함수를 먼저 알고 오도록 하자. 클로저는 함수와 유사하게 쓰인다. 다음 예시 코드를 보도록 하자. func sayHello () { print("Hello!") } Hello라는 텍스트를 출력하는 sayHello라는 이름의 함수이다. 클로저를 이용해 표현해보도록 하겠다. let sayHello = { print("Hello!") } 함수에서 작동하던 것을 그대로 표현하고 sayHello라는 상수에 할당하고 있다. 위 두 코드는 똑같은 기능을 한다고 봐도 무방하다. 함수와 마찬가지로 argument를 받고 결과 값을 return하도록 할 수 있다. 일단 함수로 먼저..
14일 만에 아이폰 앱 만들기(13) - Challenge 14일 만에 아이폰 앱 만들기(13) - Challenge 이제 기술도 좀 익혔겠다. 앱을 직접 만들어보자. 슬롯머신을 만들어 볼 것이다. 이미지 등 소스는 이 포스팅을 하기 위해 시청한 사이트의 자료에 있다. academy.codewithchris.com/p/start 14 Day Beginner Challenge How To Make An App with SwiftUI academy.codewithchris.com 직접 자료를 올릴 수도 있겠지만 양심상 그래도 들어가서 해당 강의 신청하고 자료실로 들어가서 받도록 하자. 덕분에 이 포스팅도 있고 여러분도 스위프트에 대해서 더 자세히 알 수 있는 거 아니겠는가 이제 진짜 스위프트로 앱 만드는 과정은 끝났다. 다음 포스팅은 아마 차후에 무엇을 해야되는지에..
14일 만에 아이폰 앱 만들기(12) - If Statements 14일 만에 아이폰 앱 만들기(12) - If Statements 이제 if문을 배워보고 카드게임에 적용해보도록 하자. 우선 플레이그라운드를 켜고 다음과 같이 입력하자. let a = 1 let b = 2 let c = 3 let d = "hello" let e = false let f= true let g = true 그리고 if문을 작성해보도록 하겠다. if e { print("Hello World") } e가 들어가는 곳에 상태(조건)를 적으면 되는데 현재 상태는 e의 값인 false라고 보면 된다. 따라서 if문의 조건의 false이고 중괄호 안의 구문은 실행되지 않는다. 실행하면 아무것도 뜨지 않는 것을 볼 수 있을 것이다. 하지만 e를 f로 변경해주면 구문이 출력되는 것을 볼 수 있을 것이다...
14일 만에 아이폰 앱 만들기(11) - State Properties 14일 만에 아이폰 앱 만들기(11) - State Properties 지난 포스팅에서 카드게임의 버튼을 만드는 것까지 진행했다. 이제는 각자 카드에 해당하는 데이터를 컨트롤하도록 해보자. 카드게임 프로젝트를 불러오자. ContentView에 property를 추가로 입력해 주자. ContentView struct 내에서 저 값들을 참조할 수 있다.(같은 scope이기 때문) 카드 이미지를 불러올 때 이제 문자열이 아닌 변수를 통해서 불러오도록 하자. 점수도 마찬가지로 불러오면 되는데 Int값을 String값으로 변경해주어야 한다. 이제 버튼을 클릭할 때 저 변수의 값들이 변경하게 하면 된다. 그렇게 하기 위해서 버튼의 클로저의 내용을 바꿔보자. 일단 playerCard 변수의 텍스트를 변경하기 위해 버..
14일 만에 아이폰 앱 만들기 챌린지(10) - SwiftUI Buttons 14일 만에 아이폰 앱 만들기 챌린지(10) - SwiftUI Buttons xcode에서 새 프로젝트를 실행 하도록 하자. ContentView의 body 안의 내용을 지워보자. 그리고 그 안에 Button이라고 입력하고 왼 괄호까지 입력해보자. 그럼 다음과 같은 auto complete기능이 실행될 것이다. instance는 어떠한 데이터를 주는가에 따라 달라진다. 그 중 우리는 먼저 title과 action이 있는 button을 만들어보자. title은 버튼의 label로 사용되며, action은 버튼이 눌러졌을 때 실행되는 기능이 들어가게 된다. action parmeter의 타입을 살펴보면 처음 보는 것임을 알 수 있다. ( () -> Void) 설명하자면 아무것도 return하지 않는 이름 없..
14일 만에 아이폰 앱 만들기 챌린지(9) - Instances struct { double tax = 0.1 func totalWithTax(input : Double) -> Double { return input + input + tax } } 14일 만에 아이폰 앱 만들기 챌린지(9) - Instances 늘 그러했듯이 플레이그라운드를 켜자. struct를 하나 만들자. struct MyStructure { var message = "Hello" func myFunction() { print(message) } } 위 코드를 실행하면 아무것도 실행되지 않는다. 이 코드는 청사진blueprint라고 할 수 있다. 청사진은 건축이나 기계 따위의 도면(圖面)을 복사하는 데 쓰는 사진으로 설계도와 같다고 볼 수 있다. 건물이나 자동차 등은 일단 청사진을 만들고 생산에 ..
14일 만에 아이폰 앱 만들기 챌린지(8) - Structures 14일 만에 아이폰 앱 만들기 챌린지(8) - Structures 플레이그라운드를 열도록 하자. struct는 다음과 같이 선언할 수 있다. struct MyStruct { } struct의 이름은 보통 대문자로 시작하고 CamelCase 형태(ex. MyApple, YourBook, ThisIsMyPhone)이다. 자기만 혼자서 프로그래밍할 거라면 상관없지만 누군가 나의 코드를 보거나 협업을 하는 거라면 이 규칙을 지키는 것을 권장한다. struct 안에는 상수나 변수 등을 넣을 수 있다. 물론 이 상수나 변수를 다시 사용할 수 있다. 함수도 넣을 수 있다. ChatView라는 struct를 만들어 자세히 알아보자. struct ChatView { // Variables and Constants (Pr..
14일 만에 아이폰 앱 만들기 챌린지(7) - 스위프트 함수 14일 만에 아이폰 앱 만들기 챌린지(7) - 스위프트 함수 이 포스팅에서는 스위프트 함수에 대해서 알아봅니다. 스위프트 플레이 그라운드를 실행시켜서 진행하도록 하자. func myFunc() { let a = 10 let b = 20 print(a+b) } func라는 키워드 뒤에 원하는 함수 이름을 적는다. 그리고 괄호를 입력하고, 그 뒤에 중괄호를 입력한다. 중괄호 안의 내용이 함수의 내용이 되는 것인데, 함수가 호출될 때마다 중괄호 안의 내용이 실행이 된다. 위 코드를 작성하고 실행을 하면 아무런 반응이 없을 것이다. 함수를 작성하기만 했지 호출하지는 않았기 때문이다. 함수를 호출해보자. func myFunc() { let a = 10 let b = 20 print(a+b) } myFunc() /..