1. 아이폰용 css 적용하기


<!--[if !IE]>--> 
<link  
   rel="stylesheet"  
   href="small-screen.css"  
   type="text/css"  
   media=only screen and (max-device-width: 480px)"  
/> 
<!--<![endif]-->




@media only screen and (max-device-width: 480px) { 
/* iPhone only CSS here */
 #test-block { 
   background: red; 
 } 
}



아이폰은 max-device-width가 480px로 정의되어 있습니다.

위 두개의 코드는 이러한 값을 이용하여 아이폰용 css를 추가하는 방법입니다.

범용적인 스타일시트로 모바일 웹어플리케이션을 개발후

아이폰에서는 더 나은 UI를 만들기 위해 위와 같이 아이폰용 CSS를 추가함으로써

아이폰의 사파리브라우저로 접속하는 사용자들에게 다른 UI를 제공해줄수 있습니다.



2. 아이폰용 서버측 코드 실행하기

<?php
  $browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
    if ($browser !== false){
    $browser = 'iphone';
  }
?>



<?php if($browser == 'iphone'){ ?>
  <title>Short iPhone only title</title>
<?php }else{ ?>
  <title>Regular title</title>
<?php } ?>



php의 경우 user-agent 값을 이용해서 서버측에서 아이폰을 위한 코드를 별도로 실행이 가능합니다.



3. viewport meta 태그

아이폰은 meta태그의 viewport를 이용해서 더 나은 UX를 제공해줄수 있습니다.

예를 들면 기기의 

최대 가로크기를 정한다거나, 줌레벨을 정한다거나, 사용자 확대축소 방지 여부 등을 설정할 수 있습니다.



<meta name="viewport" content="width=device-width" />
<meta name="viewport" content="width=780" />
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
maximum-scale=1.0




width=device-width

이 값은 페이지를 기기의 width에 맞도록 출력합니다. 아이폰은 320*480의 세로보기 모드와 480*320의 가로보기 모드를 가지고 있습니다. width=780 과 같이 특정 값을 정의할 수도 있지만, 가로, 세로보기 모드에 최적화 시키기 위해서 width=device-width로 설정하는 경우 기기의 width값에 맞춰서 페이지를 보여줍니다.


initial-scale=1.0

이것은 페이지가 로딩될때 확대비율을 정할수 있습니다. 값이 커질 수록 확대 비율된 모습으로 페이지가 나타납니다.



maximum-scale=1.0

허용가능한 확대비율의 최대치를 설정합니다.



user-scalable=0

사용자의 확대보기를 허용할지 여부를 설정합니다. 값은 0(허용하지 않음), 1(확대보기 허용함) 입니다.





<meta name="viewport" content="width=device-width" /> 를 설정했을때



<meta name="viewport" content="width=device-width" />를 설정 안했을때




위의 두개의 예시화면처럼

viewport를 width=device-width 로 설정한 경우에는 

페이지의 가로길이를 기기에 맞춰서 페이지를 보여주지만

설정이 되어있지 않은 경우 

사파리브라우저는 마치 자신이 데스크탑브라우저인양

페이지를 넓게 인식하여 보여줍니다.



4. 툴바 숨기기

window.addEventListener('load', function(){
  setTimeout(scrollTo, 0, 0, 1);
}, false);




위 스크립트를 사용하면 사파리브라우저의 

주소입력창과 검색창이 있는 툴바를 보이지 않는 상태로 변환합니다.

툴바가 사라지는 것이 아니라

스크립트를 통하여 스크롤을 아래로 내려 

툴바 바로 아래에서부터 웹페이지가 보여질수 있도록 하는것입니다.

이 스크립트를 사용하는 경우 사용자에게 최초로 페이지를 보여줄때 

툴바가 차지했던 부분까지 화면공간을 확보하여 보여줄 수 있습니다.

그리고 보기에도 확연히 넓어보이는 것을 느낄수 있습니다.




간혹 페이지 콘텐츠 길이가 너무 짧아서 스크롤할 내용이 없을때 

이 스크립트는 우리가 원하는 기능을 수행하지 않을 수도 있습니다.

그리고 페이지 콘텐츠 길이가 스크롤을 내리기에 어정쩡한 길이라면 

툴바가 보여지지도 사라지지도 않은 반쯤 가려진 상태로 보이게 되는 경우도 있습니다.

위의 캡쳐 사진이 그 예입니다. 

콘텐츠 길이가 어정쩡해 툴바가 가려질 만큼 스크롤바가 내려가지 않아

툴바가 절반만 가려진 모습입니다.



이런문제를 해결하기 위해서는 높이값을 최대사이즈로 지정하여 

