항상 이런 종류의 것을 부탁 받으면 고민되는 것이 프로그램을 잘 만드느냐? 하면 그것도 아니고 (손 놓은지가 꽤 됨) 그렇다고 글 솜씨가 탁월하는가? (방문자 숫자를 보면...) 하면 그것도 아닙니다.

하지만 이렇게 요청을 들어온 것을 보면 역시 살아가는데는 '인맥'이 제일 중요하다는 생각이 들기도 하지만 사실 어떠한 인맥보다는 '등가교환법칙'에 의함이 더 큽니다. 그렇다!! '등가교환법칙'은 비지니스의 법칙을 뛰어넘어 우주의 법칙입니다. (주는 대신 뭔가를 얻기로 한 것이죠..)

하지만 바쁜 회사일에 치여서 언제 써 줄지 모르는 상황이긴 합니다. 그래도 계속 계속 미뤄둘 수 없는 일이기 때문에 일단 제 블로그에라도 초안을 올리고 그것을 다듬어서 요청하는 쪽에 올리는 방향으로 가기로 했습니다. 



프로토타입으로 빠르게 개발 가능성만 타진했던 용도로 개발 했습니다. 소스는 나중에 전부 공개될 예정인데 그래픽 리소스만 제외될 것입니다.

어려운 기술도 아니라서 쓰ㄱ
이러한 내용은 블로그로 포스팅 하기도 창피한 글입니다. 왜냐하면 너무나 많은 사람들이 당연하게 사용하고 있기 때문입니다. 그래도 굳이 적어서 남기려고 하는 것은 제가 만든 사이트 홍보 차원에서 예를 남겨야 할 것 같아서 입니다. (어허.. 항상 말하지만 그 손에 든 돌을 내려놓으시오!!)

