이 스레드에서는 공식 SDK를 사용하여 간단한 iPhone 앱을 작성하는 방법을 보여 드리겠습니다. 쉽게 구할 수 있습니다. 필요한 것은 다음과 같습니다.
1. Intel 기반 Mac(PowerPC에서도 작동하지만 일부 제스처 후에)
2. 아이폰 SDK. 나는 베타 2에 쓸 것이다. 최신 버전 developer.apple.com에 등록하여 얻을 수 있습니다. 베타 2는 토렌트에서 찾을 수 있습니다.

안녕하세요 하브르

모스크바에 많은 부담을 주지 않기 위해 가장 간단한 작업을 수행해 보겠습니다. 응용 프로그램에는 habr 로고만 표시됩니다. XCode 열기( 32비트모드) 새 Cocoa Touch 응용 프로그램을 만듭니다.

HelloHabr이라고 하고 데스크탑에 저장합시다.

프로젝트 생성 마법사가 이미 완료했습니다. main.m의 내용을 살펴보자.
#수입

int main(int argc, char *argv)
{
NSAutoreleasePool *pool=[초기화];
// iPhone은 가비지 수집을 사용할 수 없기 때문에 삶을 더 쉽게 만들기 위해 autorelease 풀을 사용합니다.
int retVal = UIApplicationMain(argc, argv, nil, @"HelloHabrAppDelegate");
//응용 프로그램을 시작하려면 이 함수를 호출해야 합니다. @"HelloHabrAppDelegate" - 제어가 전송될 클래스
;
retVal을 반환합니다.
}

이제 HelloHabrAppDelegate.h를 살펴보겠습니다.
#수입

그리고 HelloHabrAppDelegate.m에서:
#import "HelloHabrAppDelegate.h"
#import "MyView.h"

@implementation HelloHabrAppDelegate
//이 지시문은 컴파일할 때 를 통해 액세스하는 대신 getter "및 setters"를 입력한다는 의미입니다.
창문;
콘텐츠보기;

//UIApplication에서 위임된 함수
- (void)applicationDidFinishLaunching:(UIApplication *)application(
// 메인 윈도우 생성
self.window = [[ initWithFrame:[ 경계]] 자동 릴리스];
// 콘텐츠뷰 생성
self.contentView = [[ initWithFrame:[ applicationFrame]] 자동 릴리스];
// 우리의 contentView를 메인 창에 추가하여 표시되도록 합니다.
;
// 메인 윈도우를 보이게 한다
;
}

- (무효)dealloc(;
;
;
}

작은 수학적 부분이 끝났습니다. 응용 프로그램 작성을 시작하겠습니다. 우리는 응용 프로그램 폴더에 habr 로고를 저장합니다. 그런 다음 폴더에서 Xcode 창에 있는 프로젝트의 Resources 폴더로 드래그합니다.

이제 "UIImageView *" 유형의 새 필드 "habrView"를 MyView 클래스에 추가해 보겠습니다. MyView.h는 다음과 같습니다.
#수입

이제 MyView 클래스에서 init 및 dealloc 프로시저를 정의해 보겠습니다.
#import "MyView.h"

@implementationMyView
- (id) initWithFrame:(CGRect) 프레임 (if(self = ) (
//배경색 - 검은색
];
//Habr 로고 이미지로 새 객체 생성
UIImage *이미지 = ;
//로고를 보여줄 컴포넌트 생성
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
// 양식에 habr 로고 표시 구성 요소를 추가합니다.
;
}
자기 반환;
}

- (무효) dealloc(;
;
}

모두. 우리는 우리가 원하는 것을 컴파일, 실행 및 얻습니다.

그리고 이제 게으른 사람들을 위한 응용 프로그램을 만드는 방법입니다. Dashcode는 iPhone 및 아이팟 터치. Dashcode를 열고 RSS를 공백으로 선택한 다음 "Harbrahabr RSS" 탭(디자이너가 열림)으로 이동하여 "My RSS Feed"를 "Habrahabr RSS Feed"로 변경합니다.

실행을 클릭하고 Habr의 RSS 리더를 가져옵니다.

기본적으로 모든 것. 피드백, 소원, 제안은 댓글에서 기다리고 있습니다

업데이트:형식을 약간 수정하면 코드가 더 잘 읽히지만 이상적이지는 않음

쉽게 볼 수 있듯이 이것은 표준 "스텁"입니다. 그 임무는 함수에 의해 수행되는 응용 프로그램을 올바르게 초기화하는 것입니다. NSApplicationMain. 이 초기화(모든 애플리케이션에 공통)에는 클래스의 NSApp 객체 생성이 포함됩니다. NSApplication(보다 정확하게는 NSApp이 이 객체를 가리킵니다).

