iOS

🌱 What's in iOS? (Standford iOS Lecture)

녕이 2022. 5. 15. 12:02
728x90

 

 

 

📚Standford University의 iOS 강의를 들으면서 iOS의 기초에 대해서 공부해보자.
    강의 내용을 정리하면서 더 궁금한 것이나 모르겠는 것을 추가적으로 찾아서 공부한 후 함께 정리할 것이다.

 

+ 개인적으로 iOS 강의들을 꽤 들어봤지만 제일 좋았던 강의다. 앱 실습을 진행하면서 왜 이렇게 해야 하는지, 이런 오류는 어떻게 하면 좋을지 그리고 iOS는 어떻게 구성되는지 등 구체적이고 궁금했던 부분들을 모두 잘 설명해준다. 유료 iOS 앱 강의를 들었을 때는 설명도 없이 [그냥 이렇게 하면 된다]는 식이어서 머릿속에 남지도 않고 진도 따라가기 바빴는데 이 강의는 잘 설명해줄 뿐만 아니라 MVC 디자인 패턴에 맞춰서 앱을 구성한다. 너무 재미있었다. 강추합니다! 😎✨

 

 


 

 

iOS 안에는 어떤 API가 있을까?
(API: 기본적으로 iOS 앱이 동작하도록 우리가 사용하는 함수나 메소드, 클래스 같은 프로그래밍 인터페이스)

4개의 계층으로 나눌 수 있다.
  • Cocoa Touch 
  • Media
  • Core Services
  • Core OS
 

Core OS 

  • OSX Kernel : Power Management (전원 관리)
  • Mach 3.0 : Keychain Access (접근 제어)
  • BSD : Certificates
  • Sockets : File System
  • Security : Bonjour
아이폰은 UNIX에서 작동한다. Multitasking, UNIX 파일 시스템 같은 모든 것들을 가지고 있다. iOS 앱을 빌드할 때 도움이 된다. Core OS는 위에 있는 모든 것들을 포함한다. UNIX 계층에는 모바일 기기에 특화된 것들이 있는데 위의 리스트들이 그렇다고 보면 된다.
 

Core Services

  • Collections: Core Location
  • Address Book : Net Services
  • Networking : Threading
  • File Access : Preferences
  • SQLite: URL Utilities
가급적이면 객체지향 프로그래밍을 해야 하는데, UNIX 위에는 객체지향언어로 작성된 계층이 있다.
→ Networking, MultiThread, Preferences, SQL, ... 객체 지향 API를 사용해서 이런 것들을 할 수 있다.
객체 지향 계층의 일종으로, UI와는 관련없고 베이스가 되는 계층이라고 생각하면 된다.
 

MultiMedia

  • Core Audio : JPEG, PNG, TIFF
  • OpenAL : PDF
  • Audio Mixing : Quartz(2D)
  • Audio Recording : Core Animation
  • Video Playback : OpenGL ES
중요한 계층. 비디오와 같은 모든 종류의 오디오 프레임워크를 담고 있다. 
 

Cocoa Touch

: 가장 많은 시간을 보낼 계층
  • Multi-Touch : Alerts
  • Core Motion : Web View
  • View Hierarchy : Map Kit
  • Localization : Image Picker
  • Controls : Camera
 
UI를 만들기 위한 객체 지향 API. UI는 화면에 보이는 Button, Slider만 해당하는 것이 아니다. 
예를 들면, 휴대폰을 흔들면 무엇을 하게 할지나 휴대폰의 가로/세로 방향을 사용하는 것, 애니메이션도 포함한다.
추가적으로 앱 개발에 있어서 정말 중요한 것이 있는데, 바로 디자인 전략 혹은 디자인 방법론 → MVC
다음 강의에서 MVC가 무엇이고 어떻게 iOS 개발에 적용할지 배워보자. 

 

 

 

 

 

 

 

728x90