페이지가 스크롤될 수 있게 할 수 있습니다.


<meta name="viewport" content="height=device-height,width=device-width" />



viewport를 이용해 height=device-height 를 설정하면

height가 기기의 height값이 되도록 설정되기 때문에 콘텐츠 길이가 짧더라도

페이지 최초 로딩 후 툴바가 보이지 않게 됩니다.



5. 기울기변화 감지하기

window.onorientationchange = function() {
  alert(window.orientation); 
}




0 : 일반적인 세로 화면(홈 버튼이 아래에 있음)
-90 : 시계 방향으로 회전된 가로 화면(홈 버튼이 좌측에 있음)
90 : 시계 반대 방향으로 회전된 가로 화면(홈 버튼이 우측에 있음)
180 : 180도 뒤집힌 화면(홈 버튼이 위에 있음)


가로보기 모드와 세로보기 모드에서 다른 UI를 제공하려는 경우

이 이벤트를 동해서 특정 스크립트를 실행할 수 있습니다.



보기 모드에 따라 다른 UI를 제공한다거나 하는 특별한 이유가 없다면

viewport에서 <meta name="viewport" content="width=device-width" />를 설정함으로써

width가 보기 모드에 따라 자동 조절되기 때문에 걱정할 것이 없습니다.



6. 라운드박스, 라운드버튼


.box {  
   -webkit-border-radius: 5px;  /* safari */
   -moz-border-radius: 5px;  /* firefox */
   background: #ddd;  
   border: 1px solid #aaa;  
}







사파리 브라우저에서는 사파리브라우저의 css 속성을 이용하여

쉽게 라운드박스, 라운드 버튼을 구현할 수 있습니다.



7. 터치 이벤트

touchstart
touchend
touchmove
touchcancel (시스템이 터치한 것을 취소하는 경우)


위의 것들은 터치관련 이벤트 입니다.


이벤트 발생시 event객체를 전달 받는데 다음과 같은 프로퍼티가 존재합니다.



touches : 복수로 화면에 터치되는 각 손가락들에 대한 터치 이벤트 모음들. 이 객체들은 페이지에 터치되는 좌표들의 값을 가지고 있습니다.
targetTouches : 터치할 때 발생합니다. 그러나 전체 페이지가 아닌 타깃 요소에만 반응합니다.



8. 제스쳐

gesturestart
gestureend
gesturechange

제스처 관련 이벤트 입니다. 

event 객체를 전달받으며 다음과 같은 프로퍼티가 존재합니다.

event.scale : 확대비율 값입니다. 값 1은 확대축소가 되지 않은 기본 상태 입니다. 값이 1보다 작을 때는 줌-아웃이며 줌-인일때는 1보다 값이 큽니다.
event.rotate - 회전 각도입니다.



9. 특수링크

<a href="tel:12345678900">Call me</a>
<a href="sms:12345678900">Send me a text</a>

아이폰은 통화 또는 SMS 보내기를 실행할수 있는 특수 링크가 있습니다.

'tel:번호'로 이루어진 링크는 전화연결이 되며
'sms:번호'로 이루어진 링크는 sms가 연결됩니다.






이외에도

아이튠즈 스토어 링크는 아이튠즈와 연결됩니다.

구글맵 링크는 지도 애플리케이션과 연결됩니다.

유튜브 링크는 유튜브 애플리케이션과 연결됩니다.

이메일 주소 링크는 메일 애플리케이션에 연결됩니다.




10. 홈아이콘




사파리 브라우저를 이용하여 웹서핑을 하면서 하단에 + 탭을 클릭하면

현재 페이지를 책갈피(북마크, 즐겨찾기) 추가하거나

홈화면에 추가할 수가 있습니다.





여기서 말하는 홈화면에 추가란 

아이폰의 바탕화면에 아이콘이 생성되어 웹페이지로 빠르게 연결할 수 있는 것을 말합니다.


<link rel="apple-touch-icon" href="http://www.example.com/iphone_home_icon.png" />


이 코드를 넣으면 여기에 설정된 이미지 파일이 홈아이콘으로 설정됩니다. 

홈아이콘은 57*57의 png파일로 만드는 것이 좋습니다.

아이폰에서 자동적으로 볼록 튀어나와보이는 듯한 효과와 아이콘의 라운딩처리를 하기때문에

홈아이콘은 정사각형의 모양으로 만드셔도 됩니다.

홈아이콘이 설정되어있지 않을 경우 

해당 웹페이지의 썸네일화면이 홈아이콘으로 설정됩니다.



11. 디버깅