NSApplication 클래스 객체의 주요 작업 중 하나는 메인 부리 -file(사실, 응용 프로그램에 둘 이상이 있을 수 있습니다. xib -file이지만 동시에 하나, 일반적으로 MainMenu.xib가 기본 파일이며 응용 프로그램이 시작될 때 자동으로 로드됩니다.

이 경우 객체의 전체 트리와 객체 사이의 링크는 실제로 압축이 풀립니다. xib -파일. 이전 기사에서 언급했듯이 메인의 소유자는 NSApp입니다. xib -파일.

Mac OS X에서 프로그래밍의 흥미로운 기능 중 하나는 NSWindow 및 NSApplication을 기반으로 하는 매우 드문 새 클래스 생성입니다. 거의 항상 필요한 모든 작업은 위임 및 패턴을 통해 달성할 수 있습니다. 관찰자 .

응용 프로그램 작성의 핵심 GUI거짓말 잡담"컨셉 MVC(모델, 뷰, 컨트롤러) .

이 개념에 따르면(당연히 Ruby on Rails는 웹 페이지를 구축할 때 동일한 개념을 사용합니다) 데이터를 표시하는 역할을 하는 객체가 할당됩니다( 견해), 데이터를 나타내는 객체( 모델) 및 사용자와의 상호 작용을 담당하는 개체( 컨트롤러).

Mac OS X에는 이미 데이터를 표시하기 위해 미리 만들어진 많은 개체가 포함되어 있습니다(일반적으로 클래스에서 상속됨 NSView). 예쁜에 간단한 응용 프로그램특별한 모델을 만들 필요가 없습니다(비록 큰 응용 프로그램이것은 매우 편리한 것으로 판명되었습니다. 모든 비즈니스 로직이 모델에 정확히 배치되고 모델에서 크롤링되지 않습니다).

따라서 간단한 응용 프로그램에서는 일반적으로 기성품이 사용됩니다. 견해그러나 사용자와의 상호 작용을 담당하는 자체 컨트롤러 개체가 작성됩니다. 대부분의 경우 이러한 컨트롤러는 다음에서 직접 상속됩니다. NSView시스템의 강력한 위임 및 이벤트 알림 기능을 사용합니다.

다음을 생성하여 애플리케이션 생성을 시작해 보겠습니다. 사용자 인터페이스그를 위해. 이를 위해 우리는 전화 할 것입니다 인터페이스 빌더 더블 클릭프로젝트 창 오른쪽의 파일 목록에서 MainMenu.xib(영어) 파일 위에 마우스를 올려놓습니다. 시작됩니다 인터페이스 빌더, 즉시 프로젝트에서 xib 파일을 엽니다.

출시 직후 인터페이스 빌더-그리고 모든 불필요한 창을 제거하십시오. 다음으로, 인스펙터 창을 엽니다(메뉴 명령을 사용하여 도구/정보 표시) 창 속성에서 제목 계산기를 설정하고 "확대/축소(및 크기 조정)" 항목을 선택 취소합니다.

그림 4. 계산기 창 설정.

컴포넌트 팔레트에서 텍스트 입력 필드를 끌어 창의 맨 위에 배치해 보겠습니다. 그런 다음 버튼을 끌어 창의 왼쪽 하단 모서리에 놓습니다(그림 5). 버튼의 텍스트를 "0"으로 변경하고 해당 태그(필드 꼬리표:)를 0으로 변경하고 크기를 약간 줄입니다.

그림 5. 구성 요소 레이아웃.

그런 다음 메뉴에서 선택 형세명령 개체 포함그리고 그것을 위해 우리는 항목을 선택합니다 행렬. 결과적으로 NSMatrix 클래스의 객체가 생성되는데, 이는 지정된 클래스의 구성 요소의 직사각형 행렬입니다.

이제 인스펙터 창에 NSMatrix 클래스 객체의 속성이 반영됩니다.

그림 6. 버튼 블록 만들기.

그림 7. 버튼 매트릭스 속성.

따라서 3x4 크기의 버튼으로 테이블을 구성해 보겠습니다.

그림 8. 텍스트 필드 사용자 정의.

인스펙터를 사용하여 입력 필드를 설정해 보겠습니다. "Editable" 항목에서 선택 항목을 제거합니다. 이렇게 하면 이 필드에 명시적으로 텍스트를 입력할 수 없습니다. 그리고 텍스트 정렬을 오른쪽으로 설정합니다(그림 9).

그림 9. 텍스트 필드의 속성 설정.

이러한 방식으로 모든 버튼을 차례로 선택하여 매개변수를 다음과 같이 구성합니다. 숫자 중 하나를 텍스트로 설정하고(그림 10과 같이 가져오기 위해) 각 버튼에 대한 태그로 값을 표시합니다. 해당 번호(그림 11). 또한 결과로 생성되는 버튼 매트릭스를 기본 목록 대신 모드 강조 표시로 설정합니다.

그림 10. 매트릭스에서 별도의 버튼 선택.

그림 11. 매트릭스에서 단일 버튼의 속성 설정.

소위 말하는 키보드 지원을 즉시 추가할 것입니다. 키 등가물"이전 기사에서 우리가 논의했습니다. 이렇게하려면 필드를 클릭하여 키 등가(그 후 필드 주위에 파란색 프레임이 나타남) 선택하려는 키를 누릅니다. 키 등가물"ㅏ.

태그는 모든 시각적 요소에 할당할 수 있는 숫자입니다(NSView에서 상속됨). 어떤 경우에는 태그를 사용하면 프로그래머가 훨씬 쉽게 작업할 수 있습니다. 따라서 이 경우 동일한 메시지를 모든 디지털 버튼( 디지털:), 그리고 메시지 핸들러(컨트롤러에 있음)는 해당 번호를 얻기 위해 메시지를 보내는 객체에 태그를 요청하기만 하면 됩니다.

다음 단계는 2개의 추가 버튼(마지막 행의 극단적인 버튼)을 제거하여 정확히 10개의 버튼(숫자 포함)을 얻도록 하는 것입니다.

이렇게하려면 하단을 두 번 클릭하십시오. 왼쪽 버튼매트릭스와 인스펙터 창에서 "활성화됨"을 선택 해제하고 "투명함"을 선택하십시오.

이러한 작업의 결과로 왼쪽 하단 버튼이 보이지 않게 됩니다. 같은 방법으로 오른쪽 하단 버튼을 보이지 않게 합시다.

그림 12. 숫자 버튼과 C 및 CA 버튼이 있는 계산기 창.

다음 단계는 컨트롤러 클래스를 만드는 것입니다. 이렇게 하려면 개체 팔레트에서 도서관열린 섹션 개체 및 컨트롤러 NSObject 클래스의 객체인 파란색 큐브를 Main Menu.xib(영어) 창으로 드래그합니다(그림 13).

그림 13. NSObject 클래스를 기반으로 클래스 생성

인스펙터 창에서 이 개체를 선택한 후 탭을 엽니다. 신원(끝에서 두 번째). 더 나아가 현장으로 수업에서 클래스 이름 변경 NSObject계산기 컨트롤러.

그림 14. CalcController 클래스의 속성.

다음으로 버튼을 사용하여 + 섹션에서 집단 소송그리고 수업 콘센트우리 수업에 추가 계산기 컨트롤러하나 콘센트이름이 있는 텍스트, 클래스를 NSTextField로 설정하고 다음 메소드를 사용하여 - (섹션 집단 소송) - 작업:, 디지털:, 분명한:그리고 모두 지우기:.

이러한 방법 중 첫 번째( 작업:) 일부 산술 연산에 해당하는 버튼을 누르면 호출됩니다. 방법 디지털:숫자 버튼 중 하나를 누르면 호출됩니다. 메서드 할당 분명한:그리고 모두 지우기:이름에서 알 수 있습니다.

무엇을 설정한 후 콘센트"메뉴 명령을 사용하여 필요한 방법과 파일/클래스 파일 쓰기... CalcController.h 및 CalcController.m 파일을 생성해 보겠습니다.

그림 15. CalcController 클래스에 대한 파일 생성.

이렇게 하면 두 파일을 모두 생성하고 즉시 계산기 프로젝트에 추가해야 함을 지정하도록 요청하는 대화 상자가 나타납니다.

그림 16. 생성된 파일을 프로젝트에 추가하기.

그 후, 우리는 엑스코드 CalcController.h 및 CalcController.m 파일이 실제로 프로젝트에 추가되었는지 확인하십시오.

CalcController.h 파일을 열겠습니다. 이렇게 하려면 프로젝트 창의 하단에서 파일을 한 번 클릭하여 열거나(그림 17) 두 번 클릭하여 별도의 창에서 파일을 열 수 있습니다. .

그림 17. 프로젝트 창 파일 열기 CalcController.h.

CalcController.h 파일에는 전체 설명우리가 정의한 CalcController 클래스 인터페이스 빌더"이자형.

다음 목록과 같이 CalcController.h 파일을 수정해 보겠습니다.

이 스레드에서는 공식 SDK를 사용하여 간단한 iPhone 앱을 작성하는 방법을 보여 드리겠습니다. 쉽게 구할 수 있습니다. 필요한 것은 다음과 같습니다.
1. Intel 기반 Mac(PowerPC에서도 작동하지만 일부 제스처 후에)
2. 아이폰 SDK. 베타 2를 게시할 예정입니다. developer.apple.com에 가입하면 최신 버전을 다운로드할 수 있습니다. 베타 2는 토렌트에서 찾을 수 있습니다.

안녕하세요 하브르

모스크바에 많은 부담을 주지 않기 위해 가장 간단한 작업을 수행해 보겠습니다. 응용 프로그램에는 habr 로고만 표시됩니다. XCode 열기( 32비트모드) 새 Cocoa Touch 응용 프로그램을 만듭니다.

HelloHabr이라고 하고 데스크탑에 저장합시다.

프로젝트 생성 마법사가 이미 완료했습니다. main.m의 내용을 살펴보자.
#수입

int main(int argc, char *argv)
{
NSAutoreleasePool *pool=[초기화];
// iPhone은 가비지 수집을 사용할 수 없기 때문에 삶을 더 쉽게 만들기 위해 autorelease 풀을 사용합니다.
int retVal = UIApplicationMain(argc, argv, nil, @"HelloHabrAppDelegate");
//응용 프로그램을 시작하려면 이 함수를 호출해야 합니다. @"HelloHabrAppDelegate" - 제어가 전송될 클래스
;
retVal을 반환합니다.
}

이제 HelloHabrAppDelegate.h를 살펴보겠습니다.
#수입

그리고 HelloHabrAppDelegate.m에서:
#import "HelloHabrAppDelegate.h"
#import "MyView.h"

@implementation HelloHabrAppDelegate
//이 지시문은 컴파일할 때 를 통해 액세스하는 대신 getter "및 setters"를 입력한다는 의미입니다.
합성 창;
contentView를 합성하십시오.

//UIApplication에서 위임된 함수
- (void)applicationDidFinishLaunching:(UIApplication *)application(
// 메인 윈도우 생성
self.window = [[ initWithFrame:[ 경계]] 자동 릴리스];
// 콘텐츠뷰 생성
self.contentView = [[ initWithFrame:[ applicationFrame]] 자동 릴리스];
// 우리의 contentView를 메인 창에 추가하여 표시되도록 합니다.
;
// 메인 윈도우를 보이게 한다
;
}

- (무효)dealloc(;
;
;
}

작은 수학적 부분이 끝났습니다. 응용 프로그램 작성을 시작하겠습니다. 우리는 응용 프로그램 폴더에 habr 로고를 저장합니다. 그런 다음 폴더에서 Xcode 창에 있는 프로젝트의 Resources 폴더로 드래그합니다.

이제 "UIImageView *" 유형의 새 필드 "habrView"를 MyView 클래스에 추가해 보겠습니다. MyView.h는 다음과 같습니다.
#수입

이제 MyView 클래스에서 init 및 dealloc 프로시저를 정의해 보겠습니다.
#import "MyView.h"

@implementationMyView
- (id) initWithFrame:(CGRect) 프레임 (if(self = ) (
//배경색 - 검은색
];
//Habr 로고 이미지로 새 객체 생성
UIImage *이미지 = ;
//로고를 보여줄 컴포넌트 생성
self->habrView = [ initWithFrame:CGRectMake(0, 0, .width, .height)];
;
];

;
// 양식에 habr 로고 표시 구성 요소를 추가합니다.
;
}
자기 반환;
}

