2011년 10월 31일 월요일

Xcode 4 에서 SVN 사용할 때 문제 해결


MacBook-Air:~ 이용자폴더$ svn ls svn://url/repository
Authentication realm: My First Repository
Password for '이용자폴더':
Authentication realm: My First Repository
Username: xxxxx
Password for 'xxxxx':
svn: URL 'svn://url/repository' non-existent in that revision
Ahn-Chang-Kiui-MacBook-Air:~ 이용자폴더$

2011년 10월 20일 목요일

[Android] 갤럭시탭을 위해 레이아웃 맞추기 [출처] [Android] 갤럭시탭을 위해 레이아웃 맞추기|작성자 브리츠













위에서 말한 내용처럼 모든 단위는 dp(간격, 크기), sp(폰트 사이즈) 로 개발합니다.



3. 레이아웃은 Linearlayout 보다 Relativelayout 이 더 좋다고 합니다.
(그러나 대부분이 Linearlayout으로는 다 구현 가능하지만, 안될때에는 Relativelayout으로 바꾸어보자. 사실 Linear를 여러개 겹쳐 쓰는게 가장 쉽긴 합니다^^)



4 위젯의 width는 fill_parent로 정하고 그대신 layout_weight 를 주어 가중치를 조절하여 화면에 배치합니다.
(이것 역시 직접 50dp 같이 숫자로 주어도 무방하나 간혹 깨지는 경우나 만족하지 못하는 구성이 나올때 사용해봅니다.)




5. 지금까지 해본 결과 갤럭시탭 해상도 전용의 폴더를 두어 따로 관리하는게 가장 좋습니다!

res 폴더안에 기존에 drawable-hdpi 폴더와 layout 폴더이외에 새로 갤럭시 탭 용의

drawable-hdpi-1024x600 폴더와 layout-1024x600 폴더를 생성하여 필요한 리소스를 넣으면 됩니다.

이 때, 중요한 점은 기존폴더의 모든 리소스를 그대로 복사해도 되지만, 그렇게 하면 어플 용량이 더 많아지게 되므로

갤탭에서 조정해야할 필요한 리소스만 복사해와서 따로 수정해 주면 됩니다.

나머지 없는 리소스들은 apk 파일로 만들때(빌드) 자동으로 기본 폴더(drawable-hdpi, layout)에서 가져다가 사용하기 때문입니다^^


그리고 한가지 팁!

기존의 기본 이미지를 사용하다보면 스마트폰보다 갤탭이미지가 뭉개지는 경우가 있는데

포토샵에서 이미지 크기를 1.25배 늘려서 위에서 말한 drawable-hdpi-1024x600 에 넣어 놓으면 스마트폰과 동일한 이미지 크기의 비율을 얻을수 있습니다^^



6. 그리고 소스상에서 그냥 고치겠다... 라고 한다면 화면 디스플레이의 타입을 직접 계산해서 조절하면 됩니다.

화면 디스플레이의 타입을 얻어오는 소스는 다음과 같습니다.


public static String getDiviceDisplay(){
        Display d =((WindowManager)getSystemService(this.WINDOW_SERVICE)).getDefaultDisplay();
        int width = d.getWidth();
        int height = d.getHeight();
       
        // HVGA :(320 x 480)
        // WVGA :(480 x 800)
        // WSVGA :(600 x 1024)
       
        // 세로모드
        if(width < height){
            if(width < 480){
                return "HVGA";
            }
            else if(width == 480){
                return "WVGA";
            }
            else{
                return "WSVGA";
            }
        }
        // 가로모드
        else{
            if(height < 480){
                return "HVGA";
            }
            else if(height == 480){
                return "WVGA";
            }
            else{
                return "WSVGA";
            }
        }
    }



HVGA는 저해상도 폰 (옵티머스원),
WVGA는 고해상도 폰 (일반적인 폰, 갤럭시 시리즈 등)
WSVGA는 갤럭시 탭 의 해상도입니다.


위 소스를 적용해서 레이아웃마다 다르게 하고자 한다면 다음 예제처럼 적용하면 됩니다.


        RelativeLayout layout =(RelativeLayout)findViewById(R.id.login_widget);
        LinearLayout.LayoutParams param =
                (LinearLayout.LayoutParams)layout.getLayoutParams();
       
        if(CommonUtil.getDiviceDisplay().equals("HVGA")){
            param.topMargin = 130;
            param.bottomMargin = 15;
        }
        else if(CommonUtil.getDiviceDisplay().equals("WVGA")){
            param.topMargin = 225;
            param.bottomMargin = 36;
        }
        else if(CommonUtil.getDiviceDisplay().equals("WSVGA")){
            param.topMargin = 300;
            param.leftMargin = 70;
            param.rightMargin = 70;
            param.bottomMargin = 105;
        }
       
        layout.setLayoutParams(param);

아이폰 iOS 실행 중인 앱에서 다른 앱(또는 팟캐스트)의 앱스토어 다운로드 화면 열기


이따금 내 앱에서 다른 앱의 다운로드 화면을 열어서 해당 앱을 추천하고 싶을 수 있습니다.
Sometimes you could want to open the other app's download screen in your iOS app.

애플 앱스토어의 앱으로 연결하고 싶으면 아래 링크에 아이디를 더하면 되고요.
If you want to open the app store's app info screen, add id string at the end of below link.

itms-apps://itunes.apple.com/kr/app/id[idString]

