본문 바로가기

Objective-C

Swift에서 Objective-C의 상수 대체제에 관하여 오늘의 주제 Objective-C의 상수와 스위프트의 상수 안녕하세요 야곰입니다.Objective-C를 쓰다가 스위프트로 넘어왔을 때 고민되었던 부분 중의 하나인 스위프트의 상수에 관해 이야기해 보려 합니다. 혼자 프로젝트를 진행하다 보면 상수의 필요성을 많이 느낄 수 없을지 모르지만, 누군가 협업을 하게 된다면, 혹은 미래 또는 과거의 나와 협업(?)을 하게 된다면 상수의 필요성을 많이 느끼게 됩니다. 바꾸면 안 되는 데이터를 실수로 바꿔서 난감했던 경험이 없나요? 혹시 그런 적이 있다면 상수의 필요성에 대해서는 많이 공감하실 것으로 생각됩니다. * 오해가 생길 소지의 표현들이 있어서 처음 발행 이후 조금 수정하였습니다. 좋은 의견 주신 과니님 고맙습니다 :) 사라진 const 사실 저는 Objecti.. 더보기
야곰이 iOS에서 자주 사용하는 라이브러리 모음 iOS 오픈 라이브러리 모음 제가 자주 사용하는 라이브러리들을 모아봤습니다. 개인 취향이나 세부목적에 쓰는 기능이 아닌 보편적으로 쓸 수 있는 기능들을 위주입니다. 누군가에게는 도움이 되면 좋겠네요 :D * [] 안에 표시된 이름은 Objective-C로 작성된 유사 라이브러리입니다. * 유틸리티 Alamofire [AFNetworking]말이 필요없는 네트워킹 라이브러리죠! Swift로 쓰여졌으며 대부분의 네트워킹 기능을 아주 멋드러지게 구현해두었습니다. 형제로는 Objective-C로 쓰여진 AFNetworking이 있습니다. https://github.com/Alamofire/Alamofirehttps://github.com/AFNetworking/AFNetworking SwiftyJSON [JSO.. 더보기
Swift에 따른 Objective-C의 새로운 기능들 Objective-C의 기능 추가 1. Nullability annotations 2. Generics 안녕하세요 야곰입니다 :) Swift 2.0이 오픈소스화 되면서 관심이 많이 쏠리고 있습니다. 그러나 기존 Objective-C 프로그래머들 사이에서는 Swift에 따라 변화되는 다양한 모습들이 부담으로 다가오기도 합니다. Swift 언어 문법과 기능들에 더 잘 맞춰주기 위하여 기존의 API들이 변경되기도 하고, Objective-C의 문법적 기능들과 키워드들이 몇몇가지 추가되기도 했습니다. 그에대해 간략히 살펴보는 시간을 가져보도록 할게요. # 해당내용은 2015년 6월 말에 작성된 내용으로, 애플에 의해 추후 변동의 여지가 충분히 있음을 미리 알립니다. # Nullability Swift는 지난 포.. 더보기
Objective C 우린 왜 굳이 오브젝티브-C를 배워야 할까? # 재미있는 언어 Objective-C 여러분들께서는 오브젝티브-C를 어떻게 생각하시나요? 언어의 역사와 배경을 아는 것이 정말 무의미해 보일지 모르겠지만, 오브젝티브-C의 탄생 배경을 살펴보면 재미난 점도 많고, 사용하면서 부딪힐 의문에 대해서도 더 많이 이해하게 될 수 있습니다. 그럼 오브젝티브-C는 어떻게 태어났는지, 왜 제대로 알고 써야 할지 생각해 볼까요? # Objective-C는 어떻게 탄생하고 발전해왔을까? 오브젝티브-C는 ‘객체 지향 프로그래밍 C언어 [Object-Oriented Programming in C, OOPC]’라는 이름으로 시작된 언어입니다. 즉, C를 객체 지향 언어로 발전시킨 것으로, 1983년에 발표되었습니다. 당시 사람들은 구조적 프로그래밍 습관에 따라 프로그래밍을 .. 더보기
iOS개발하기 #51. 실전 프로젝트. 간단한 계산기와 메모장(2) 오늘의 주제 1. 계산기 기능 넣기 2. 메모장 화면 구성 바꾸기 쉰 한 번째 시간입니다.^^ 지난 번에 만들어 놓은 계산기 아직 잘 갖고 계신가요?ㅎㅎㅎ 이제 계산기 로직을 완성해 볼 차례입니다. 아............. 지금 제가 글을 쓰고 있는 이 시간은 아직 훈련소에 가기 전이지만, 전 지금 훈련소에서 뒹굴고 있겠군요 ㅋㅋㅋㅋㅋㅋㅋㅋ 뭐, 응원의 한마디...는 볼 수 없겠지만 무탈히 돌아오도록 기도해주세요 ㅋㅋㅋㅋㅋ 2일 전인데 한달이라도 막상 가려니까 싱숭생숭 하네요 ㅋㅋㅋ 아마 들어가기 전까지도 계속 블로그 포스팅 예약을 하다 갈거 같은..ㅋㅋㅋㅋㅋㅋㅋㅋ 뭐 여튼 사설은 각설하고 시작해 봅니다~~~~~~~~~~~~~ # 계산기 기능 완성하기 일단, 지난번에 구현파일에 만들어 주었던 enum을.. 더보기
iOS개발하기 #50. 실전 프로젝트. 간단한 계산기와 메모장(1) 오늘의 주제 1. 실전 프로젝트 생성 벌써 쉰 번째 시간입니다.^^ 많이도 써왔나 보네요...ㅎㅎ 벌써 오십번 째 글이라니 +_+ 이거 한 편 쓰는데 시간이 얼마나 오래걸리는지 여러분들을 모르실거예요..ㅋㅋㅋㅋㅋㅋㅋ 이제 실전 프로젝트(?) 라고 하기는 좀 그렇지만 예제 앱을 하나 만들어 볼까해요. 물론 저는 디자인을 하지 못하기 때문에 그냥 있는 그대로의 녀석들을 쓰겠지만 말예요..ㅎㅎ 간단한 계산기랑 메모장(?) 정도를 만들어 볼까해요. 단순히 감을 익히는데에는 큰 무리가 없을 것이라고 봅니다. 스토리보드를 원하는 분들이 많이 계셔서, 간단한 앱이기도 하니까 스토리보드와 ARC를 사용하여 진행하도록 하겠습니다. iOS5.1 Xcode 4.3.3 기준입니다. 오늘의 간단 결과물입니다. 미리보기 +_+ㅋ.. 더보기
iOS개발하기 #49. 예외처리. @try, @catch, @finally 오늘의 주제 1. 예외처리 마흔 아홉번째 시간입니다.^^ 싱글턴 패턴에 대해서는 조금 익히셨나요? 그 외에도 디자인 패턴이란 것은 많이 존재합니다. 싱글턴 패턴은 아주 간단한 예에 지나지 않습니다. 디자인 패턴에 관심이 생기신다구요? 그렇다면 이제 아주 기초는 벗어나고 있다~ 라고 생각하시면 되겠습니다..ㅎㅎㅎ 물론 제가 말씀드리지 않은 것들은 정말 많지만, 저의 목표는 레퍼런스들을 나열하여 언제든 가져다 쓸 수 있는 것보다는 여러분들이 직접 원리를 알고, 개발문서를 통해 스스로 뭔가를 만들어 낼 수 있는 그런 포스팅이 되길 바라기 때문에 굳이 레퍼런스들을 다 나열하진 않았습니다. 많은 도움이 되셨는지 모르겠습니다. :) 이 기초 포스팅도 이제 막바지를 향해 달려가고 있습니다. 정말 몇 개 쓴거 같지도 .. 더보기
iOS개발하기 #48. 객체 간 자료교환 Singleton (2) 오늘의 주제 1. Singleton 패턴 사용해 보기 마흔 여덟 번째 시간입니다.^^ 지난 번에 이어서 싱글턴 패턴 사용 방법에 대해 알아보도록해요 ㅎ 일단... 뭐... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 지금 여러분들이 이 포스팅을 보고계신 시간이면 저는 논산 훈련소에 있겠네요~ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아이 좋아.............는 개뿔...... 면회 환영합니다..............는 개뿔.........ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 여튼 오늘부터는 한달동안 제가 덧글을 달아드릴 수 없게되었군요...ㅠ_ㅠ 몸 건강히 돌아오겠습니다.ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 한 달 캠프 으쌰~ 자 잡소리 때려치고~ 스따뚜~~~~~~~~~~~~ # 싱글톤 객체 활용 이제 싱글톤 객체를 사용하기 위해, 헤더를 impo.. 더보기
iOS개발하기 #47. 객체 간 자료교환 Singleton (1) 오늘의 주제 1. Singleton Pattern 마흔 일곱 번째 시간입니다.^^ 지난 번에는 파일을 저장하고 로드하는 것을 해 보았습니다. 이번에는 파일에서 로드해 온 자료를 다른 객체들과 공유하여 사용하고 싶을때 사용해 볼만한 방법을 가지고 왔습니다~ 물론 Objective-C에서만 쓰이는 방법이 아니지만, iOS 개발 할 때에도 유용하게 쓰일 수 있는 방법이라 이렇게 또 소개를 해 드립니다. 싱글톤 패턴이라고 흔히 이야기들을 하는데요, 무엇인지 한 번 알아보도록 합니다~ # 싱글톤 패턴이란? 한 프로그램에서 특정한 용도의 객체 하나를 생성해서 공용으로 사용하고 싶을 때 주로 사용하는 방법입니다. 주로 환경설정, 로그인 정보, 유저 정보 등을 한 번 객체에 생성해 두고 여러 객체에서 공유해서 데이터를.. 더보기
iOS개발하기 #46. 파일 입출력. NSFileManager 오늘의 주제 1. 딕셔너리 형태의 객체를 파일로 쓰고 읽기 마흔 여섯 번째 시간입니다.^^ 지난 두 포스팅에서는 모양새를 바꿔보는 것을 해 보았어요~ 사실상 명목이었지 어쨌든 개념적인 요소가 많았지요 ㅎㅎㅎ 이번에는 파일을 읽고 써 보는 시간을 가져보도록해요 ㅎㅎ 매번 어플리케이션이 종료되면 모든것이 다 날아가 버리면 아쉽잖아요. 뭔가 저장하고 다시 가져올 수 있는 방법, 간단한 파일 쓰고 읽기를 해 보도록 합시다~ 자, 그럼 시작해 볼까요?ㅎㅎ # 파일 입출력 자, 우선 오늘도 프로젝트 하나를 만듭니다. 지난 두 프로젝트와는 달리 이 프로젝트는 3개 ~ 4개 포스팅 동안 사용하게 될 것 같네용 호호 늘 그래왔듯이 싱글 뷰 어플리케이션으로 만들어 줍니다 ㅎㅎ 이름은 YGFileManagement 첫 실행.. 더보기
iOS개발하기 #45. UINavigationBar Customize (Category) 오늘의 주제 1. 네비게이션 바 커스터마이징 마흔 다섯번째 시간입니다.^^ 지난 번에는 메소드 재정의(오버라이드)를 활용하여 UIAlertView를 커스터마이징 해 보았습니다~ 어떠셨어요?ㅎ 이쁜 이미지로 커스터마이징 하니까 좀 더 산뜻해 지셨나요?ㅎ 오늘은 네비게이션 바를 커스터마이징 해 보겠습니다~ 잘 응용하면 원하는 이미지나 이쁜 글도 넣을 수 있구요 :) 자 그럼 출발해 볼까요?ㅎ # Navigation Bar Customize 자, 일단 새로운 프로젝트를 만들어 줍니다. Single View Application이구요~ YagomCustomNaviBar라는 이름으로 만들어 주었습니다 ㅎ 그리고 우리는 커스터마이징을 할 때 이번에는 카테고리 라는 녀석을 이용할거예요~ 어쨌든 일단 New File... 더보기
iOS Version Check 오늘의 Tip 1. iOS Version Check # iOS 버전체크하기 가끔 우리는 특정 버전에서 사용할 수 없는 메소드들을 만나게 됩니다. 그럼 지원하지 않는 버전의 기기에서 그 메소드를 호출하면 펑~ 하고 어플리케이션이 죽어버리는 사태가 발생하죠. 그래서 개발문서를 잘 보고 메소드를 사용하여야 합니다. 나도 모르는사이에 펑하고 어플리케이션이 죽어버릴 수 있으니까요 ㅎㅎㅎ 자, 그럼 버전체크하기~ 주석에 달려있듯이 아래 메소드를 사용하여 내가 적어준 버전과 같은지, 그보다 아래인지 위에인지 판단 할 수 있습니다. 자주 필요하다면 아래처럼 App-Prefix.pch 내에 매크로로 정의하여 사용하여도 편리합니다~ by yagom facebook : http://fb.yagom.net twitter : .. 더보기
iOS개발하기 #44. UIAlertView Customize (Override) 오늘의 주제 1. UIAlertView Customize 마흔 네 번째 시간입니다.^^ 정말 오랜만의 포스팅입니다~! 그동안 잘 지내셨나요?ㅎ 정말 무더위가 장난이 아니네용... 동남아 날씨 +_+ 지난 번 공지로 iOS6와 스토리보드로 출발해 보겠다고 말씀드렸는데, 아직 제가 준비가 되지 못한 관계로 오늘도 iOS5로, 스토리보드 없이 진행합니다! 자, 그럼 다시 힘찬 출발을 해 볼까요?ㅎ # UIAlertView 커스터마이징 전에 2012/05/11 - [iOS Dev/함께해보기] - iOS개발하기 #29. 경고창 (UIAlertView) 포스팅에서 AlertView에 대해서 해 보았습니다. 이번엔 요 녀석을 커스터마이징 하는 방법을 살짝 이야기 해볼까 합니다. 물론 제가 오늘 소개해 드리는 방법 외.. 더보기
iOS개발하기 #43. iOS Application Life Cycle 오늘의 주제 1. iOS 어플리케이션의 생명주기 2. ViewController의 생명주기 마흔 세번째 시간입니다.^^ 요 며칠 제 개인적으로 좀 힘든일도 있고, 빡빡한 프로젝트 일정 때문에 제대로 포스팅을 하지 못했습니다. 흙흙 아직 프로젝트가 마무리 되지는 않았지만 최대한 짬을 내 보도록 하겠습니다..ㅎ 우리 이제까지 정말 쭉쭉 달려왔습니다. 이것저것 해 보면서 많은 것을 맛 봐왔죠...ㅎ 물론 이것 저것 많이 해 보는 것도, 맛을 보고 언제 어디서 어떻게 써야할지 감을 익히는 것도 중요합니다. 그러나 더더욱 중요한 것은 통괄적인 흐름이고 기초죠. 초반에 포스팅 할 때 말씀드렸듯이 아주 기초적인 사항들은 많이 스킵하고 넘어왔습니다. 이번에는 그래서 정말 기초 하나를 같이 알아보고자 합니다. 물론 초보.. 더보기
iOS Version Check, iOS버전체크, 상태체크, 기기명 등 기기정보 가져오기 오늘의 Tip 1. 현재 기기의 정보 가져오기 # UIDevice 오늘은 현재 기기의 정보들을 가져오는 것에 대해 알아봅시다. 일단 버전별 호환성 때문에 버전체크를 가장 많이 사용을 할 텐데, 버전정보를 가져오는 메소드를 살펴봅시다. 우선 UIDevice라는 클래스가 있네요. 레퍼런스를 살펴봅시다. 프로퍼티 중에 여러가지가 있는데, 이왕이면 한 번 다 같이 알아보도록 해요 ㅎㅎ 이런식으로 정보를 가져올 수 있습니다. 특히 기기 이름은 사용자가 지정해 놓은 기기명입니다. 그게 무슨뜻이냐구요?ㅎ 설정 - 일반 - 정보에 들어가면 나오는 이름을 뜻합니다. 버전을 체크할 때 이렇게 메소드들을 직접 만들어서 하기도 하구요, 미리 컴파일된 헤더(.pch) 파일에 #define으로 넣어서 구현하기도 한답니다. 예) .. 더보기
#pragma mark - 소스코드 이쁘게 관리하기 개발하다가 소스코드가 길어지고 지저분해 지다보면 어떤 메소드가 어디에 있는지 찾아가기 굉장히 불편해지고 가독성이 떨어지게 됩니다. 그래서 소스코드를 약간 이쁘게 정리해 둘 필요가 있습니다. 습관을 들여놓으면 아주 좋아요 ㅎ #pragma mark 요녀석을 사용하면 좋은데요~ 한 번 보여드릴게요~ 코드 오른쪽 상단에 보면 바로갈 수 있는 네비게이터가 있는데요 한 번 클릭해 보시면 구현되어있는 변수들과 메소드들이 쭈욱 나열될 거예요. 그런데 영역별로 마크를 남겨주면 알아서 보기 좋게 정리해 줍니다~ 이렇게 이쁘게 깔끔하게 말이죵~ㅎㅎ 정리 되어있지 않았을 때입니다. 소스코드 정말 얼마 되지도 않는 컨트롤러인데도 자신이 원하는 메소드 한 번에 찾아가기 거의 불가능 하다고 봐야겠죠^^; 요로코롬 유용한 녀석이 .. 더보기
iOS개발하기 #33. Protocol, Delegate (프로토콜, 델리게이트) 오늘의 주제 1. Protocol 2. Delegate 만들어 보기 서른 세 번째 시간입니다.^^ 지난 번에는 유저의 응답을 받아 볼 수 있는 피커뷰에 대해 알아보았습니다~ 이번에는 프로토콜이라는 것에 대하여 알아보도록 할게요~ 잘만 사용하면 좋은 녀석입니다 ㅎ 스따뚜~~~~~~~~~~~~ # Protocol이란? 네트워크에서 프로토콜이라 함은 일종의 통신규약을 말하는데요, Objective-C에서는 약간 다른 의미로 사용됩니다. 음... 뭐 굳이 말하자면 클래스간의 통신 규약이라고도 말할 수 있겠네요 ㅎ 프로토콜은 일정한 메소드를 통하여 클래스 간에 통신을 할 수 있는 통로를 제공합니다. 어떠한 객체에서 다른 객체로 데이터나 메세지를 전달하고 싶을 때 사용할 수 있습니다. 말로는 잘 느낌이 안오시죠?ㅎ.. 더보기
iOS개발하기 #29. 경고창 (UIAlertView) 오늘의 주제 1. UIAlertView 스물 아홉번째 시간입니다.^^ 지난 번까지는 웹뷰에 대해서 알아보았습니다. 이번에는 AlertView에 대해서 알아보도록 하겠습니다. AlertView는 xib에서 생성이 되지 않고 코드로 생성을 해 주어야 합니다.ㅎ 그럼 일단 시작해 봅시다~! # UIAlertView 자, 일단 AlertView는 delegate가 없으면 무용지물입니다. 이녀석은 그냥 얼굴만 비출 뿐 아무것도 하지 않으려고 합니다. 그래서 우리는 ViewControllerForWeb에게 AlertView의 델리게이트를 해달라고 말할거예요. 자, 그리고 AlertView도 하나가 아니면 구분을 할 수 없기 때문에 태그를 넣어줄 예정이예요. 그래서 enum으로 먼저 어떻게 해줄지 정해줍니다. enu.. 더보기
iOS개발하기 #27. 웹뷰 (WebView) <1> 오늘의 주제 1. UIWebView 2. UIToolBar 스물 일곱번째 시간입니다.^^ 지난 번까지는 프로젝트를 계속 사용했는데, 이번에 새로 프로젝트를 하나 만들어 보겠습니다. 어찌되었든간 지난 번 까지 했던 내용들은 마음에 드셨는지 모르겠습니다...^^ 지금까지 해 본것들은 예제이고 앞으로도 예제를 통해 내용이 진행되니, 디자인이 이쁘지 않더라도, 지금 당장 뭐가 없어보여도 쭉 한번 따라해 보세요..^^ 그럼 어느순간 머릿속에 정리가 되고 느낌이 올 때가 있습니다. 그 때, 필요한 것들만 검색하고 취합해서 자신만의 프로젝트를 만들어 가시면 됩니다. 아직 그정도는 안온 것 같죠?ㅎ 그럼 오늘 또 새로운 세상을 향하여 한 걸음 내딛어 봅시다^^ 출발~! # UIWebView, UIToolBar UIWe.. 더보기
Objective C <11>. 딕셔너리, 배열 ( NSDictionary, NSArray ) 오늘의 주제 1. NSDictionary, NSMutableDictionary 2. NSArray, NSMutableArray 열 한번째 시간입니다.^^ 지난 번에는 상속이라는 또 하나의 중요한 개념에 대하여 알아보았습니다. 이번에는 Objective-C에서 가장 흔하고 많이 쓰이는 클래스 중에 자료를 보관할 수 있는 녀석들에 대해 알아보도록 하려고 합니다. 딕셔너리랑 배열인데요, 한 번 봅시다~ 어휴~ 봄감기 때문에 아주 죽겠네요+_+ # NSArray 배열이란??? C를 배운 분들이라면 배열을 아실겁니다 ㅎ 하지만 여기서 말하는 녀석은 메소드까지 가지고 있는 클래스 입니다. 단순한 자료형이 아니죠~ 뭐 약간의 사용개념을 보면 C의 Linked-List(연결 리스트)와 비슷하다고 생각하시면 되겠습니다~.. 더보기