모바일 클라우드 라는 이야기를 들어보셨습니까? (참조하기: http://blog.naver.com/java2core?Redirect=Log&logNo=90073568589)

이런 저런 이야기가 참조하는 사이트에 가 보시면 많겠지만 정말 쉽게 말하자면 그냥 '웹 서비스' 입니다. 그렇다면 그냥 웹 서비스가 왜 이슈화가 되느냐? 컴퓨팅 플랫폼이 스마트폰 이나 이동형 단말기 같이 컴퓨팅 파워가 약한 단말기 구조로 가기 때문입니다. 중앙 서버에서 서비스에 필요한 것을 전부 계산하고 단말기는 결과를 출력만 하는 것입니다.

그리고 이 때쯤에 등장하는 앱스(apps) 열풍에 대해서 그리고 과연 앞으로 무엇을 공부하는 것이 좋을까에 대해서는 예전에 제가 후배들에게 해주고 싶은 이야기로 포스팅 한게 있습니다. 읽어보기

결론적으로 이야기를 하자면 '웹 서비스'쪽을 개발하는 것이 좋다는 것입니다. 아무래도 앱스 는 애플의 인증을 받아야 하고 소스의 변경점이 발견됐을 때 다시 적용되기에 시간도 걸리고 무엇이든지 자유롭게 올릴 수 있는 것이 아니라 무조건 애플을 통해서 제품이 나와야 합니다.

이건 그냥 그렇구나 하고 넘기기에는 큰 벽이 존재합니다. "애플의 플랫폼을 이용하니까 당연한 것이 아니냐?" 라고 하시겠지만 그렇게 애플 자신들을 통해서만 만들어지길 원하니 제품이 쏟아지더라도 애플의 인력들이 관리를 해야 해서 시간이 걸립니다. 그리고 앱스가 애플의 입맛대로 추려져야 하니 이러한 것은 또한 자유로운 배포 정신에도 위배가 됩니다. (쉽게 예를 들면 포르노 제품은 잡스가 허락을 안한다고 하지요? 포르노 시장을 무시하나여!!! 이러면 제가 포르노를 즐길 것으로 여길꺼 같은 우려가 있으나.. 그렇다고 또 내가 안보냐? 또 그건 아니지만... )

위와 같은 이유 때문에 어도비의 플래쉬는 절대로 모바일 사파리에서 허용을 안시키려는 것이겠지요. 플래쉬가 자유롭게 아이폰에서 돌아갈 수 있다면  기존에 나와 있는 수많은 플래쉬 어플리케이션들이 홍수처럼 밀려들겠죠? 그런 상황하에서 앱스 시장이 과연 어떻게 될까여?

그렇기 때문에 애플이 구글 과 어도비의 적이 될 수밖에 없는지 나옵니다. 구글(모바일 클라우드)과 어도비(플래쉬)가 이끌 세상은 애플 앱스 시장의 엄청난 카운터 입니다.

이야기가 조금 옆으로 샌듯하지만 그렇기 때문에 어플리케이션을 설치할 필요 없이 편하게 접속해서 사용할 수 있는 웹 어플리케이션의 존재는 애플은 반가워 하지 않겠지만 사용자 입장에서는 항상 업데이트 된 서비스를 쓸 수 있기에 편할 수 있습니다. 이러한 웹 어플리케이션을 저는 Wapps (왭스) 라고 부릅니다.

자 그러면 편리한 사이트를 웹스로 탈바꿈 시켜서 아이폰에서 쉽게 이용하는 법을 보기로 하죠. 그 편리한 사이트는 다름이 아닌 게임으로 영어단어를 공부할 수 있는 놀라운 사이트인 (쿠.. 쿨럭)

www.DIGDIC.com

입니다. (얼음같은 인내력을 시전합니다. 20초동안 받을 데미지를 감소시킵니다!!)

다스베이더(?)



일단 제 아이팟 터치(1세대) 배경 화면 입니다. 배경은 탈옥을 해주고 Cydia 어플인 Winterboard 를 설치해줘서 배경으로 쓸 수가 있습니다.

싹수(?)가 보이는 다스베이더 꼬마지요. 포스 그립(포스로 사람 목을 조르는 기술)이 아직 안되니 실제로 곰 인형 목을 쥐고 흔들어 주는 연습을 합니다.

사파리


화면에 보이는 아이콘들중 맨 왼쪽 상단에 있는 "Safari" 를 실행해줍니다. (맥에서 진짜 불편한 것중 하나는 '그림판' 같은 프로그램이 없다는 것입니다. Viva Microsoft !!!) 그리고 주소창에 다음과 같이 입력해줍니다.


입력주소창에 digdic.com 이라고 입력해 주고 "GO" 를 눌러줍니다.

세로


짠! 하고 메인 화면이 등장했습니다. 삽하고 촛불이 인상적이군요. 라고 디자이너한테 이야기 했더니 촛불이 아니라 사전이라고 하는군요. (대체 어디가!!!)

가로


이건 가로버젼 입니다. 전 개인적으로는 세로버젼이 더 좋은거 같네요. 화면을 터치하면 다음으로 넘어갑니다.



앱스 같은 화면이 나타납니다. 상단 오른쪽에 있는 "Login" 버튼을 클릭해서 로그인 화면으로 이동합니다.


아이디 패스워드 입력하시고 로그인 하시면 됩니다. 만약 회원 가입이 안되어 있다면 회원가입 링크를 누르시고 회원 가입하시면 됩니다. 아직 회원가입은 아이폰 전용 웹 페이지가 없으니 확대 하시면서 가입 하셔야 합니다. -0-


로그인 성공했습니다. '바람의 분노' 가 접니다. (Wind Fury - 곧 질풍입니다. 타격이 제일 멋진 고양 술사의 기술이지요.) 맨 아래쪽 하단에 정중앙에 보시면 '+' 기호가 있습니다. 그것을 클릭해 주시면



이런 화면이 뜹니다. 여기서 가운데에 있는 '홈 화면에 추가' 란 버튼을 클릭합니다.



오른쪽 상단에 있는 "추가" 버튼을 클릭합니다.



홈 화면에 아이콘이 추가 됐습니다. 다음 부터 저 아이콘을 클릭하시면 바로 공부방을 이용하실 수 있습니다. 짬짬이 영어공부 열심히 하세요!!
귀차니즘의 압박으로 미뤄뒀던 아이팟 터치를 해킹했습니다. 역시 편리한 툴이 세상을 바꾸더군요.
spirit 이라는 툴입니다. 한방에 되더군요.

JailBreak 순서입니다.

1. 지금 가지고 계신 아이팟 터치/아이폰 을 3.1.3 으로 업그레이드 하시고 (기존의 어플리케이션들이 다 유지됨)
2. spirit 프로그램을 다운 받습니다. (이 포스트 아래쪽에 올려놨습니다)


http://n021102.tistory.com/ 의


3. 위처럼 설정 안해주면 에러 납니다.
4. spirit 실행
5. cydia 가 설치되어 있으니 지금까지처럼 cydia 설정해 주면 됩니다.

참조한 포스트: 펠님꺼

spirit.exe 입니다. 윈도것만 올렸습니다. 맥용은 알아서 찾으세요 -0- , 저는 맥을 사용하고 있지만 윈도우만 좋아합니다. Viva The Microsoft !!!!
UIImage 를 이용해서 화면에 출력하는데 정상적으로 출력시키는데도 화면상에서 계속해서 이미지가 반전해서 뿌려집니다. 열심히 구글링 해서 답을 알아냈습니다. 그 문제에 답을 올린 사람들하고 마음이 공유되는군요. '왜 애플은 모든것을 귀찮고도 어렵게 만드는 것일까?'

어찌됐건 해결을 했습니다.

원문보기: http://stackoverflow.com/questions/506622/cgcontextdrawimage-draws-image-upside-down-when-passed-uiimage-cgimage/511199#511199

UIImage *image = [UIImage imageNamed:@"testImage.png"];    
CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height);      

