공통점과 차이점
- iOS SDK를 사용
- Low Level Virtual Machine(llvm) 컴파일러 사용
Objective-C | Swift | |
앱 속도 | 런타임 코드 컴파일로 인해 속도가 느림 (C 함수 제외) |
빠른 속도 (평균 Objective-C보다 2.6배 빠름) |
컴파일 속도 | 빠름(앱 사이즈가 작음) | 느림(앱 사이즈가 큼) |
안정성 | 언어의 안정성 확보 | 꾸준히 버그가 수정되고 있음 (현재는 Swift 5.0가 최신버전) |
null 처리 | null 포인터를 사용하며 작업 중단을 유발할 수 있음 | 옵셔널 타입 사용(null 관리 용이) |
유지 보수 | 두개의 별도 파일(.h, .m) 관리 필요 | 하나의 파일(.swift)로 관리 |
구문 | 많은 기호, 선, 세미콜론, 괄호를 포함 (C언어와 유사) |
영어 구문과 비슷(가독성이 좋음) (Java와 유사) |
복잡성 | 코드양이 많고, 두 파일(.h, .m)을 연결하기 위해 많은 단계가 필요 | 같은 기능 대비 짧은 코드 |
커뮤니티 지원 | 30년간 지속된 개발자 풀 | 급성장하고 있는 지지자 그룹 |
메모리 관리 | 코코아 API 내에서만 지원되는 ARC 사용 | 모든 API에 대한 ARC 지원 |
동적 라이브러리 지원 | 동적 라이브러리 미지원 | 동적 라이브러리 지원 |
장기 전망 | Apple의 지속적인 지원 | 급성장 언어 |
C언어와의 호환성 | Bridging-Header 파일로 호환가능 | 호환 불가 |
구문 비교
- Objective-C
const int count = 10;
double price = 23.55;
NSString *firstMessage = @"Hello";
NSString *secondMessage = @"Hi There~";
NSString *message = [NSString stringWithFormat: @"%@%@", firstMessage, secondMessage];
NSLog(@"%@", message);
- Swift
let count = 10
var price = 23.55
let firstMessage = "Hello"
let secondMessage = "Hi There~"
var message = firstMessage + secondMessage
print(message)
'iOS' 카테고리의 다른 글
[iOS] 메모리 구조 및 관리(MRC, ARC) (0) | 2020.08.16 |
---|---|
[Apple Developer] 인증서 (0) | 2020.08.12 |
[Objective-C] 클래스 구조(.h 와 .m) & 메소드 (0) | 2020.08.12 |
[Objective-C] 컬랙션 클래스 NSArray, NSDictionary (0) | 2020.08.11 |
[Objective-C] 기본 클래스 NSString (0) | 2020.08.10 |