console.log('Something');
console.error('Oops');
console.warning('Beware!');





위의 코드를 실행하였을 경우 아이폰 사파리 브라우저의 콘솔디버그 도구는 다음과 같은 메시지를 표시합니다.

디버깅용으로 사용되는 함수들입니다.

아이폰 사파리브라우저에서 콘솔디버그 도구를 사용하는 방법은

제가 지난번에 쓴 포스팅에 자세히 나와있습니다.





스마트폰 시장이 발달하고 무선인터넷이 보편화되고, 네트워크이용요금이 점점 낮아지고 있습니다.

스마트폰 시장에서는 저마다의 독자적인 플랫폼들이 속속 자신의 영역을 넓히려 하고 있습니다.

특정기기에 최적화된 어플리케이션은 만드는 것은

사용자경험을 극대화한다는 점에서 좋으나

안드로이드용, 아이폰용, 윈도모바일용 등 플랫폼별로 어플리케이션을 개발해야하는 비용이 뒤따릅니다.


반면 어떠한 플랫폼이든 웹브라우저가 있기때문에

웹어플리케이션은 많은 비용을 절감하면서

스마트폰 사용자들의 기대를 충족시켜줄수 있습니다.


아이폰용 웹어플리케이션을 개발하려고 하신다면 위의 사항을 꼭 알아두시면

개발에 많은 도움이 되실겁니다.


 

* ProSwitcher는 해킹폰/팟만 이용할 수 있는 Cydia 어플리케이션입니다.

* 이 어플리케이션을 사용하기 위해서는 ProSwitcher뿐이 아니라 Backgrounder도 같이 검색해서 받으셔야합니다

 

 

 

Backgrounder ProSwitcher를 설치하시면 설정 창에 위와 같은 메뉴가 추가됩니다.

 

 

 

ProSwitcher 메뉴입니다.

어떤 동작으로 기능을 실행시킬지 설정할 수 있는 Activation Methods를 터치하세요.

 

 

 

여러가지 방법이 있는데요 홈버튼을 짧게 HOLD하는 기능을 선택해보세요.

 

 

 

자 그럼 실험을 해봅시다.

먼저 기본제공 어플인 메모장을 켜보세요.

 

 

 

아까 홈버튼을 짧게 누르는 동작으로 설정 했었죠?

홈버튼을 꾸욱 눌러보니까 위와 같이 창이 작아집니다.

이번에는 홈버튼을 한번만 눌러서 다시 메인 화면으로 돌아가보세요.

 

 

 

어디 한번 게임을 켜서 똑같이 홈버튼을 꾸욱 눌러봤습니다.

좌우로 스크롤이 가능하며 아까 실행시켜놓은 메모장이 그대로 있네요?

 

만약에 현재 띄워놓은 특정 어플로 돌아가고 싶다..싶으시면

새로운 어플을 킬 필요없이 그냥 홈버튼을 짧게 눌러주시면 됩니다.

 

이런식으로 각 어플을 사파리 인터넷 페이지처럼 여러개를 띄우게 할 수 있습니다.

☆ 먼저 cydia 소스를 알려드릴게요 ☆  

 

http://cydia.hackulo.us/ 

(이 소스는 필수 입니당! AppSync for os 3.x 를 설치하기 위해서죠 ^^)

 

http://sinfuliphonerepo.com/

 

http://cydia.xsellize.com

 

 

우선 세개정도면 충분하실거에요 ! ㅎ

 

 

 

  1. Mobile Terminal (필수) 

         

 

  앞포스팅에서 이미 말씀드렸으니, 여기에선 따로 설명 안드릴게요 ^^ㅎ

  아이폰 탈옥이후 초기 패스워드를 바꾸기 위해 필요한 어플입니당!

 

 

 

 

  2. AppSync For OS 3.x (필수) 

 

 

 

아이튠즈와 동기화, 크랙어플 실행을 위해 꼭 필요한 어플입니당.

3.x라고 한 이유는 Cydia에서 기본으로 접속되는 사이트에 따라

AppSync For OS 3.1 또는 AppSync For OS 3.1.2로 나뉘기 때문인데요!

두가지 중 아무거나 설치해도 상관없습니당 ^^

 

 

 

 

  3. Installous (필수) 

  

 

 

크랙 어플을 찾고 설치해주는 어플입니다.

크랙어플이라는 것은 일명 과자어플이라고도 하는데요,

유료어플을 무료로 받을 수 있게 해주는 거랍니당 ㅋ_ㅋ

 

아이폰 해킹은 불법이 아니지만

유료어플을 무료로 다운받는, 크랙어플로 다운받으면 그때부터 불법으로 걸린다고 하더라구요..

