전체 글

iOS/UIKit

[Swift] 알림창 Alert 띄우기, UIAlertController

오늘은 아래와 같은 알림창을 띄워보겠습니다! alert은 즉시 중요한 정보를 사용자에게 전달하는 역할을 합니다! https://developer.apple.com/design/human-interface-guidelines/alerts Alerts | Apple Developer Documentation An alert gives people critical information they need right away. developer.apple.com 스토리 보드에 버튼을 하나 불러오고 이 버튼을 누르면 alert창이 뜨게해보겠습니다! control을 누른 상태로 Button에서 ViewController 파일까지 드래그합니다. 원하는 변수명을 짓고 Connection은 Action으로 선택하여 새로운..

iOS/UIKit

[Swift] 앱의 기본 모드를 Dark mode, Light mode로 변경하기

앱의 기본 모드를 Dark mode로 변경하고 싶습니다. Xcode 좌측 네비게이터 영역에서 lnfo.plist를 선택합니다. Information Property List에 Appearance를 추가합니다. Appearance의 Value값을 Dark로 지정합니다. 이제 디바이스가 Light mode인 상태로 앱을 실행해도 Dark mode로 앱이 실행됩니다. 반대로 앱의 기본 모드를 Light mode로 지정하고 싶다면 Appearance의 Value값을 Light로 지정합니다

iOS/UIKit

[Swift] 오픈소스 라이브러리 사용하기 (1), 패키지 관리 도구, 버전 규칙

OpenSource 일반적으로 오픈소스는 소프트웨어의 공개된 소스 코드로 누구나 자유롭게 사용할 수 있는 형태를 말합니다. 원하는 기능이 담긴 코드를 불러와 더 빠르고 편리하게 프로젝트를 만들 수 있습니다! Q. 오픈소스에도 저작권이 있나요? A. 네! 이용하는 오픈소스의 저작권의 라이센스를 확인해보세요! ex) MIT license Q. 만약 이용했던 라이브러리를 제작한 사람이 삭제하면 어쩌죠? A. 사용이 어려워집니다. 주기적으로 확인해줘야해요🥲 Dependency Manager( 패키지 관리 도구 ) ⭐️Cocoapods (코코아팟)⭐️ 장점 : 대부분이 지원함 단점 : 설치와 빌드의 속도가 느림 Carhage (카르타고) 장점 : 속도는 빠름 단점: 지원을 많이 하지 않아 사용성이 낮음 ⭐️swi..

iOS/UIKit

[Swift] User Interaction Enabled, 응답하지 않는 뷰 활성화하기

View에 ImageView를 중첩하여 올려놓습니다. 보다 더 잘 보이게 하기 위해 View의 backgroundColor는 Yellow를, ImageView의 backgroundColor는 Purple을 지정했습니다 또한 각각 tap Gesture를 적용시켜 View를 누르면 Tap UIView가 출력되게, ImageView를 누르면 "Tap UIImageView"가 출력되게 합니다 시뮬레이터를 실행시키고 각각을 눌렀을 때를 예측해보자면 노란색을 누르면 "Tap UIView"가 출력되고 보라색을 누르면 "Tap UIImageView"가 출력돼야 할 것 같습니다! 이제 시뮬레이터를 실행해서 확인해 봅시다! 오잉? 보라색 부분을 아무리 눌러도 왜 "Tap UIView"로 출력되는 걸까요? UIImageVi..

iOS

[Xcode] 내 아이폰에서 앱 실행하기, 유선/무선 빌드하는 법

오늘은 Xcode에서 내 아이폰으로 앱을 실행하는 방법에 대해 알아보겠습니다. Xcode에서는 내가 개발한 앱을 가상의 시뮬레이터를 통해 실행시킬 수 있어요. 앱을 출시하기 전에 직접 내 아이폰에 빌드해보면서 테스트를 해볼 수는 없을까요? 물론 가능합니당! 개발자 계정만 있다면 문제없어요. 무료 개발자 계정의 한계 → 3개 앱까지 설치가능 → 7일 내 10개 앱 설치 가능 → 3일 지나면 앱 사용기간 만료 → 개발자 신뢰 설정 필수 실기기 빌드 준비하기 Xcode에서 Xcode>Settings에 들어가서 개발자 계정 설정을 해야해요! Accounts에서 개발자 계정을 등록해주세요! 내가 개발한 앱의 최소 지원 버전이 내가 앱을 실행시킬 아이폰보다 작거나 같아야해요! 내 아이폰에서 설정 > 개인정보 보호 ..