CGContextTranslateCTM(context, 0, image.size.height);
CGContextScaleCTM(context, 1.0, -1.0);

CGContextDrawImage(context, imageRect, image.CGImage);

위와 같은 식으로 코딩을 하면 반전되는 현상을 해결 할 수가 있다고 합니다. 좌표계 일치 시켜줘야 한다는 것이지요. 제일 이해가 안가는 것이. UIImage 의  drawInRect 메서드를 사용했을 경우 이미지가 반전이 되는 것이지요 ^^;

암튼 해결했습니다. 슈슝..

길지도 않고, 핵심적인 부분을 너무 잘 정리했습니다. 아이폰 개발하고 싶은데 대체 Object-C 가 뭔지 감이 안잡히는 분들에게 정말 괜찮은 핵심 요약입니다.

가서 보기

우연히 돌아다니다가 찾았는 데 정말 괜찮습니다.
저도 산전 수전 다 겪은 프로그래머 출신인지라 , 메모리 관리는 왠만하면 잘 지키는 편인데, object-c 는 자동으로 관리하는 것도 있고, 수동으로 지워줘야 하는 것도 있고, 클래스 함수들도 난립하는 터라 마구 마구 헷갈립니다.

예제로 시작하는 아이폰 개발

의 '부록' 에서 메모리 관리 팁을 설명하고 있어서 조금 정리했습니다. (부록이 참 잘 되어 있습니다..)

1. 블록 내에서는 alloc, retain, copy  의 수와 release, autorelease 의 수가 동일해야 합니다.

2.  factory 함수( 보통 class method 인 경우가 많습니다 )를 사용해 생성한 객체의 경우는 대부분 autorelease 로 반환됩니다. 따로 release 를 다시 할 필요가 없습니다.

3. 클래스의 인스턴스 변수들은 dealloc 메서드에서 다 release 해야 합니다.

이 시리즈는 항상 이런식입니다. ㅎㅎ


제가 좋아하는 Head First 시리즈 입니다. 처음 IT 기술에 접하려고 할 때, 이만한 책이 없습니다. 정말 간단한 지식만 가지고 있어도 바로 시작을 할 수 있게 해주니까요.

게다가 그 안에서 프로그램을 개발하는 방법론은 아주 훌륭한 Agile 방법론을 따르고 있습니다. 처음부터 좋은 버릇을 들이게 해주는 것이지요.

최근 몇편의 아이폰 개발 방법 책을 봤는데, 이 책은 심하게 기초적이긴 하지만 무엇부터 시작해야 할지 모르는 사람한테 아주 훌륭하게 '길'을 제공하고 있습니다.

원서로 봤습니다. 한글판이 나와 있는지는 모르겠네요. 물론 이 책도 주변 친구꺼 뺏아서 봤습니다...

출판사 책소개 보기
이 다중 뷰를 다루는 기술이 상단히 사람을 짜증나게 하는군요 -0- , 아예 인터페이스 설계를 다시 할까 생각중이긴 하지만 공부한다 치고 또 찾아 봤습니다.

요기 클릭

아주 훌륭하게 개념과 소스까지 전부 나열됐습니다. 그리고 납득이 가능하더군요. 뷰 컨트롤러 자체를 관리하는 appDelegate 에서 메시지 중재를 한다는 개념입니다.


결국 아이폰 또한 사용자 인터페이스를 신경 써야 하기 때문에, 화면 이동이 정말 중요합니다. 테이블 뷰를 쓰면 간단하지만 그걸 쓰지 않고 전환할 때, 특히나 인터페이스 빌더를 써서 편하게 만든 ViewController 간에 이동을 할 때는 여간 귀찮습니다.

그런걸 도와주기 위한 팁입니다.




Part1 이고요.




Part2 입니다.

당연히 제가 제작한 건 아닙니다..
왠만한 책들은 UITabBarController 에 대해서는 잘 다루고 있는데 , 이는 Root Controller 로 쓸만하지 세부적인 뷰에서 쓰기 적합하지 않습니다. 그래서 UITabBar 예제를 찾아보고 있었는데, 책에서는 잘 안다루더군요.

애플쪽에서 제공하는 샘플이 괜찮은 것이 있더군요.

여기클릭

전형적인 예제는 아니지만, 충분히 볼만은 하더군요. 아이폰 개발들 열심히 하세요.

+ Recent posts