하지만 많은 분들이 크랙어플을 다운받아 사용하시고,

복원하면 증거도 안남기때문에.. 걸릴확률은 아주 적지만

그래도 알고 계시라는 차원에서 이렇게 글을 씁니당 ^^

음.. 음원불법다운로드와 비슷한거겠죠~? ㅋ

 

 

 

 

  4. OpenSSH (필수) 

 

 

아이폰과 pc를 WIFI로 연결시켜주는 어플입니다 !

 

 

 

 

  5. WinterBoard (필수) 

 

 

아이폰 테마를 관리해주는 어플이에요 ㅎ

적용시키거나 바꾸거나 수정할 수 있답니당

 

 

 

 

  6. afc2add (필수) 

 

컴퓨터에서 i-funbox와 아이폰을 연결할 때 필요한 어플입니당.

 i-funbox 쓰시는 분들에겐 필수 !!

 

 

출처 : http://m.blog.naver.com/PostView.nhn;jsessionid=E9E065A2A8715F871DBED0531E88FB47.jvm1?blogId=milky8971&logNo=120103173847&categoryNo=0¤tPage=1&sortType=recent

탈옥툴이 나왔다는 소식이 들리자마자 득달같이 실행해봤습니다.


1. 준비물

 AutoSHSH: http://www.mediafire.com/?dznm5a5mkcw

 Spirit: http://spiritjb.com/

 JAVA: http://javadl.sun.com/webapps/download/AutoDL?BundleId=38663


2. SHSH 백업


(1) 먼저 JAVA를 다운받아 설치해줍니다. Microsoft JAVA나 VM JAVA가 설치된 경우도 설치해주셔야 합니다.



(2) AutoSHSH를 실행해줍니다.