- (무효) dealloc(;
;
}

모두. 우리는 우리가 원하는 것을 컴파일, 실행 및 얻습니다.

그리고 이제 게으른 사람들을 위한 응용 프로그램을 만드는 방법입니다. Dashcode는 iPhone 및 iPod Touch용 웹 응용 프로그램을 만들 수 있습니다. Dashcode를 열고 RSS를 공백으로 선택하십시오. 페이지 속성 탭으로 이동하여 페이지 제목: "Harbrahabr RSS", 피드 URL: "feed://habrahabr.ru/rss/main/"을 설정합니다. 그런 다음 "Harbrahabr RSS" 탭(디자이너가 열림)으로 이동하여 "My RSS Feed"를 "Habrahabr RSS Feed"로 변경합니다.

실행을 클릭하고 Habr의 RSS 리더를 가져옵니다.

기본적으로 모든 것. 피드백, 소원, 제안은 댓글에서 기다리고 있습니다

업데이트:형식을 약간 수정하면 코드가 더 잘 읽히지만 이상적이지는 않음

Swift는 강력하고 직관적입니다. 이해할 수 있는 언어 iOS, Mac, Apple TV 및 Apple TV용 응용 프로그램을 만들 수 있는 Apple의 프로그래밍 소프트웨어 애플워치. 개발자에게 전례 없는 창의적 자유를 제공합니다. 이 간단하고 편리한 오픈 소스 언어 덕분에 흥미로운 아이디어놀라운 것을 만들기 위해.

