iOS개요

동그라미·2024년 11월 14일
8
post-thumbnail

내일만 버티면 금요일이다.이걸 보는 모두 화이팅..

iOS 개발에 대한 기본적인 이해

  • 애플은 기기에 따른 다양한 운영체제들을 지원 중.

  • (아이폰 - iOS), (맥북 - macOS), (애플워치 - watchOS)

  • (애플 TV - tvOS), (비전 pro - visionOS)

  • 모두 Objective-C, Swift로 개발 가능.

  • iOS 개발을 하기 위해서는 반드시 macOS 기반으로 개발.

  • iOS 개발자가 된다는 건, 개발뿐만 아니라 애플이 제공하는 기기와 운영체제들에 대한 깊은 이해를 가지게 된다는 것.

  • 앱을 출시하기 위해서는 앱스토어 심사과정 필요.

  • HIG (애플의 앱 디자인 가이드) 등 애플의 철학 이해 필요.

  • 나아가서는 iOS 와 macOS 버전에 따른 변화 파악.
    링크텍스트
    링크텍스트
    들어가지마세요. 책임안져요.

  • 네이티브 앱

    각 OS 환경에 최적화된 네이티브 언어로 개발된 앱.

    -Swift로 개발한 iOS 앱.
    -Kotlin으로 개발한 Android 앱.

    ex) 카카오, 쿠팡, 당근 마켓, 티맵, 쏘카, 스노우 등

  • 하이브리드 앱

    Android, iOS 플랫폼 모두 돌아가도록 개발한 앱.

    -React Native, JavaScript로 개발.
    -Flutter - Dart로 개발.

    ex) 페이스북, 인스타그램 등

  • 웹 앱

    웹 기술을 사용해 웹 사이트를 모바일 앱 형태로 개발.

    ex) 네이버, 크롬 등

    🙋🏻‍♂️ Android, iOS 둘 다 가능한 하이브리드 앱개발이 네이티브 앱개발보다 무조건 좋은 거 아닌가요?

→ 🙅🏻‍♂️ 각각의 장단점이 존재합니다.

하이브리드 앱은 Android, iOS 앱에서 모두 돌아가도록 한 번에 개발을 할 수 있지만, 이를 다른 말로 옮겨보면, 두 운영체제를 동시에 관통하는 일반적인 코드를 작성하게 되기 때문에, 반대로 각각의 고유한 특성을 활용하는 데에는 한계가 있다는 것을 의미.

ex1) 카메라 기능을 사용하는 SNOW 같은 앱을 개발한다면?

안드로이드 폰의 카메라와 아이폰의 카메라는 근본적으로 다를 수밖에 없기 때문에, 하이브리드 앱으로는 각 카메라 하드웨어의 깊은 곳까지 파고드는 기능을 사용하는 데에는 한계 존재.

ex2) 기기의 GPS 기능을 자주 활용하는 Tmap 같은 네비게이션 앱을 개발한다면?

하이브리드 앱보다 네이티브 앱이 플랫폼 친화적이기 때문에 GPS 활용 수행 능력이 좋음.

서버 개발, 안드로이드 개발과의 비교

  • 네모의 앱 로그인 기능을 구현한다고 했을 때.
    • 서버: 데이터베이스에 유저 정보를 저장. 유저가 아이디와 비밀번호를 입력해서 로그인 요청을 했을 때 정합성 파악.
    • iOS: 로그인 페이지의 텍스트 뷰, 버튼 구현. 유저가 입력한 아이디와 비밀번호를 가지고 서버에 로그인 요청. 유저 로그인 정보 기기에 저장.
    • Android: 같은 내용을 Kotlin으로 구현.

서버 개발자는 앱스토어의 심사 개념이라든지, 애플의 디자인 철학이 어떻게 된다든지 이런 건 자세하게 몰라도 됨.

안드로이드 개발자도 마찬가지. 각 개발자는 각자의 영역에 대해서 집중.

iOS 개발자로 회사에 들어간다라는건 이런 부분들을 맡아서 전문성 있게 잘 해내준다는 걸 의미.

효율적인 공부 방법

  • 개발 입문 단계에서는 검색으로 해결 못하는 것이 없음. 반박시 죄송합니다.
  • Google 과 StackOverflow를 활용.
  • 검색 키워드에 “iOS”보단 “Swift”를 붙이는 게 좋음.
  • 뭔가 동작을 잘 안 할 때 “issue” or “not work” 검색.
  • 키워드 끝에 “doc”을 붙이면 관련 애플 공식 문서 노출.
    링크텍스트

앱에서 버튼을 구현할 일이 생겼다. 근데 나는 아무것도 할 줄 모른다.

  • CASE 1
    UIButton 관련 문서를 정독하고, 관련 서적 찾아 UIButton의 모든 속성들에 대해 공부한 뒤 코드를 작성.
    (BackgroundColor, Title Color, Button State, 테두리 만드는 법, shadow 등 등 너무 많음.)
  • CASE 2
    구글에 “Swift 버튼 구현” 검색하고 따라 해본 뒤 직접 해보면서 이해.

→ CASE 2가 더 효율적. 직접 코드를 작성하시고 부딪혀보시면서 몸으로 느끼면서 공부하는 것이 효율적.

CS 공부. 중요한가요?

  • CS 공부, 중요하긴 중요하다.
  • 하지만 지금 당장 몰라도 충분히 iOS 개발을 할 수 있다.
  • 구글에 “개발자 CS 면접 준비”라고 검색하면 좋은 자료들 多.
  • iOS 개발자는 운영체제, 자료구조 > 네트워크 > 그 외 순으로 중요.
  • 전공서 사서 공부하기 X.

다 알면 좋지만, 현재로써는 다 알기보다는 중요도에 맞춰서 하는걸 추천.
데이터 베이스가 서버를 공부할 경우 추천하지만, iOS는 비교적 중요도가 낮아서 오히려 운영체제(메모리를 관리하는 방법), 자료구조(데이터 다루는 기본적 구조)를 공부하면 좋다.

profile
맨날 최선을 다하지는 마러라. 피곤해서 못산다.

3개의 댓글

comment-user-thumbnail
2024년 11월 14일

사진이랑 개념들을 구분해서 적으니까 너무 보기 좋고
내용도 알찬거 같아요!

수고하셨습니다!

1개의 답글
comment-user-thumbnail
2024년 11월 14일

같이 메모리구조 자료구조 공부하자요 ^-^ 아 신.나.

답글 달기