iOS/UIKit

[Swift] @discardableResult로 warning 메세지 없애기

Int값을 반환하는 함수를 만들고 호출합니다. 이때, 함수에서 반환하는 정수값을 받지 못하기에 오류가 Warning Message가 발생합니다. Warning Message가 발생해도 빌드에는 문제가 없고 함수를 사용하면서 "함수가 실행되었어용"이 출력됩니다. 빌드에는 문제 없으니 이 함수를 계속 사용하기로 해요. 그런데 Warning Message를 보지 않고 싶어요! 이때 함수 위에 @discardableResult 를 작성하면 Warning Message가 보이지 않습니다. 주의할 점은 Warning Message는 없앨 수 있지만 Error Message는 없앨 수 없습니다!

iOS/UIKit

[Swift] TextField Return키 누를때 키보드 내리기

TextField가 잘보이도록 하기위해 Background에 색을 추가했습니다. 내용을 입력하고 return키를 누르면 키보드가 내려가지 않습니다. TextField를 통해 키보드를 열었을때, 키보드를 내리는 이벤트가 필요합니다. TextField 위에서 control를 누른 상태로 Storyboard에서 View Controller.swift 파일로 드래그합니다. @IBAction을 추가할 수 있습니다. 추가할 Action의 이름을 입력하고 Type은 UITextField로 선택한 후, Event를 드랍다운해 Did End On Exit로 변경합니다. 이제 키보드에서 리턴키를 눌렀을 때 키보드가 내려감을 확인할 수 있습니다.

iOS/SwiftUI

[SwiftUI] Custom Font 추가와 Font Extension하기

Custom Font 추가하기 Pretendard라는 글꼴을 프로젝트에 추가하고자 한다. 하단 링크에서 파일을 다운받는다 Pretendard Pretendard 프리텐다드 Pretendard 프리텐다드 글꼴 다운로드 일본어 버전 다운로드 GitHub에서 보기 system-ui를 대체하는 글꼴 Apple의 system-ui가 익숙한 나로서는 San Francisco와 Apple SD 산돌고딕 Neo가 없는 cactus.tistory.com 다운받은 폰트를 Font 프로젝트에 추가한다. 이때 폰트는 반드시 프로젝트에 타겟하도록 한다. 타겟이 되지 않으면 적용되지 않는다. 프로젝트의 info에서 Fonts Provided by application을 추가한다. 추가한 모든 파일을 확장자명까지 적는다. 성공적으..

iOS/SwiftUI

[Udemy : SwiftUI+SwiftData Masterclass] Section 10. AFRICA

⭐️ 핵심 강의 내용 How to decode a JSON file and fetch data Create a dynamic List using Generics and JSON data. Create video player Map with custom Annotations 💡 JSON file 이란? JavaScript Object Notation 👉JSON Structure 기본 구조 key : value Object {} Array [] String "" Colon : Comma , JSON의 기본 예시 [ { "name" : seou, "age" : 22, "favefood" : [ "kimbap", "sulbing", "cake" ] } ] ❗️How to decode JSON file Codab..

알고리즘/백준

[백준] 1463번: 1로 만들기

🔍 문제 읽기 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 입력 출력 정수 N 정수 N의 연산을 사용하는 횟수의 최솟값 💡풀이 ❗️[핵심] DP 다이나믹 프로그래밍 초기값 d[1] = 0 점화식 ① 3으로 나누어 떨어짐 ➡︎ d[k] = d[k/3]+1 ② 2로 나누어 떨어짐 ➡︎ d[k] = d[k/2]+1 ③ 1을 빼면 ➡︎ d[k] = d[k-1]+1 ①, ②, ③ 중 최솟값 🧩코드

쨈미니
서우의 성장일기