티스토리 뷰
왜? 꼭! Objective-C를 알아야만하나?!
이유는 간단하다.
iOS에서 동작하는 App.을 만들기위해서는 Apple에서 제공하는 xcode(IDE)와 iOS SDK를 이용해야만 한다. 근데, iOS SDK의 대부분이 Objective-C 언어로 작성되어 있어서, 반드시, 조금이라도 알아야 된다.
본인이 처음 Objective-C를 만났을 때의 느낌은....
(당시, MFC/C/C++기반의 윈도우 개발이 주업무 였음...)
이건뭐... 외계어도 아니고... 였다.
([[UIApplication sharedApplication] delegate] 뭐 이런코드를 처음봤는데 어색하지 않다? 그러면, 타고난 iOS개발자이십니다~ ㅋㅋ)
지금은... C/C++/Objective-C/Java/Python... 등 내가 조금이라도 문법을 아는 언어중에 베스트 언어가 되었다. (짱짱짱!!)
내 느낌은 여기까지만 하고 이제 부터 Objective-C 에 대하여 알아보도록 하자.
이름부터 범상치 않은가?
Objective + C
객체지향적인 C 언어? 말그대로다 C 언어를 기반으로 해서 새롭게 추가된 문법으로 객체지향적인 프로그래밍을 가능하게 해준다.
그러면, Objective-C 가 있으면 Objective-C++ 도 있나?
있다!
실제로, 작업을 하다보면 많은 라이브러리를 다뤄보게 되는데 소스코드를 보면 C, C++, Objective-C 문법이 짬뽕으로 되어 있는것을 아주 잘! 볼 수 있다. 때문에, C/C++ 을 아는 개발자에게 Objective-C/C++ 은 빠르면 하루면 익힐 수 있다.(나는... 한 1주일은 걸린듯..)
(Objective-C/C++ 에 대한 자세한건 요기:
http://ko.wikipedia.org/wiki/%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8B%B0%EB%B8%8C-C)
그러면, 어떻게 생겼는지 보자
Objective-C 에서 선언 : +(void)doSomethingWithMan:(Human *)man;
Objective-C 에서 사용 : [Object doSomethingWithMan:man];
위 처럼 생겼다. 워... 이건뭐 C/C++ 문법하고는 너무나 다르자나!! (외계어라고 느낄법 하죠잉?)
근데, C/C++ 문법으로 대충 비슷하게 바꿔보면 아래와 같다.
C++ 에서 선언: static void Object::doSomething(const Human& man)
C++ 에서 사용: Object.doSomething(man);
암튼, 처음엔 엄청 코드 읽기가 어렵지만, 조금만 익숙해지면 Objective-C/C++ 문법이 코드 가독성이 얼마나 좋은지 알 수 있게 된다.
단, 규칙에 맞게 메소드 네이밍을 잘해야한다. 대충 하면 정말 외계어가 된다. 네이밍에 관하여 Apple 의 개발자들이 정해온 규칙이 있는데 참고해보시길!!강추!
강추하는 이유가 있다!
애플 개발자들이 위에 가이드라인에 맞춰서 iOS SDK 를 개발해 놓았고, 많은 외부 라이브러리들 또한, 위의 가이드라인에 맞춰 작성되어있기 때문에 적용 및 분석이 쉬워진다. 실무에서도 프로젝트를 진행하다보면 코딩 스타일이 많이 달라서 협업에 어려움이 많은데, 지금 시작하는 단계라면 애초에 좋은 가이드라인에 따라 연습하고 익혀가는것도 나쁘지 않다고 생각한다.(뭐.. 본인 스타일 죽어도 바꾸기 싫다면 어쩔 수 없는거고... 그러면, 같이 일하기 힘들어 지는거고... 그러면 나중에 소고기 사먹겠지...)
어떻게 쓰면 되는건데?
여기부터는 내 경험에 대한 이야기 보다는 남들이 정리 해주신 자료가 너무나도 좋기 때문에 링크를 참고하시길!
'iOS SDK' 카테고리의 다른 글
ios 라이브러리를 Framework 형태로 만들기 및 배포. (0) | 2013.03.14 |
---|---|
2. Objective-C 메모리관리 (0) | 2013.02.04 |
iOS6.0 SDK 에서의 AVPlayer와 AVAudioSession 관련 begin interruption bug!! (0) | 2012.10.16 |
iOS Core Data Progressively Migration (0) | 2011.11.25 |
Customize UITabBar in iOS5 (0) | 2011.10.21 |
- Total
- Today
- Yesterday
- objective-c
- CAD
- object-c
- AVAudioSession
- xcode
- iOS5
- C++
- UITableView
- distribution
- git hub
- AVAudioSessionDelegate
- C
- SDK
- progressively
- 애플 문서
- apns
- ARX
- beginInterruption
- ManagedObjectModel
- badgeValue
- 배포
- ios
- MFC
- setBackGroundImage
- endInterruption
- AVAudioSessionInterruptionNotification
- MappingModel
- UINavigationBar
- iPhone
- setSelectionIndicatorImage
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |