iOS

Objective-C와 Swift 비교

빨간체리반지 2020. 8. 12. 08:04

공통점과 차이점

- 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)