* shsh실행시 오류나시는 분들은 [ http://www.microsoft.com/downloads/details.aspx?DisplayLang=ko&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5 ] 에서 [Microsoft .NET Framework 버전 2.0 재배포 가능 패키지(x86)]를 다운로드/실행하면 된다.



(3) 복구 모드 진입을 위해 아이폰의 전원을 끈 다음 홈 버튼을 누른채로 PC에 연결해줍니다


(4) 복구모드로 들어간 아이폰을 아이튠즈가 찾고 복원이 필요하다고 나옵니다.

 확인을 눌러주고 복원을 진행하지 않은 채 다시 AutoSHSH로 돌아갑니다.



(5) AutoSHSH에서 맨 위의 'Grab my SHSH Blobs Automatically'를 눌러줍니다.



(6) 중간에 짧게 ECID가 표시됩니다. ECID 백업을 원하시면 재빠르게 스샷을 찍어줍니다.



(7) 백업할 SHSH를 파일로 저장하게 되는데 경로와 파일 이름을 선택하고 확인을 눌러줍니다.



(8) 파일을 저장하면 시디아에 백업하는 과정을 거쳐 SHSH 백업이 완료됩니다.



(9) 이로서 SHSH 백업이 완료되었습니다. 아이폰의 전원을 끄고 다시 켜주면 됩니다.




3. Spirit으로 탈옥


(1) 먼저 원도우7 이용자 분들은 다운 받은 Spirit.exe 파일을 선택하고 오른쪽 버튼을 눌러 속성을 선택해줍니다.



(2) 두번째 호환성 탭에서 호환모드를 Windows 98/Windows Me로 설정하고 확인을 눌러줍니다.


(3) 아이폰을 연결하고 Spirit을 실행해준 후 Jailbreak 버튼을 눌러줍니다.



(4) 거의 바로 탈옥에 성공했다고 나타납니다. 아이폰은 자동으로 재부팅 됩니다.



(5) 재부팅 되고 난 후 아이폰 마지막 페이지에서 Cydia가 설치된 것을 확인하실 수 있습니다.

 이 후 안정화 작업은 기존 탈옥 후 과정과 동일합니다.


4. Cydia 안정화 작업

 탈옥을 했으니 Cydia 안정화 작업을 해줘야 합니다.

 안정화 방법은 예전 블랙폰님의 강좌에서 필수 항목만 부분 발췌하였습니다.


(1) 씨디아에 접속하면 아래와 같은 화면이 뜹니다.

우리는 일반 유저이기 때문에 첫번째 항목인 User(Graphical only) 를 선택합니다..


(2) 뭔가 로딩을 쭈욱 합니다....(몇초~몇십초 정도..)


(3) 그러면 씨디아 화면에서 가장 하단 메뉴중 매니지(Manage)를 선택합니다.

그리고 위 화면 처럼 보이면 가운데 메뉴인 Sources 를 선택 합니다.


(4) 요 화면이 뜨면....우측 상단에 Edit를 선택합니다...


(5) 바로 이전에서 Edit 항목을 선택하면 좌측 상단에 Add를 선택합니다...

그러면 url을 입력하라고 나오는데요..위 화면과 같은 url을 입력합니다.


(6) 경고문구가 나오지만 우리는 역시 묻지도 않고 따지지도 않고 Add Anyway 선택합니다.


(7) 소스가 업데이트 되고 있군요....잠시 기다면 됩니다.. ㅎㅎㅎ


(8) 자...다시 씨디아 메인에서 하단 우측에 보면 Search 보이시죠? 살포시 터치 합니다~~ ^^


(9) 검색창을 한번 살포시 터치 하고.. appsync를 검색합니다.

그러면 아래 화면처럼 보입니다.. 이때 자신 아이폰의 펌웨어에 맞는 AppSync for OS를 선택하고 설치하세요~

 



(10) 제 아이폰은 펌웨어 3.1.2 최신 펌웨이기 때문에 3.1 버전을 선택했습니다...

 

 (11) 다운로드 중이네요..이후엔 알아서 설치됩니다....참~~쉽죠잉~?

 

(12) 자~~ 이제 다시 씨디아를 실행시켜서 메인을 봅니다...

가운데 보시면 Featured Packages 메뉴가 보이시죠? 터치하세요~


(13) 요런 화면이 보이실꺼에요.....요 화면에 보이는것들은 씨디아를 후원하는 앱들이고요..

뭐 편의에 따라 필요하시면 설치하시면 됩니다만....저는 필요 없고 터치해서 스크롤을 쭈욱 내려 봅니다.


(14) 여기서 보이는 백그라운드,SBSettings, Winter Board 라는 어플이 있습니다.


백그라운드 어플은 아이폰이 멀티태스킹을 지원 안하기 때문에..(애플 자사 프로그램 외는 지원 안함)

아이폰을 이용해 멀티 태스킹을 하기 위해서 필요한 어플입니다. 그냥 설치하시면 됩니다.

(사용법은 다른 게시물에서 설명하겠습니다)


SBSsetting 이라는 어플은 아이폰의 원초적인 설정을 도와주는 어플입니다.

화면 밝기, 백그라운드에서 실행되는 프로그램 중지, 블루투스,와이파이 실행 중지 등...

기본적으로 깔아두면 매우 유용하며

해당 프로그램의 호출은 아이폰 화면 최상단을 왼쪽에서 오른쪽으로 쓰윽 문지르면 튀어 나옵니다.


Winterboard는 아이폰의 테마를 변경할때 반드시 있어야 하는 어플입니다.

일단 설치해도 되고 안해도 됩니다만 테마 변경을 위해서는 설치합니다.


 




(15) 요기가 스크롤 최하단부입니다... 보시면 OpenSSH 라는 항목이 있는데요..

아이폰에 pc로 접속해서 내부 파일을 복사한다거나 편집할때 필수입니다. 따라서 일단 무조건 설치 합니다.......

 



(16) 일반적으로 탈옥하게 되면 아이폰에 접근하는 루트 비밀번호가 alpine으로 셋팅됩니다.

그런데 이런 루트번호를 변경하지 않을 경우 해킹에 무방비로 노출이 될 수 있기 때문에...

반드시 루트 비번을 변경하시기 바랍니다.

이를 위해 모바일 터미널을 Cydia에서 찾아 설치하고 실행해줍니다.

모바일 터미널에 접속 했다면 su root 라고 입력후 리턴키를 누릅니다.

 


 (17) 패스워드를 입력하라고 나오네요.....기본 패스워드인 "alpine" 입력하고 리턴키~

 

(18) 이제 패스워드를 변경하기 위한 명령어 "passwd" 를 입력한 후 리턴키~~~


 (19) 이 화면은 새로운 비번을 입력하라는 화면입니다.....

본인이 희망하는 비번을 입력 하시고 리턴~~~


(20) 아까 입력한 패스워드를 다시 한번 입력합니다~~~~

 

 (21) 새로운 비번 변경이 완료되었습니다...



4. 주의사항

 어플이나 주소록이 날아가진 않지만 사진이 날아갑니다.... 사진은 반드시 백업하시기 바랍니다.

 SHSH 백업 때 이용하는 복구모드는 복원과 다릅니다. 그래도 혹시나 모르니 백업은 해둡시다...


출처 : 아이폰뽀개기 http://cafe.daum.net/breakiphone/GNo0/104  작성자 : 사혼 님

+ Recent posts