개발자는 이미 사용 중입니다.
Swift의 놀라운 기능.

스위프트는 빠르고 효과적인 언어에 쉽게 삽입할 수 있는 실시간 응답 프로그래밍 완성된 코드오브젝티브-C. 이제 개발자는 더 안정적이고 보안 코드뿐만 아니라 시간을 절약하고 풍부한 응용 프로그램을 만들 수 있습니다.

Swift의 훌륭한 응용 프로그램입니다.사용 용이성과 실시간 응답은 VSCO가 Swift를 구축하기 위해 선택한 이유입니다. 새로운 버전 iOS용 사진 앱.

우수한 응용 프로그램,
Swift 언어로 개발되었습니다.

점점 더 많은 개발자가 애플리케이션에 Swift 코드를 포함하고 있습니다. 그리고 일부는 Swift에서 완전히 새로운 애플리케이션을 만들기도 합니다.

듀오링고 칸
아카데미 맑은 하늘 가이드

프로크리에이트 킥스타터 Eventbrite Hipmunk

생산성이 더 높습니다. 응용 프로그램이 더 좋습니다.

Swift 애플리케이션은 기대 이상입니다. 예를 들어, 일반적인 검색 알고리즘은 Swift에서 훨씬 빠릅니다.

최대 2.6 타임스 오브젝티브-C보다 빠름

