Flappy Bird 실행하기
다음은 Flappy Bird 를 swift로 실행하는 과정이다



다음 사진은 Flappy Bird 의 Swift 문법이다


Swift
https://bbiguduk.gitbook.io/swift <- Swift 공식 참조 문서
https://github.com/swift-kr/swift-style-guide-raywenderlich/blob/master/ko_style_guide.md <- Swift 스타일 가이드
다음은 정적 언어와 동적언어 의 장단점을 표로 만든것이다.
특성정적 언어동적 언어
| 특성 | 정적 | 동적 언어 |
| 타입 결정 시점 | 컴파일 시 | 런타임 시 |
| 대표적 언어 | C, C++, Java, C# | JavaScript, Python, Ruby |
| 안정성 | 높음 (컴파일 시 타입 에러 감지) | 낮음 (런타임 시 타입 에러 발생 가능) |
| 실행 속도 | 빠름 | 상대적으로 느림 |
| 개발 속도 | 상대적으로 느림 | 빠름 (타입 지정 불필요) |
| 유연성 | 낮음 | 높음 (다양한 타입 사용 가능) |
| 코드 가독성 | 높음 (타입 명시) | 낮음 (타입 추론 필요) |
| 대규모 프로젝트 적합성 | 높음 | 낮음 |
| 유지보수성 | 높음 | 상대적으로 낮음 |
| 메모리 사용 | 효율적 | 상대적으로 비효율적 |
xcode에서의 .은 xcode 자체에서 수정이 가능한 오류이다

Swift에서 변수를 선언할떄에는 데이터 타입을 명시할 필요 없음
var myNumber =10
var myNumber Int:10
x= 10 //주의 error '=' must have consistent whitespace on both sides, '=' 양쪽에 일관된 공백
공복이 양쪽에 균일하게 있어야 오류가 없다.
//int x = 10; <- 기존 c 언어 변수 선언 방식
var x : Int = 10
print(type(of: x)) //type 추론
print(x)
| 플랫폼 | 유형 설명 | 예시 |
| 인터넷 서비스 | 온라인상에서 다양한 서비스를 제공하는 플랫폼 | YouTube, Facebook, Instagram |
| 검색 엔진 | 웹상의 정보를 검색할 수 있게 해주는 플랫폼 | Google, Bing, Naver |
| 운영체제 | 하드웨어와 소프트웨어 간의 인터페이스 역할을 하는 플랫폼 | Windows, macOS, Android, iOS |
| 전자상거래 | 온라인 상에서 상품 거래를 중개하는 플랫폼 | Amazon, eBay, Coupang |
| 공유경제 | 자원을 공유하고 중개하는 플랫폼 | Airbnb, Uber, Kickstarter |
| 콘텐츠 스트리밍 | 미디어 콘텐츠를 스트리밍 방식으로 제공하는 플랫폼 | Netflix, Spotify, Disney+ |
| 클라우드 서비스 | 컴퓨팅 자원을 온라인으로 제공하는 플랫폼 | AWS, Google Cloud, Microsoft Azure |
| 소프트웨어 개발 | 개발자들이 애플리케이션을 만들 수 있는 기반을 제공하는 플랫폼 | GitHub, Unity, Unreal Engine |
| 교육 | 온라인 학습 환경을 제공하는 플랫폼 | Coursera, edX, Udemy |
| 결제 | 온라인 금융 거래를 지원하는 플랫폼 | PayPal, Stripe, Square |
정수 데이터타입 : Int
부덩 소수점 데이터 타입 : Double, Float. But, Double을 더 많이 쓴다
문자 데이터 타입 : Character
문자열 데이터 타입 : String
언어큰따옴표 (")작은따옴표 (')
| 언어 | 큰따옴표(") | 작은따옴표(') |
| Python | 문자열 표현, 여러 줄 문자열(""") | 문자열 표현 |
| JavaScript | 문자열 표현, 변수 보간 가능 | 문자열 표현, 변수 보간 불가 |
| Java | 문자열 표현 | 단일 문자 표현 |
| C++ | 문자열 표현 | 단일 문자 표현 |
| PHP | 문자열 표현, 변수 보간 가능 | 문자열 표현, 변수 보간 불가 |
| Ruby | 문자열 표현, 변수 보간 가능 | 문자열 표현, 변수 보간 불가 |
| Swift | 문자열 표현, 이스케이프 시퀀스 해석 | 문자열 표현, 원시 문자열 (이스케이프 시퀀스 무시) |
| SQL | 문자열 표현 (일부 DBMS) | 문자열 표현 (일부 DBMS) |
| HTML | 속성값 표현 | 속성값 표현 (큰따옴표와 동일) |
언어별 문자 보간 방법에 관하여
| 언어 | 문자열 보간 방법 | 예시 |
| JavaScript | 템플릿 리터럴 (백틱 사용) | `Hello, ${name}!` |
| Python | f-문자열 | f"Hello, {name}!" |
| Java (9+) | 문자열 템플릿 | "Hello, %s!".formatted(name) |
| C# | 문자열 보간 | $"Hello, {name}!" |
| Ruby | 문자열 보간 | "Hello, #{name}!" |
| PHP | 변수 확장 | "Hello, $name!" |
| Swift | 문자열 보간 | "Hello, $$name)!" |
| Kotlin | 문자열 템플릿 | "Hello, $name!" |
| Rust | 포맷 매크로 | format!("Hello, {}!", name) |
| Go | fmt.Sprintf 함수 | fmt.Sprintf("Hello, %s!", name) |
xcode에는 도움말 기능이 있는데, 그 때 alt + 클릭을 하면 도움말이 나온다.

또는 구글에 "(원하는 타입) Swift" 라고 치면 웬만하면 다 나온다.

String 은 구조체로 나눠져 있는 것을 볼 수 있다