아이튠즈의 팟캐스트 화면으로 연결하고 싶으면 아래 링크에 아이디를 더하면 됩니다.
If you want to open the iTunes store's podcast info screen, add id string at the end of below link.

http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=[idString]

링크를 정하면 이 코드로 열면 됩니다.
After deciding the link, open the screen using this code.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

아이디는 아이튠즈에서 해당 앱이나 팟캐스트의 이름을 우클릭해서 [링크 복사]로 얻을 수 있습니다.
You can get the id string by right-clicking the title name(select [Copy link]) at the detail page of iTunes store or app store.

출처 : http://weblab.tistory.com/trackback/455

2011년 10월 18일 화요일

iphone app distribution

[iPhone]앱스토어 등록방법 from http://xion.tistory.com/254 2011/04/06 11:44 : Development/iPhone A. 배포전에 진행사항 1. Distribution Provisioning Profiles 만들기 - 개발사이트 우측 Program portal - App ID 만들기 : New App ID : Description -> 어플id : Bundle Seed ID -> Generate New (그대로) : Bundle Identifier -> 홈페이지URL을 거꾸로 + 어플ID (예: kr.co.hello.skyworld ) - Provisioning -> Distribution : New Profile : (0)App Store -> Profile Name : 보통 어플 ID와 동일하게 입력 -> 위에 입력한 App ID 선택 - Provisioning Profile을 다운로드 받는다. - Macintosh HD > 사용자 > 홍길동(?) > 라이브러리 > MobileDevice > Provision Profiles에 복사한다. 2. Xcode에서 배포파일 만들기 - Xcode project(Groups & Files) Info : Configurations 탭에서 "Release" 항목을 아래 Duplicate한후 "Distribution"으로 Rename한다. : Build 탭에서 좌측상단 Configuration을 Distribution으로 변경 : Base SDK를 iPhone Device 2.2.1로 변경한다.(아이폰2세대 지원할 경우) : 항목중 Code Signing 에서 Any iPhone OS Device내용을 1.에서 만든 Provisioning Profile을 선택한다. (iPhone Distribution : 홍길동) - Resource 그룹 중에 Info.plist를 열면 : Bundle display name을 입력하고, Bundle identifier를 입력한다.(예:kr.co.hello.skyworld) : Bundle version은 일반적으로 1.0으로 하고 향후 업뎃할때 1.1로 함 - 배포용 파일 만들기 : 상단 툴바 상태를 [ Device - 2.2.1 | Distribution ]으로 한다. (2.2.1 지원할 경우) : 메뉴바에서 Build를 선택한 후 [ Build ]를 한다. : 빌드가 성공하면 Groups & Files의 Products 그룹에 Project name .app가 생성된다. : .app에 마우스 우클릭하여 Reveal in finder를 선택한다. : finder폴더 위치가 프로젝트 - build- Distribution iphoneos 로 연결된다. : 확장자 없는 파일이 배포될 파일이다. : 확장자 없는 파일을 압축한 후 (.zip) 개발 사이트를 통해 앱스토어에 등록한다. B. AppStore에 등록하기 1. iPhone Developer Program a. Over view - iTunes Connect -> Manage Your Applications -> Add New Application - Does your prodect contain encryption ? 암호화 유무 - Application name : 앱스토어에 나타나는 이름 - Applicaiotn Description : 앱스토에에 나타나는 어플 설명 - Device Requirements : 아이폰, 이이팟 선택 - Primary Category, Secondary Category : 장르 선택 - Copyright : 자작권자 - Version Number : 어플리케이션 버전, Xcode Boundle version (예: 1.0) - SKU Number : 개발자가 관리하는 관리코드, 본인이 관리하는 어플의 유일코드 - Keywords : 검색어 (주의사항 : 자작권위반, 유명인사이름, 애플관련 단어는 절대 안됨) - Application URL, Support URL : 개인 블로그나 기타 어플 피드백용 홈페이지 - email... - Demo : 리뷰어가 어플 테스트시 도움이 되는 설명사항 ---------------- b. Ratings - 등급 넣기 : 일반적으로 NONE ---------------- c. Upload - Application : Build한후 zip으로 만든 파일 , Upload 완료후에 iPhone3.0테스트 완료했다는 체크 하기 - Large 512 icon : 512*512 jpg파일 -> 어플의 57*57아이콘과 동일한 이미지로 하기 , 앱스토어에 노출됨 - Primary Screenshot: 어플 화면 - Additional Screenshots : 등록할때 뒷부분 이미지부터 선택할 것 4->3->2->1순으로. ---------------- d. pricing 날짜 선택 : in Review 후 Ready For Sale되면 RFS 날짜 기준으로 판매 될 예정, 손 볼 것 없음 가격 선택 : 표를 보고 확인하기. ---------------- e. localization : 각 국가별 언어로 해당 언어를 따로 보여 주기 예: korean을 선택후 어플 이름, 설명을 한글로 넣으면 한국앱스토어에선 한글로 나타남 ---------------- f. Review 위 사항 최종 확인 ---------------- 일단 등록 끝 C. 애플에서의 진행 상태 1) Waiting for Review : 테스트 대기상태 2) In Review : 애플에서 어플 테스트 중 3) Ready for sale : 앱스토어에 판매 대기 및 판매중 4) Reject : 판매 보류, 이후는 어플리케이션 수정후 B.사항부터 할 것 version은 수정하지 않는다. ---------------