검색

레이블이 Objective-C 언어인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Objective-C 언어인 게시물을 표시합니다. 모든 게시물 표시

2018년 4월 26일

IOS 에서 하이브리드 앱을 위한 웹뷰 만들기

환경 


  • macOS High Sierra Version 10.13.4
  • Xcode Version 9.0 ((A235)


프로젝트 생성

Xcode 툴을 사용하여 앱 개발을 위한 새로운 프로젝트를 생성한다.

1. 프로젝트 템플릿을 iOS > Application > Single View App 를 선택


2. 프로젝트 이름을 기입하고 Next 버튼을 클릭한다. 

3. 마지막으로 프로젝트를 생성할 저장소를 선택하고 생성(Create) 버튼을 클릭하면 프로젝트가 생성된다.




WebView 만들기

1. 생성된 프로젝트 화면에서 Main.storyboard 파일을 클릭한다.




2. 우측 하단의 Object Library 영역에서 WebView 선택하고 화면으로 Drag&Drop 한다. 화면의 영역에 맞게 WebView 상자를 크기를 조절한다. 


3. ViewController.h 파일을 더블 클릭하여 새로운 창에서 파일을 연다.

4. WebVew 를 클릭하여 선택하고 우클릭하여 보여지는 Web View 메뉴에서 New Referencing Outlet 클릭한 상태로 ViewController.h 창으로 드레그 한다.  


이때 보여지는 창에 이름을 입력하고 Connect 버튼을 클릭하며 WebView 가 ViewController 에 삽입된다.


ViewController.h

#import 
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@end

4. 이제 WebVew 에서 보여줄 웹페이지의 URL을 ViewController.m 파일을 수정하여 지정한다.
기존 ViewController.m 파일에 아래와 같이 viewDidAppear 함수를 추가한다.

ViewController.m 
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidAppear:(BOOL)animated{
    NSString *url = @"https://m.daum.net" ;
    
    NSURLRequest *request = [NSURLRequest requestWithURL : [NSURL URLWithString:url]];
    
    [_webView loadRequest:request];
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end

애뮬레이터에서 실행하기 

1. 이제 만들어진 앱이 잘 동작하는가를 확인하기 위하여 프로젝트 상단의 실행버튼을 클릭한다.


   
2. 화면에 보여지는 게시물을 클릭하면 아무런 반응이 없고 콘솔을 확인하면 보안 오류가 발생함을 확인할 수 있다 .


2018-04-26 13:36:01.410544+0900 MyWebViewTest[54897:13321284] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.


이문제는 Info.plist 파일에 아래의 속성 값을 추가함으로 해결할 수 있다.


    
    NSAppTransportSecurity
    
        NSAllowsArbitraryLoads
        
        NSExceptionDomains
        
            yourserver.com
            
                
                NSIncludesSubdomains
                
                
                NSTemporaryExceptionAllowsInsecureHTTPLoads
                
                
                NSTemporaryExceptionMinimumTLSVersion
                TLSv1.1
            
        
    
    
    


2010년 6월 30일

Objective-C in Windows

윈도우즈 환경에서 Objective-C 컴파일은 여러가지 방법이 있으나 여기에서는 윈도우즈에서 GCC 컴파일 환경을 제공하는 오픈소스 GNUSetup 를 사용한다. 


GNUSETUP 설치
Windows Installer (http://www.gnustep.org/experience/Windows.html) 에서 링크 순서대로 설치를 진행한다.






Hello 컴파일하기
이제 테스트를 위하여 간략하게 hello 프로그램을 만들어 컴파일해보도록 하자. 참고로 Objective-C 파일은 아무 파일명이나 써 주면 된다. 다만 뒤에 .m 확장자만 만들어 주면 된다. 일반적으로 사용되는 접미사는 아래와 같다.
  • .c : C언어 소스
  • .cc, .cpp : C++ 언어 소스
  • .h : 헤더파일
  • .m : Objective-C 소스파일
  • .mm : Objective-C++ 소스파일
  • .pl : 펄 소스 파일
  • .o : 오브젝트 파일


이제 vi 편집기를 사용하여 main.m 파일을 생성하고 아래와 같이 코딩을 작성한다



#import
int main (int argc, const char *argv[])
{
  printf ("Hello world.\n");
  return 0;
}


다음으로 gcc (GNU Objective-C) 을 사용하여 컴파일하고 생성된 hello.exe 을 실행한다.


gcc main.m -o hello -l objc


가볍게 Objective-C 언어에 공부하려고 하지만 Mac 이 없는 경우 좋은 대안이 될것이다.

2010년 6월 22일

Objective-C


Objective-C는 미국의 브래드 콕 (Brad Cox)이 1986년 처음으로 발표하였다. 이 언어는 많은 부분이 C 언어와 유사하고 스몰토크 스타일의 메시지 구문을 추가하여 만들어진 객체지향 언어이다.1988년에 넥스트사의 워크스테이션 NeXT의 사용자 인터페이스인 NextStep에 사용됨으로써 널리 알려지기 시작하였으며, 1996년 애플이 넥스트 사를 인수한 후 맥 OS X 의 코코아 애플리케이션 프레임워크의 표준 프로그래밍 언어로서 쓰이고 있다.

그림1 C언어 가계도

뛰어난 능력을 가지고, 쉽게 구할수 있음에도 불구하고 국내에는 Objective-C에 대한 자세한 입문서나 프로그래밈 가이드가 없고, 관심을 가지고 있는 분들도 적어서 많은 장점들이 알려지지 못하고 별로 쓰이지 않는 언어로 남아있었지만, 아이폰의 폭발적인 인기와 함께 국내에도 아이폰 앱 개발을 히망하는 개발자들 사이에서 관심이 높아지고 있는 추세에 있다.


실재 TIOBE Programming Community Index for June 2010 보고서에 의하면 2005년에 39 위에서 2010년에는 9 번째로 많이 사용하는 프로그래밍 언어가 되었다. (TIOBE 인텍스)






Position
Jun 2010
Position
Jun 2009
Delta in PositionProgramming LanguageRatings
Jun 2010
Delta
Jun 2009
Status
11Java18.033%-2.11%  A
22C17.809%+1.03%  A
33C++10.757%+0.16%  A
44PHP8.934%-0.74%  A
55(Visual) Basic5.868%-2.07%  A
67C#5.196%+0.66%  A
76Python4.266%-0.49%  A
89Perl3.200%-0.71%  A
945Objective-C2.469%+2.35%  A
1011Delphi2.394%+0.21%  A
118JavaScript2.191%-1.83%  A
1210Ruby2.070%-0.56%  A
1312PL/SQL0.787%-0.09%  A
1414SAS0.703%-0.06%  A
1515Pascal0.702%-0.06%  A-
1618Lisp/Scheme/Clojure0.654%+0.05%  B
1719Lua0.592%+0.04%  B
1820MATLAB0.589%+0.06%  B
1916ABAP0.577%-0.15%  B
2027PowerShell0.529%+0.23%  B



향후 전망 역시 다음의 트랜드 분석 결과을 보면 Objective C 의 2009년 이후의 급속한 상승 추세보아 "애플의 성공이 계속되는 동안에는 계속 상승세를 이어 갈 것으로" 미루워 짐작이 가능할 것 같다.