iOS프로그래밍 (2학년 2학기)

240912 iOS프로그래밍기초 2주차

Z2AE 2024. 9. 12. 16:48

MAC 사용법

Window 키보드와 Mac 키보드의 차이점

화면 캡쳐하는 방법

전체화면

  • cmd+shift+3

특정부분

  • cmd+shift+4
  • cmd+shift+4+space+카메라 이동하여 해당 윈도우만 캡쳐

Windows 컴퓨터와 공유

  • dropbox

Finder 많이 쓰는 기능 실습

다중 항목 선택

  • 연속적인 항목 선택 : shift+클릭(드래그)
  • 비연속적인 항목 선택 : cmd+클릭(드래그)

다중 항목 용량 확인

  • 다중 항목 선택 후 마우스 오른쪽 버튼을 클릭하면 컨텍추얼 메뉴가 나오는데 alt키를 누르면 [정보 가져오기] 메뉴가 [속성 보기]로 바뀌고 이것을 클릭

복사/붙이기

  • cmd+C, cmd+V
  • 마우스 오른쪽 버튼 클릭하면 나타나는 컨텍추얼 메뉴 사용(복제)

항목 삭제하기

  • 휴지통 비우기

Mission Control(F9)

Mission control 단축키

F9로 변경

  • [시스템환경설정]-[Mission Control]-[키보드 및 마우스 단축키]-Mission control 단축키

실행되는 모든 앱 및 위젯 등을 라이브 뷰로 한눈에 볼 수 있음

멀티터치패드에서는 [세손가락으로 위로 쓸어 올리기] 제스처

 

 

github에서 FlappyBird 다운로드 -> 압축해제 후 Xcode로 열기

FlappyBird를 실행한 모습

Swift의 개발언어를 한눈에 볼 수 있는 코드

안드로이드와 애플 스토어의 인기앱 / 앱 순위를 볼 수 있는 페이지

https://bbiguduk.gitbook.io/swift

Swift 변경 사항 정리한 웹페이지

 

https://github.com/swift-kr/swift-style-guide-raywenderlich/blob/master/ko_style_guide.md

raywenderlich.com의 Swift 스타일가이드

 

ai를 활용하여 

 

정적 타입 체크 언어와 동적 타입 체크 언어 장단점

특성 정적 타입 체크 언어 동적 타입 체크 언어
오류 감지 컴파일 시 조기 발견 가능 런타임에 발견되어 늦게 감지될 수 있음
성능 일반적으로 더 빠른 실행 속도 런타임 타입 체크로 인해 약간 느릴 수 있음
코드 가독성 명시적 타입으로 이해하기 쉬움 타입 추론이 필요하여 가독성이 떨어질 수 있음
유연성 제한적이며 표현에 제약이 있음 더 유연하고 빠른 프로토타이핑 가능
개발 속도 초기 개발이 느릴 수 있음 초기 개발이 빠를 수 있음
유지보수 대규모 프로젝트에서 유리 소규모 프로젝트나 스크립트에 적합
리팩토링 더 쉽고 안전함 어려울 수 있음
문서화 타입 선언이 문서 역할을 함 추가 문서화가 필요할 수 있음
학습 곡선 초보자에게 더 어려울 수 있음 초보자에게 더 쉬울 수 있음
버그 발생 컴파일 시 많은 버그 방지 가능 런타임 오류 가능성이 더 높음

 

Swift에서 사용하는 주요 자료형을 예시와 함께 표로 작성한 것

자료형 설명 예시
Int 정수 let age: Int = 30
Double 64비트 부동소수점 let pi: Double = 3.14159
Float 32비트 부동소수점 let height: Float = 175.5
Bool 참/거짓 var isStudent: Bool = true
String 문자열 let name: String = "Swift"
Character 단일 문자 let grade: Character = 'A'
Array 순서가 있는 컬렉션 var numbers: [Int] = [1, 2, 3]
Dictionary 키-값 쌍의 컬렉션 var scores: [String: Int] = ["Math": 90, "English": 85]
Set 고유한 값의 컬렉션 var fruits: Set<String> = ["Apple", "Banana", "Orange"]
Tuple 여러 값을 그룹화 let person: (String, Int) = ("John", 25)
Optional 값이 있거나 없을 수 있음 var nickname: String? = nil
Any 모든 타입 var anyValue: Any = 42
     
AnyObject 모든 클래스 타입 var anyObject: AnyObject = NSObject()

