검색결과 리스트
programmer/IPhone 개발에 해당되는 글 20건
- 2011/10/26 [링크]iOS5에 내장된 Twitter.framework 사용하기
- 2011/04/21 오픈소스 모음 링크들입니다.
- 2011/04/14 Xcode 4 Iphone Error : putpkt: write failed: Broken pipe. (2)
- 2011/03/28 IOS 앱을 Mac 앱으로 변환 할일이 있을때..
- 2011/03/18 복사하기 붙여넣기~ ㅎㅎㅎ
- 2011/02/16 Objective-C 기초
- 2011/02/15 인트로 페이지를 추가합시다.
- 2011/01/29 #12 XCode 단축키 점령기
- 2011/01/27 $08. 탭바와 피커
- 2011/01/13 #11 Delegation(위임)에 대해서 알아봅시다.
글
iOS5가 업데이트 되면서... 다양한 기능들이 추가 되었다...
내가 알기로는 대략 200 여 가지 기능이 추가 된것으로 알고 있지롱...
iPhone 4GS 가 나와서 .. 5G를 기대한 전세계인들에 혹독한.. 평을 받고, 주식이 떨어지는
우여곡절.. 결국 스티븐 잡스가 떠나고... 마지막 유작이라는 평을 받으며.. 인기 급상승 중인...
암튼 요즘 삼성과의 특허분쟁으로 전세계가 떠들석 하구...
seri 라는 앱도 인기 폭발(국내에는 내년 3월에 한국어 인식되는것이 나온다고 하던데 모르겠다..)
다른 내용은 아니고 오늘은 iOS5 에서 트위터를 본격적으로 지원하는 내용의 링크를 걸어 본다.
우선 사내 개발중인 프로젝트상에서는 트위터 보단 페이스북 지원이 더 필요한 건 사실이지만;;;
곧 .. 나오지 않을까? 글쎄....
iOS5에 내장된 Twitter.framework 사용하기
설정
트랙백
댓글
글
<TCP, UDP Socket Class 라이브러리>
GDataXML :
http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/ (소스)
http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml (해설)
TBXML : (read only, XPath 미지원)
http://www.tbxml.co.uk/TBXML/TBXML_Free.html
TouchXML : (read only, XPath 지원)
- 다양한 UI 구현
- 테이블뷰셀 커스터마이징
- HTTP GET/POST 요청
- XML 파싱
- 사진 앨범, 카메라, 지도 이미지 접근
- 맵뷰 및 위치정보
- 푸시 노티피케이션
<google toolbox>
http://code.google.com/p/google-toolbox-for-mac/
<이미지 프로세싱>
http://code.google.com/p/simple-iphone-image-processing/
설정
트랙백
댓글
글
잘 실행되던 프로그램이 엉뚱한 에러를 토해내며.. 실행이 안되는 것이다.
Simulator 에서는 잘되는데.. 기기에서는 안된다는;;
결국 구글링을 통해 아래와 같은 답변을 찾긴 했지만...
정답은 아이폰을 껐다 켜라!!! 였다;;
흐미..
If you get the error message ” putpkt: write failed: Broken pipe.” while compiling your iphone or ipad device, try doing this to resolve the issue.
a) quit Xcode (and the GDB it is running)
b) unplug device
c) delete app from device (hold icon until the ‘X’ appears)
d) turn off device
e) turn on device
f) plug in device (if itunes wants to sync, let it finish)
g) launch Xcode
It will clean your memory and give you a clean slate so Xcode can load your device with the latest build.
설정
트랙백
댓글
글
카멜레온 프로젝트 사이트 : http://chameleonproject.org/
2008년 앱스토어가 열린 이래, 개발자들은 아이폰에서 구현한 멋진 기능을 맥에서도 구현할 방법을 찾아 왔었다. 그리고 2010년, 맥 앱스토어가 열리자 완전히 새로운 개발자 그룹이 iOS 앱을 맥으로 포팅시키는 방법을 최초로 알아보기 시작하였다. 유명 개발자 두 명이 iOS 앱을 맥으로 더 간단하게 포팅하기 위한 오픈소스 프로젝트, 카멜레온(Chameleon)을 만든 것이다.
카멜레온 프로젝트를 보면 션 헤버(Sean Heber)와 크레이그 호켄베리(Craig Hockenberry)를 찾으실 수 있다. Iconfactory의 개발자들이다. 이 둘은 카멜레온을 만든 이유로, Twitterrific for the Mac의 최신 버전을 예로 들었다. Twitterrific for iOS의 유명 기능을 많이 들여왔기 때문이다. 프로젝트 페이지에 따르면, Iconfactory는 코드를 iOS에서 맥으로 들여올 때 코드 중 25%만 사용하였지만, iOS UIKit을 새로운 프레임웍으로 옮기자 그 사용도가 90%로 올라섰다. 이 새로운 프레임웍이 카멜레온이다.
헤버와 호켄베리는 UIKIt을 데스크톱 환경으로 포팅시킬 때, 멀티터치 이벤트와 스크롤링의 비일관성 등 여러 가지 어려운 사항이 있다고 지적한다. 호켄베리의 말이다. "카멜레온은 만병통치약이 아닙니다. 물론 iOS 앱을 재컴파일만 해서 맥에서 마술처럼 돌아가게 할 수 있지만, 그런 것은 권장하지 않아요. 애플은 앱스토어의 앱의 모양과 돌아가는 것이 맥, iOS 동일하기를 바라죠."
iOS에서 강조하던 것 중 절대로 애플이 해결하지 않는 사항들이 몇 가지 있었다. 그래서 팀은 9개월 동안 안정적인 대체제를 작업하였다. 카멜레온은 UIKit의 대체품이라 불리지만, 사실 iOS 앱을 맥에서 돌아가게 하기 위해 필요한 것은 그것 뿐이다. 수상한 코드는 없으며, 애플과 불화를 일으킬만한 코드도 없다. 카멜레온 사이트에 따르면 이러하다. "이 새로운 프레임웍은 애플이 iOS용으로 해 놓은 것을 클린 룸으로 구현시켰습니다. 애플 문서에 기반하는 코드로 만들었으며, 프라이빗 API나 그 외 맥 앱스토어가 허용하지 않는 기술로 만들지 않았습니다."
하지만 앞으로 애플이 UIKit에 대한 문제를 해결하려 하지 않을까? 그렇다면 카멜레온과 같은 것을 어째서 만드는가? 카멜레온 팀에 따르면 이렇다. "애플의 재능 있는 엔지니어들은 분명 이러한 장애물을 극복해낼 것입니다만, 그들이 현재 초점을 기울이고 있는 부분이 미래임은 분명합니다. 앞으로 30년은 맥오에스텐이 아니라 iOS에 미래가 있기 때문입니다." (지난 여름 수많은 iOS와 맥 개발자들이 본지에 결국은 iOS가 맥오에스텐을 삼키리라 보고 있다는 말을 한 적은 있지만, 가까운 장래에 그런 일이 일어나지는 않을 것이다.
What Apple says still goes
그럼에도 불구하고 헤버와 호켄베리는 애플 쪽 상황이 변화할 수 있으며, 카멜레온 개발자들도 거기에 동의하리라는 점을 인정하였다. "카멜레온과 같은 툴에 관심가진 개발자들이 얼마나 많은지 알게 되면 애플이 정책을 당연히 바꿀 수 있겠죠. 제일브레이크 SDK가 유명해지니까 오리지날 아이폰 SDK가 나오는 속도도 빨라진 것이리라 생각하잖습니까? 역사가 반복되면 정말 좋을 겁니다."하지만 카멜레온 프레임웍에 나타나지 않을 것이 있다. 안드로이드나 윈도폰 7 지원이다. 카멜레온은 애플의 Core Animation 기술에 의존하고 있으며, 애플이 만약 자신의 지적재산권을 써드파티가 마음대로 활용하는 것을 옳지 않다고 결정내릴 경우, 카멜레온 팀은 카멜레온을 끌어내릴 수밖에 없다. 어차피 그것으로 돈을 버는 것도 아니다. 비록 프로젝트 기부금을 받고는 있지만($250에 T-셔츠 판매, $500에 T-셔츠와 아이콘 번들 판매 통한 기부이다), 두 개발자들의 주된 동기가 단순히 다른 개발자들을 도와서 일을 더 좋게, 더 빠르게 할 수 있도록 돕는 것 뿐임은 확실하다. 호켄베리의 말이다.
"T-셔츠 기부금으로 프로젝트를 더 잘 관리할 수 있도록 할 수 있기를 바랍니다. 이 코드를 다른 개발자들에게 라이센스하는 것도 생각해 본 적이 있지만, 하지 않기로 하였어요. 카멜레온 프로젝트는 공개 협력으로 이뤄질 것이며, 개발자들이 애플이 발명한 코드를 사용하는데 거기에서 돈을 받는 것은 좋은 아이디어가 아니에요."
하지만 이 프로젝트는 아직 초창기 상태이며, 호켄베리는 더 많은 개발자들이 카멜레온 프로젝트를 도와주기 바라고 있다. 그의 말이다. "카멜레온 프로젝트의 문서화가 시급합니다. 코드는 물론 개발자들이 카멜레온이 어떻게 돌아가는가를 알아야 하기 때문이죠. iOS 앱을 맥 환경으로 적응시키는 포팅 가이드도 될 것입니다. 자기 제품에 대해 새로운 시장이 생기는 것이니까, 우리가 하는 일을 기뻐하는 개발자들이 많이 있어요. 시간과 노력이 좀 더 있으면, 훌륭한 iOS 앱이 맥에서도 훌륭한 앱이 될 것입니다."
설정
트랙백
댓글
글
네이버 맥부기 에서 퍼온 글입니다.
자주 사용하는 것들을 이렇게 기재해 놓고, 복사해서 붙여 넣기하라고 정리 한것 같은데.... 귀찮으면.. 이렇게 하시옵소서
=============================================================
버튼 (viewDidLoad)
=============================================================
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(80, 50, 150, 100)];
[self.view addSubview:button];
[button setTitle:@"자동차" forState:UIControlStateNormal];
[button addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];
//이벤트사용시
ex) window-based에서 버튼생성시
UIButton *button=[[UIButton alloc]initWithFrame:CGRectMake(47, 362, 60, 35)];
//[[UIButton buttonWithType:UIButtonTypeCustom]retain];
[button.titleLabel setTextColor:[UIColor blackColor]];
[button setTitle:@"자동차" forState:UIControlStateNormal];
button.titleLabel.textColor = [UIColor blackColor];
[self.view addSubview:button];
=============================================================
레이블(viewDidLoad)
=============================================================
UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(20, 30, 100, 150)];
label.text = @"텍스트";
[self.view addSubview:label];
[label release];
=============================================================
뷰(viewDidLoad)
=============================================================
UIView *view1=[[UIView alloc]initWithFrame:CGRectMake( 0, 0,300,400)];
view1.backgroundColor=[UIColor redColor];
[self.view addSubview:view1];
=============================================================
alertview =>프로토콜 <UIAlertViewDelegate>적용
=============================================================
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"내가만든것"
message:@"조심해" delegate:self cancelButtonTitle:@"확인" otherButtonTitles:@"취소",nil];
//=>메서드에 써줌
[alert show];
[alert release];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if(buttonIndex == 0)
[label setText:@"확인을 누르셨습니다"];
else
[label setText:@"취소를 누르셨습니다"];
}
=============================================================
ActionSheet =>프로토콜<UIActionSheetDelegate>적용
=============================================================
-(void)click2 {
NSLog(@"두번째 버튼을 누르셨습니다");
UIActionSheet *action = [[UIActionSheet alloc]initWithTitle:@"다이얼로그" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:@"확인", @"취소", @"재시도", nil];
[action showInView:self.view];
[action release];
}
-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{
if(buttonIndex==0)
label.text=@"확인";
else if(buttonIndex ==1)
label.text =@"cancel";
else
label.text =@"재시도";
}
=============================================================
이미지뷰 생성(loadView)
=============================================================
[super loadView];
UIImage *img = [UIImage imageNamed: @"image2.png"]; // 불러올 이미지 파일 가져옴
UIImageView *imageView = [[UIImageView alloc] initWithImage:img]; // 이미지 파일을 뷰에 붙임
[imageView setUserInteractionEnabled:YES]; // 이미지뷰가 인터렉션 할 수 있게
[img release];
self.view = imageView; // 이미지뷰를 현재 뷰에 붙임
[imageView release];
=============================================================
스크롤뷰 생성해서 이미지출력 =>프로토콜<UIScrollViewDelegate>적용
=============================================================
UIImage *img = [UIImage imageNamed: @"image2.png"]; // 불러올 이미지 파일 가져옴
UIImageView *imageView = [[UIImageView alloc] initWithImage:img]; // 이미지 파일을 뷰에 붙임
[imageView setUserInteractionEnabled:YES]; // 이미지뷰가 인터렉션 할 수 있게
CGSize imgSize = [img size]; // 현재 불러온 이미지의 크기 확인
[img release];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:frame]; // 스크롤뷰 생성
[scrollView setScrollEnabled:YES]; // 스크롤뷰 스크롤 가능하게
[scrollView setContentSize:imgSize]; // 스크롤뷰의 크기 설정
[scrollView addSubView:imageView]; // 위에서 만든 이미지뷰를 스크롤뷰에 올림
[imageView release];// 이미지뷰 없앰 (다 사용했으므로...)
self.view=scrollView;
_imageView=imageView;//인스턴스 멤버변수쓰는공간에 "UIImageView *_imageView;"만듬 =>확대/축소를한 출력이미지를 _imageView에 넣음
[scrollView setMaximumzoomScale:2.0f]; // 스크롤뷰의 최대 확대 크기 지정
[scrollView setMinimumzoomScale:0.5f]; // 스크롤뷰의 최소 축소 크기 지정
[scrollView setDelegate:self]; // 델리게이트 설정
// 스크롤뷰를 현재 뷰에 붙임
[scrollView release];
-------------------------------------------
// 이 메서드는 줌을 사용할 뷰를 반환해야 합니다
- (UIView *)viewForZoomingInScrollView:(UIScrollView *) scrollView
//확대축소관련 메서드 =>델리게이트를 꼭지정해야함
{
return _imageView;
}
Ø//-(void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
//줌을 한 이 후의 동작에 대해서 지정해 줄 수 있습니다.
=============================================================
view (loadView)
=============================================================
UIScreen *screen = [UIScreen mainScreen]; // 자기 자신(MyUIView) 스크린 생성
CGRect frame = [screen applicationFrame] ;
// 그릴 스크린의 프레임 얻기 bounds 는 전체 사이즈, applicationFrame은 어플리케이션 사이즈
UIView *myUIView = [[UIView alloc] initWithFrame:frame]; // 프레임 크기에 MyUIView영역초기화
myUIView.backgroundColor = [UIColor blueColor]; // MyUIView의 배경색 설정
self.view = myUIView; // 현재의 뷰 연결, 화면에 설정한 뷰 나타남
[myUIView release];
=============================================================
3G 인지 Wifi 인지??
Resources Group에 ADD - Existing Frameworks...로
SystemConfiguration.framework를 추가.
=============================================================
#import <SystemConfiguration/SystemConfiguration.h>
#import <netinet/in.h>
@implementation NetDevTestViewController
-(BOOL)isNetworkReachable{
struct sockaddr_in zeroAddr;
bzero(&zeroAddr, sizeof(zeroAddr));
zeroAddr.sin_len = sizeof(zeroAddr);
zeroAddr.sin_family = AF_INET;
SCNetworkReachabilityRef target = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddr);
SCNetworkReachabilityFlags flag;
SCNetworkReachabilityGetFlags(target, &flag);
if(flag & kSCNetworkFlagsReachable){
return YES;
}else {
return NO;
}
}
-(BOOL)isCellNetwork{
struct sockaddr_in zeroAddr;
bzero(&zeroAddr, sizeof(zeroAddr));
zeroAddr.sin_len = sizeof(zeroAddr);
zeroAddr.sin_family = AF_INET;
SCNetworkReachabilityRef target = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddr);
SCNetworkReachabilityFlags flag;
SCNetworkReachabilityGetFlags(target, &flag);
if(flag & kSCNetworkReachabilityFlagsIsWWAN){
return YES;
}else {
return NO;
}
}
설정
트랙백
댓글
글
http://cafe.naver.com/mcbugi/71571
http://cafe.naver.com/mcbugi/71591
설정
트랙백
댓글
글
설정
트랙백
댓글
글
설정
트랙백
댓글
글
설정
트랙백
댓글
글
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
// Override point for customization after application launch.
// Add the view controller's view to the window and display.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
return YES;
}
위 코드는 XXXAppDelegate.m 파일에 일부다.
윈도우에 하나의 View를 추가하고, 그 윈도우를 화면에 보여주는 내용이다.
이와 같이 XXXAppDelegate.m 파일는 해당 어플의 Delegate 메시지를 처리하는 코드들이 있으며, 현재는 없지만 필요한 Delegate메시지 처리 코드를 추가 할 수도 있다.
- (void)dealloc {
[viewController release];
[window release];
[super dealloc];
}
추가적으로 프로그램이 종료될때는 dealloc 메시지를 전달한다.
여기서는 메모리를 해제하는 코드들이 있게 되는데 delegate 객체에서는 응용 프로그램이 위임하는 각종 이벤트를 방아서 처리하게 된다.
RECENT COMMENT