최대 8.4 타임스 Python 2.7보다 빠름

깊이 우선 검색 알고리즘을 사용하여 그래프에서 찾은 10,000개의 정수*

Swift 언어 추가
커리큘럼에.

개발자들만이 Swift 언어의 잠재력을 높이 평가한 것은 아닙니다. 대학 및 기타 교육 기관에서는 프로그래밍 수업에서 Swift를 가르치고 게시합니다. 무료 코스이것은 초보자도 쉽게 기초 코딩에서 전문가 수준 코딩으로 갈 수 있음을 의미합니다.

커리큘럼에 Swift를 포함시킨 대학

  • UC 산타 크루즈
  • 풋힐 칼리지
  • 멜버른 왕립 공과 대학
  • 뮌헨 공과 대학
  • 로손 커뮤니티 칼리지
  • 맨해튼 커뮤니티 칼리지
  • 메사 커뮤니티 칼리지
  • 휴스턴 커뮤니티 칼리지
  • 중앙 피에몬테 커뮤니티 칼리지
  • 플리머스 대학교
  • 캘리포니아 폴리테크닉 대학교
  • 스탠포드 대학교
  • 노스웨스트 캔자스 기술 대학
  • 몬테레이 공과대학
  • 애버리스트위스 대학교
  • 풀세일 대학교
  • 학교 인제숩
  • 남부 감리교 대학

스위프트는 어디에나 있습니다.
그리고 이제 모든 사람에게 열려 있습니다.

Swift는 Apache 2.0 오픈 소스 라이선스에 따라 개발자, 교육자 및 학생이 무료로 사용할 수 있습니다. iOS, OS X, watchOS, tvOS 및 Linux용 코드를 컴파일할 수 있는 OS X 및 Linux 바이너리를 제공합니다. 그리고 더욱 강력한 언어로 Swift의 개발 및 개발을 가속화하기 위해 사용자가 직접 기여할 수 있는 새로운 커뮤니티를 만들었습니다. 원천빠른.

스위프트에 대해 알아보세요.

주요 책

튜토리얼 다운로드 스위프트 프로그래밍 언어 Apple Books Store에서 무료로. Swift가 프로그래밍을 더 쉽고 유연하고 재미있게 만드는 방법을 알아보세요.

엑스코드

Xcode는 다른 Mac 및 iOS 앱을 개발하기 위한 Mac 앱입니다. Xcode에는 놀라운 앱을 만드는 데 필요한 모든 도구가 있습니다. Mac App Store에서 무료로 다운로드할 수 있습니다.

개발자 웹사이트

자세히 알아보기 기술적 인 정보체크 아웃 전체 개요스위프트 언어. 최신 정보를 얻으려면 개발자 블로그를 확인하세요. 최근 소식. 당신도 가지고 있습니까 무료 액세스훌륭한 리소스: 자습서, 비디오 및 코드 예제.