[iOS] - 1주차 : iOS vs Android, swift란? Objective-C란?, swiftUI란?, UIKit란?

dongle·2022년 11월 5일
0

iOS vs Android

개발 언어

안드로이드와 iOS 운영체제는 각각 다른 프로그래밍 언어로 프로그래밍 됩니다.
iOS 앱은 Objective-C/Swift에서 실행되며, 안드로이드 앱은 JAVA에서 실행 됩니다.

테스팅 환경

iOS 시뷸레이터와 안드로이드 시뮬레이터는 테스팅 하는데 자주 사용됩니다.

차이점
iOS 시뮬레이터가 안드로이트 시뮬레이터보다 빠르다.
안드로이드 에뮬레이터는 CPU를 포함하는 효과적인 가상 머신이다.
즉 iOS 동급 제품보다는 더 현실적이며, 실제로 iOS 시뮬레이터는 Apple 장치의 정확하고 사실적인 표현을 렌더링 하지 못하는 경우가 많다.

상호 작용

iOS와는 다르게 안드로이드는 홈, 뒤로가기, 멀티태스킹 버튼이 항상 존재합니다.
따라서 iOS의 UI를 안드로이드에 그대로 쓸 수 없으며, 각 운영체제가 제공하는 디자인 가이드에 따라 개발해야 합니다.

이 외에도 여러 차이점이 있습니다.

swift란?

애플의 iOS와 macOS를 위한 프로그래밍 언어로 2014년 6월 2일 애플 세계 개발자 회의(WWDC)에서 처음 소개된 언어 입니다. 스위프트 언어의 문법은 파이썬 언어라고 발표 초창기에 알려졌었으며, 기존의 애플 운영체제용 언어인 오브젝티브-C와 함께 사용할 목적으로 만들어졌습니다.

특징
Object-C와 마찬가지로 LLVM으로 빌드되고 같은 런타임을 공유함.

클로저, 다중 리턴 타입, 네임스페이스, 제네릭스, 타입 유추 등 오브젝티브-C에는 없었던 현대 프로그래밍 언어가 갖고 있는 기능을 많이 포함시켰음.

코드 내부에서 C나 Object-C 코드를 섞어서 프로그래밍하거나 스크립트 언어처럼 실시간으로 상호작용하며 프로그래밍 할 수도 있습니다.

그럼 Object-C란 무엇일까?

Objective - C

C 프로그래밍 언어에 스몰토크 스타일의 메시지 구문을 추가한 객체 지향 언어입니다.

현재, 애플 매킨토시의 운영 체제인 OS X과 아이폰의 운영 체제인 iOS에서 사용되고 있습니다.

Object-C는 애플의 코코아를 사용하기 위한 기본 언어이며, 원래는 넥스트의 NeXTSTEP 운영 체제에서 주 언어였습니다.

특징
C++와는 달리 다중상속을 지원하지 않으며, 그 대신 자바의 인터페이스에 해당하는 프로토콜(protocol)을 정의할 수 있음.

카테고리(category)를 통해 기존 클래스에 새로운 메소드를 추가함으로써 클래스의 기능을 확장할 수 있음.

이는 상속을 통해서만 기능을 확장할 수 있는 대다수의 객체 지향 언어와 크게 구별됨

C++나 자바 등과는 달리 객체에 대해서 완전한 동적 형 변환(dynamic typing)을 지원함

SwiftUI

최소한의 코드만으로 Swift의 성능을 사용하여 모든 Apple 플랫폼 전반에서 멋진 앱을 빌드할 수 있게 해 주는 새로운 개발 도구입니다. 어떤 Apple 기기에서나 단 하나의 도구 및 API 세트를 사용하여 모든 사용자에게 더 나은 경험을 제공할 수 있습니다.

Swift언어를 기반으로 구성한 프레임워크로 AppKit, UIKit 이렇게 구분하지 않고 인터페이스 영역까지 SwiftUI 프레임워크 하나로 모든 플랫폼에서 사용을 할 수 있습니다.

특징

  • 더 적은 코드, 더 좋은 앱
  • 레이아웃, 뷰 갱신, 접근성, 글자크기 조정 등 UIKit에서 일일이 설정해주었던 부분에서 SwiftUI에서는 직접 지정해주는 게 아니라 프레임워크에서 대신 지원해줌

UIkit

iOS 애플리케이션의 사용자 인터페이스를 구현하고 이벤트를 관리하는 프레임워크 입니다.

특징

  • 제스처 처리, 애니메이션, 그림그리기, 이미지 처리, 텍스트 처리 등 사용자 이벤트 처리를 위한 클래스를 포함함
  • 테이블뷰, 슬라이더, 버튼, 텍스트 필드, 얼럿 창 등 애플리케이션 화면을 구성하는 요소들을 포함한
  • UIKit 클래스 중 UIResponder에서 파생된 클래스나 사용자 인터페이스에 관련된 클래스는 애플리케이션의 메인 스레드(혹은 메인 디스패치 큐)에서만 사용함

Swift 공부를 시작하기 앞서 어떤 언어인지, 어떤 프레임워크가 있는지 알아보는 시간을 가졌다.
앞으로 공부가 어려울까 걱정도 되지만, 조금이라도 꾸준히 공부해 볼려고 한다!

profile
개발자를 꿈꾸는 학생입니다!

0개의 댓글

관련 채용 정보