var x : Int = 10

  • 위와 같이 초깃값이 있을 경우에는 컴파일러가 타입 추론(type inference)을 하므로 데이터 타입을 명시할 필요가 없음 
//int x = 10;
var x = 10
print(type(of: x)) // 타입 추론
print(x)

오류가 난 부분이 있다면 그 이유와 해결을 제시해주는 Xcode (Fix버튼을 누르면 고쳐짐)

플랫폼의 종류

플랫폼 종류 설명 예시
운영체제 플랫폼 하드웨어와 소프트웨어 간의 인터페이스 Windows, macOS, Android, iOS
소프트웨어 개발 플랫폼 애플리케이션 개발을 위한 도구 및 환경 Java, .NET, Node.js
클라우드 플랫폼 클라우드 기반 서비스 및 인프라 제공 Amazon Web Services, Microsoft Azure, Google Cloud
소셜 미디어 플랫폼 사용자 간 소통 및 콘텐츠 공유 Facebook, Twitter, Instagram
전자상거래 플랫폼 온라인 상품 거래 및 결제 지원 Amazon, eBay, Shopify
동영상 스트리밍 플랫폼 동영상 콘텐츠 제공 및 공유 YouTube, Netflix, Twitch
게임 플랫폼 게임 개발, 배포, 플레이 환경 제공 Steam, PlayStation Network, Xbox Live
교육 플랫폼 온라인 학습 및 교육 콘텐츠 제공 Coursera, edX, Udemy
음악 스트리밍 플랫폼 음악 콘텐츠 제공 및 공유 Spotify, Apple Music, SoundCloud
결제 플랫폼 온라인 금융 거래 및 결제 처리 PayPal, Stripe, Square

 

프로그래밍 언어별로 작은따옴표(')와 큰따옴표(")의 주요 용도를 비교한 표

언어 작은 따옴표 (' ') 큰 따옴표 (" ")
Python 문자열 정의, 큰따옴표 포함 시 유용 문자열 정의, 작은따옴표 포함 시 유용
JavaScript 문자열 정의, 변수 보간 없음 문자열 정의, 변수 보간 가능
PHP 문자열 정의, 변수 보간 없음 문자열 정의, 변수 보간 가능
Java 단일 문자 정의 문자열 정의
C/C++ 단일 문자 정의 문자열 정의
SQL 문자열 값 정의 식별자(테이블명, 컬럼명 등) 정의
HTML 속성값 정의 (큰따옴표와 동일) 속성값 정의 (작은따옴표와 동일)
Swift 문자열 정의 (큰따옴표와 동일) 문자열 정의 (작은따옴표와 동일)

문자열 보간(string interpolation)

//int x = 10;
var x = 10
//print(type(of: x)) // 타입 추론
print("x = \(x)")

 

문자열 보간(string interpolation) 방법을 프로그래밍 언어별로 예를 들어 표로 작성한 것

언어 문자열 보간 방법 예시
Python f-strings (Python 3.6+) name = "Alice"
age = 30
print(f"{name} is {age} years old.")
JavaScript 템플릿 리터럴 const name = "Bob";
const age = 25;
console.log(`${name} is ${age} years old.`);
C# $ 접두사 string name = "Charlie";
int age = 35;
Console.WriteLine($"{name} is {age} years old.");
Ruby #{} 구문 name = "David"
age = 40
puts "#{name} is #{age} years old."
PHP "" 내 변수 직접 사용 $name = "Eve";
$age = 28;
echo "$name is $age years old.";
Swift $$) 구문 let name = "Frank"
let age = 45
print("$$name) is $$age) years old.")
Kotlin ${} 구문 val name = "Grace"
val age = 33
println("${name} is ${age} years old.")
Dart ${} 구문 var name = "Hank";
var age = 50;
print("$name is $age years old.");
Scala s 접두사 val name = "Ivy"
val age = 27
println(s"$name is $age years old.")
Perl "" 내 변수 직접 사용 my $name = "Jack";
my $age = 38;
print "$name is $age years old.\n";

Xcode에서 도움말을 보는 방법 : alt키를 누른 상태로 설명을 보고 싶은 단어 클릭

만약 Mac이 없다면? 검색할 때 해당 단어와 함께 swift언어로써 무슨 의미인지 검색

swift에서는 기본 자료형이 다 구조체로 되어있다.

 

참고자료 : 한성현 교수님 수업자료