본문 바로가기

iOS Dev/함께해보기

iOS개발하기 #52. UIGestureRecognizer 오늘의 주제 1. UIGestureRecognizer 사용해 보기 쉰 두번째 시간입니다.^^ 정말 오래간만의 포스팅입니다 :) 오늘은 '새벽다섯시반'님의 요청으로 포스팅을 진행해 보도록 하겠습니다. 길게 눌렀을 때 특정 동작을 할 수 있도록 구현해보고 싶다고 말씀하셨습니다. 그녀석은 바로 Gesture Rcognizer!! 그럼 알아볼까요? 스따뚜~~~~~~~~~~~~ # Gesture Recognizer란? 말 그대로 유저의 제스쳐를 인식하는 녀석입니다. 양쪽위아래로 밀기(swipe), 꾹 누르기(long press), 탭하기(tap, 여러번도 포함) 등등 많은 제스쳐를 인식할 수 있지요. 자, 그럼 그녀석을 어떻게 사용하느냐? 따라오세요~ 일단 프로젝트를 만들어야겠죠?ㅎ 네, 만듭니다. 옵션 체크된거.. 더보기
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개발하기 #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개발하기 #42. XML Parser (3) <TBXML, NSNotification, UITableViewCell> 오늘의 주제 1. XML 파싱결과 테이블에 보여주기 마흔 두 번째 시간이자 XMLParsing 마지막 시간입니다.ㅎㅎ 지난 번까지 진행했던 내용들은 잘 되셨는지요? 이번에는 이제 XMLParsing을 마무리 해보려고 합니다. 자, 긴말 필요없이 떠나 봅시다 ㅎ # NSNotification 지난 번에 '인절미후후' 님께서 블럭코딩 중에 데이터를 다른 메소드로 전달 하는 방법이 떠오르지 않아서 어려웠다고 말씀하셨는데요, 우리는 이미 배웠습니다..ㅎㅎ 객체간 데이터 전달에 관한 내용들 말예요~^^ 2012/05/24 - [iOS Dev/함께해보기] - iOS개발하기 #33. Protocol, Delegate (프로토콜, 델리게이트) 2012/05/26 - [iOS Dev/함께해보기] - iOS개발하기 #34.. 더보기
iOS개발하기 #41. XML Parser (2) <TBXML> 오늘의 주제 1. TBXML로 XML파싱 마흔 한 번째 시간입니다.^^ 지난 번에 테이블을 준비해 두었었죠? 오늘은 XML 파싱을 한 번 해보려 합니다. 본래 코코아 내에 NSXMLParser 라는 XML파싱 클래스가 존재 합니다. 그래서 그녀석으로 포스팅을 해볼까 하다가, 그녀석 보다 좋은 녀석이 있어서 소개 겸 진행해 보려고 합니다. 사용법도 훨씬 간단하고 속도도 훨씬 빠릅니다~! NSXMLParser는 처음 파싱해보는 분들은 정말 어려워 하는 경향이 있습니다. 그래서 준비했습니다. TBXML...! 오픈 라이브러리 가져다가 잘 쓰는 것도 중요합니다 ㅎㅎㅎ 저도 처음 써보는데, 일단 해 봅시다 ㅎㅎ # XML의 구조 지난 번에 예제로 쓰겠다고 했던 날씨 XML 데이터 입니다. XML은 요소(엘리먼트).. 더보기
iOS개발하기 #40. XML Parser (1) <UITableViewCell, UITableView> 오늘의 주제 1. XML 파싱을 위한 준비 2. 커스텀 테이블뷰 셀 만들기 마흔 번째 시간입니다.^^ ( *_* 벌써!!??? ) 지난 번까지는 JSON 으로 내려온 데이터를 파싱해 보았습니다. 이번에는 XML을 파싱하는 방법에 대해 알아보도록 하겠습니다. 기상청에서 내려주는 날씨데이터를 가지고 파싱을 해 보도록 할거예요. 오늘은 파싱을 위한 커스텀 테이블 준비를 해 볼게요~ 가봅시다~~~~~~~~~~~ ^0^ # 파싱을 위한 테이블 뷰 준비 우리가 파싱해 볼 기상청의 데이터 입니다. http://www.kma.go.kr/XML/weather/sfc_web_map.xml 에 접속하면 내려오는 데이터 입니다.ㅎ 요녀석을 파싱해 봅시다~! 일단 새로운 테이블 뷰 컨트롤러를 만들어 줍니다. New File.... 더보기
iOS개발하기 #39. UISearchDisplayController(5) <UIImage, UITableView Section Header> 오늘의 주제 1. 이미지 웹에서 로딩하기 2. 테이블 뷰 섹션 이름 넣기 서른 아홉번째 시간입니다.^^ 지난 번에는 스레드 관리와 네트워크 상태 감지까지 해 보았습니다. 잘 실행 되시나요? 혹여나 부족한 부분이 있다면 꼭 댓글주세요~! 오늘은 이미지를 웹에서 로딩해서 테이블 뷰에 넣어주고, 테이블 뷰에 섹션 이름 넣는 것 까지 해보려 합니다. 우리가 이미 만들어 놓은 것들이 많으니 소스를 조금만 추가하면 될거예요~ 자~! 출발! # 웹 이미지 로드 우리는 지난 번에 item을 불러올 때 책 이미지에 대한 URL을 함께 받아왔습니다. 네, 이렇게 서버에서 정보가 내려올 때, 이미지 데이터를 직접 보내주지 않고 이미지의 주소를 보내줍니다. 혹여 이미지가 필요하면 받아가라~ 그런 뜻이겠죠 ㅎ 그래서 이미지를 .. 더보기
iOS개발하기 #38. UISearchDisplayController(4) <NSThread, Reachability> 오늘의 주제 1. Thread 중지하기 2. 네트워크 상태 체크 서른 여덟번째 시간입니다.^^ 그 전에 오늘은 현충일이네요! 나라를 위하여 목숨을 내던진 우리 선조님들에게 경의를 표합니다. 진심으로 고맙습니다. 지난 번에 테이블에 파싱 결과를 뿌려주는 것을 해 보았는데요, 코드에 결점을 발견하게 되어 수정사항과 보강사항에 대하여 포스팅 합니다. 이렇게 자꾸 예외상황에 대해 코드를 추가 해 주고, 실수 한 부분에 대해서는 다시 작업을 해 주어야 겠지요..ㅋㅋㅋ 이 또한 프로젝트를 진행하는 묘미 아니겠습니까..ㅋㅋㅋ 여하튼 한 발 늦춰 가더라도 틀린 부분을 다시 짚고 넘어가기 위해 포스팅 하므로, 급한 마음 조금만 누그러뜨리시고 봐주시기 바랍니다~ 자, 그럼 가봅시다~! # Thread 중지(취소)하기 일단.. 더보기
iOS개발하기 #37. UISearchDisplayController(3) <UITableView, UITableDataSource> 오늘의 주제 1. 테이블 뷰에 파싱결과 뿌리기 서른 일곱 번째 시간입니다.^^ 지난 번에는 웹에 자료를 요청하고 JSON으로 결과를 받아 파싱하는 과정까지 해 보았습니다. 잘 실행 되셨나요? 계속해서 코드의 양이 늘어나고 어려워 지고 있습니다 +_+ 코드의 양도 많고 해야 할 것도, 처리해 줘야 할 것들도 많기 때문에 코드에 일일히 설명을 자세히 달기가 더 어려워지고 있습니다 ㅠ_ㅠ 여러분께서 부족한 부분은 질문을 주셔서 채워주셔야 합니다~! 그럼 오늘 또 차근차근 스텝을 밟아 나가 볼까요?ㅎ 렛츠고~~~~~~~~~ # 테이블뷰에 결과 띄워주기 자, 파싱된 결과를 활용해 주어야 하기 때문에 적절히 딕셔너리와 배열 포인터를 헤더에 선언해 줍니다. 변수를 만들어 줬으면 초기화와 마무리는 꼭 해주어야 하는거 .. 더보기
iOS개발하기 #36. UISearchDisplayController(2) <UISearchBar, NSThread, JSON, NSRequest> 오늘의 주제 1. UISearchBarDelegate 2. Daum Open API 3. NSThread 4. JSON parsing (JSONSerialization) 서른 여섯 번째 시간입니다.^^ 지난 번에는 계속 포스팅을 위해 이것저것 준비를 해 두었지요? 지난 번 포스팅에 계속 이어지는 포스팅 입니다~ 2012/05/30 - [iOS Dev/함께해보기] - iOS개발하기 #35. UISearchDisplayController(1) 오늘은 스레드와 리퀘스트 그리고 JSON 파싱에 대해 중점적으로 진행해 봅니다. 자~ 출발합니다~! # UISearchBar 일단, 검색바에 검색어를 입력하였을 때, 그리고 검색 버튼은 눌렀을 때 검색을 시작하려고 합니다. 그래서 검색바 델리게이트 레퍼런스로 와서 그에.. 더보기
iOS개발하기 #35. UISearchDisplayController(1) <UISearchBar, UITableView> 오늘의 주제 1. UISearchDisplayController 서른 다섯 번째 시간입니다.^^ 지난 번에까지는 객체간의 데이터 전달에 대해 알아보았습니다. 잘 알아두셔야 할 부분들일 거예요 ㅎ 오늘 부터 시작할 포스팅은 꽤나 길게 이어질 것 같습니다. 여러분께서 원하던 기능들을 많이 많이 해볼거거든요..ㅎ 제목은 UISearchDisplayController 지만 이 안에는 엄청나게 많은 내용들을 담게 될 것입니다. 요 녀석에 많은 것을 활용 해 볼 수 있는 요소들이 있거든요 ㅎ 자 일단 결론부터 말씀을 드리자면 검색결과 컨트롤러 다루기 테이블뷰 다루기 검색바 다루기 스레드 다루기 URL Request 전송 JSON 파싱 XML 파싱 여러분들께서 궁금해 할 만한 내용들을 대폭 담아 볼 예정입니다. 원래.. 더보기
iOS개발하기 #34. NSNotificationCenter (노티피케이션센터) 오늘의 주제 1. NSNotificationCenter 서른 네 번째 시간입니다.^^ 지난 번에는 델리게이트 프로토콜을 이용하여 데이터를 주고 받는 것을 해 보았습니다. 어떤가요 흥미로우신가요?ㅎ 프로토콜을 사용하여 통신하는 방법도 있지만, iOS에서는 또하나의 흥미로운 기능을 제공합니다. 바로 노티피케이션 센터라는 녀석인데요, 우리가 푸쉬 알림 받는 그 노티피케이션이 아닙니다 ㅎㅎ 그럼 일단 한 번 시작해 보도록 하겠습니다. 그 전에 딕셔너리에 대한 이해가 조금 필요로 합니다. 2012/04/20 - [Objective-C] - Objective C . 딕셔너리, 배열 ( NSDictionary, NSArray ) 자 떠나볼까요?ㅎ 고고씽~~~~~~~~~~~~ # NSNotificationCenter?.. 더보기
iOS개발하기 #33. Protocol, Delegate (프로토콜, 델리게이트) 오늘의 주제 1. Protocol 2. Delegate 만들어 보기 서른 세 번째 시간입니다.^^ 지난 번에는 유저의 응답을 받아 볼 수 있는 피커뷰에 대해 알아보았습니다~ 이번에는 프로토콜이라는 것에 대하여 알아보도록 할게요~ 잘만 사용하면 좋은 녀석입니다 ㅎ 스따뚜~~~~~~~~~~~~ # Protocol이란? 네트워크에서 프로토콜이라 함은 일종의 통신규약을 말하는데요, Objective-C에서는 약간 다른 의미로 사용됩니다. 음... 뭐 굳이 말하자면 클래스간의 통신 규약이라고도 말할 수 있겠네요 ㅎ 프로토콜은 일정한 메소드를 통하여 클래스 간에 통신을 할 수 있는 통로를 제공합니다. 어떠한 객체에서 다른 객체로 데이터나 메세지를 전달하고 싶을 때 사용할 수 있습니다. 말로는 잘 느낌이 안오시죠?ㅎ.. 더보기