web standard/mobile2010. 12. 2. 09:41
모바일 웹사이트제작시 필히 고려해야할 사항들이 몇가지 있습니다. 대표적인예로 화면 사이즈겠지요. 아무튼 제가 제작하면서 겪은 사항들을 여기에 적어봅니다. 다는 아니더라도 몇몇 적습니다.

1. 스마트폰에서 브라우징 시켰을경우 양손터치를 통해 화면의 크기가 변경되지 않아야한다.
- 일반 사이트들은 그 크기가 pc(모니터 크기) 에 맞춰 제작되었기때문에 상대적으로 작은 스마트폰디스플레이로는 감당하기 힘듭니다. 대부분 양손으로 페이지를 확대하여 사용하고 그럴때마다 늘어나는 스크롤바에 짜증에 대비하여야합니다. 이점은 meta태그로 간단히 해결됩니다.

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi" />

위 태그로 거의 모든 스마트폰 공용으로 웹페이지의 넓이가 디스플레이 크기에 맞춰집니다.

meta의 viewport는 각 디바이스에 출력할 화면 size, dpi, scale 등을 선언할 수 있는 메타입니다.
위에 말씀 하셨던 user-scale의 경우 pc용 브라우저의 확대 기능가 비슷한 기능이라고 볼수 있습니다. 디바이스가 작다 보니 확대를 해서 볼수 있게 하는 기능이라고 보시면 됩니다. 즉... 사실상 이 부분은 갑을이 갈리겠지만 user스케일이 가능하여야 접근성에 더 뛰어 날수 있겠지요~ 하지만... 국내 모바일 시장의 분위기가 앱과 같은 느낌의 웹사이트를 많이 원하다 보니 고정 스케일로 가는 경우가 많습니다.

2. 스마트폰의 로테이션에 맞춰 웹페이지의 너비가 변형되어야하며 구조적으로 breaking이 일어나지 않아야한다.
- 이 문제는 제작자의 코딩실력에 달렸습니다. 정확히 말하자면 픽스된 레이아웃구조는 절대로 사용되면 안된다는 말입니다.
항상 레이아웃은 변형가능한 상태로 제공이 되야먄 합니다. 예를들면 width="100%" 가 있겟지요.

너비 부분은 윗분 말씀 처럼 가급적 가변 사이즈로 구현 되는 것이 좋습니다 다만 또 국내 모바일 웹 실정이. 앱과 같은 이펙트를 많이 원하다 보니 고정 사이즈로 가는 경우가 많습니다( 예) 아반떼 모바일 프로모션 사이트 http://avante.hyundai.com/qr01.html )

3. 안드로이드의경우 웹페이지가 브라우징된후 주소창이 사라져야한다.
- 네이버나 다음의 모바일웹사이트에 가보시면 주소창이 사라지는걸 확인할수 있습니다. 아이폰과 안드로이드를 테스트한결과
둘다 사라집니다. 하지만 개인이 지식없이 만든 페이지의 대부분은 아이폰에서는 어떨지몰라도 안드로이드쪽에서는 100% 주소창이 남아있는 결과를 초래합니다. 결국 주소창만큼 페이지가 아래로 밀리게되고 보여지는 부분은 9/10이 되겟죠. 손으로 올려보면 주소창이 사라지지만 그건 근본적인 해결방안이 아닙니다.
위 사항은 자바스크립트문으로 간단하게 처리가 됩니다.

<script type="text/javascript" language = "javascript"> 
window.addEventListener('load', function() {
    setTimeout(scrollTo, 0, 0, 1);
}, false);
</script>

브라우저에 따라 다르지만 대부분은 주소창이 남게 되어있습니다. 이를 위해서 위와 같은 스크립트를 활용하여 스크롤을 강제로 시키는 경우가 많습니다 국내 에서도 대부분은 그렇게 하고 있습니다.
위 스크립트는 크로스 브라우징이 되지 않으니 주의 바랍니다. 페이지 로드시 scrollTo(0, 0)을 해주시면 됩니다.


4. 스마트폰에 내장된 브라우저에 따른 크로스브라우징이 가능해야한다.
- 이 문제또한 위 2번사항과 같습니다. 항상 모든 문제는 프로그래머에게 달려있습니다. 딱히 답이 없습니다. 모바일용이든 일반 pc용이든 이점에 대해서는 무조건 "웹 표준을 지켜라" 라는 말밖엔 떠오르지 않습니다.

웹표준+크로스브라우징~ 모바일 브라우저도 상...당히 많습니다. 참고하세요ㅠㅠ

5. 스마트폰으로 접속시 해당페이지의 pc버젼판이 아닌 웹용페이지로 자동 링크되어야한다.
- 모바일 웹페이지를 만들고 난뒤 가장 중요한 일입니다. 앞으로 스마트폰이 강력한 추세일테이고 그에따른 소,중,대기업들이 자사의 웹페이지외에도 모바일용 웹페이지를 제공하여 일반인들에게 더 빠르고 쉽게 접근이 가능하도록 할것입니다. 여기서 발생하 문제가 어떻게하면 기존에 웹페이지에서 pc로 접했을때와 스마트폰으로 접했을때 보여지는 페이지를 분류하냐는 겁니다. 간단한 방법으로는 기존 웹페이지에서 스마트폰으로 링크글 거는 방법이 있지만 이것은 기존 페이지를 보고 난뒤에 접하는 문제이기때문에 결코 올바른 해결방안이 아닙니다. 이 문제또한 자바스크립트를 통해 스마트폰의 종류를 구별한다음 알맞게 페이지 브라우징 처리를 할수있습니다.

<script language="JavaScript">
var uAgent = navigator.userAgent.toLowerCase();
var mobilePhones = new Array('iphone','ipod','android','blackberry','windows ce',
'nokia','webos','opera mini','sonyericsson','opera mobi','iemobile');
for(var i=0;i<mobilePhones.length;i++)
if(uAgent.indexOf(mobilePhones[i]) != -1)
document.location="링크될 주소";
</script>

가급적 스크립트를 활용하지 말고 서버 사이트 언어로 처리하시는게 좋습니다 : )
그리고 사용자가 pc버젼과 모바일 버젼을 선택 할 수 있게 하는 것이 좋습니다
물론 모바일기기로 접속시 1차적인 접근은 모바일사이트로 가게 하는 것도 괜찮은 방법 같습니다.

이정도가 제가 겪은 난관이었습니다. 대다수의 문제는 금방해결했습니다. 아무래도 오픈소스다보니 여기저기 퍼져있는 코드들을 주어맞추고 이해하고 xml관련 사항도 읽어보면 금방 해결되는 문제들입니다. 하지만 제일 중요한건 스마트폰에서 볼때 웹페이지의 크기 변화입니다. 이점은 웹페이지 제작자가 가장 고려해야할 사항입니다. 수많은 스마트폰의 디스플레이액정 사이즈에 맞춰 개발해야하기때문에 절대적인 px 단위 사이즈는 적어넣지않는게 바람직하다는 제 결론입니다. 물론 이미지야 상관없겟지만 말입니다.

모바일 사이트 제작시 여러 벽에 부딛히시겠지만 모두 하코사와 함께 잘 해결 해 나가시면 좋겠습니다 : )
Posted by 수라
web standard/mobile2010. 11. 30. 12:49
유형1>










유형2>
#page {width:100%;height:100%;background-color:#666;}

@media (max-width:1024px) {
#page {background-color:#fff;}
}
@media (max-width:509px) {
#page {background-color:#ff0;}
}

'web standard > mobile' 카테고리의 다른 글

모바일웹사이트 제작시 고려사항  (0) 2010.12.02
뷰포트(VIEWPORT)  (0) 2010.11.30
모바일 웹사이트 제작 전 알아두면 좋은 10가지  (0) 2010.10.26
iphone 메타 태그 관련  (0) 2010.10.26
Web App 개발  (0) 2010.09.07
Posted by 수라
web standard/mobile2010. 10. 26. 14:33
출처 : http://trend21c.tistory.com/946

1. 해상도를 고려한 레이아웃


모바일 웹사이트 제작은 일반 웹사이트 제작과 있어서 가장 큰 차이점은 해상도 차이에 따른 레이아웃입니다.

모바일 기기가 넷북이나, 노트북, 데스크탑 보다도 디스플레이의 크기가 작기 때문에

이점을 고려한 웹사이트 기획 및 디자인, 퍼블리싱이 필요합니다.

게다가 모바일 기기마다 해상도가 제각각이라는 점도 참 난감한 요소지요.


국내에서 보통 모바일 웹사이트 제작은 전 해상도를 고려하기 보다는

최근 출시된 스마트폰을 기준으로 해서 기획, 개발 및 검수 되는 사례가 많습니다.(아이폰, 갤럭시S)

그래서 요즘에는 이들 스마트폰 환경에 최적화된 모바일 웹사이트가 늘어나고 있습니다.




※ 국내 출시된 주요 모바일 기기 해상도

iPhone 320 * 480
iPhone4 960 * 640
모토로이 해상도 854 * 480
HTC 디자이어(넥서스원) 800 * 480
옵티머스Q 800 * 480
갤럭시A 800 * 480
갤럭시S 800 * 480
시리우스 800 * 480
베가 800 * 480



다음과 네이버의 경우는 width를 가변폭으로 지정해놓아 해상도가 다른 모바일 기기에서 유동적인 대처를 하고 있습니다.





이러한 가로 길이 가변폭의 레이아웃은 기획, 개발, 디자인 모든 영역에서 함께 고려가 되어야 합니다.

기획적인 측면에서도 가로사이즈가 가변이고 사용자마다 조금씩 차이가 있다는 UX를 인지하여야 하고

디자인적으로도 가변폭에 유의하여 요소들을 배치하여야 합니다.

개발에서도 가변적으로 변하게끔 코딩에 잘 신경써줘야겠죠? ^^




2. 사용자를 편하게, 터치 오류를 줄여라


사용자가 터치하는 영역은 44px*44px를 기준으로 하세요.

손가락으로 터치하는 면적이 최소 이정도는 확보되어야 오터치를 줄일수 있습니다.

너무 작은 경우 링크 영역 주변에 다른 링크요소가 없으면 크게 상관이 없을수도 있겠지만

다른 링크요소들과 함께 44*44 이내에 다닥다닥 붙어있다면

원하는 것을 터치하지 못할 확률이 높아집니다.




3. 화면 확대비율 고정


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


이 meta태그는 화면 확대비율을 기기 사이즈 가로에 맞게 조정합니다.

viewport가 가장 잘 적용되는 것은 아이폰이고 기기마다 조금씩 차이가 있습니다.


body {
    -webkit-text-size-adjust: none;
}


그리고 이 css는 webkit 기반의 브라우저에서 텍스트사이즈가 들쑥날쑥 하지 않게 조절합니다.

상황에 맞게 사용하세요.




4. 사이트 아이콘 제공


아이폰3g, 아이폰3gs
<link rel="apple-touch-icon-precomposed" media="screen and (resolution: 163dpi)" href="/iOS-57.png" />

아이패드
<link rel="apple-touch-icon-precomposed" media="screen and (resolution: 132dpi)" href="/iOS-72.png" />

아이폰4
<link rel="apple-touch-icon-precomposed" media="screen and (resolution: 326dpi)" href="/iOS-114.png" />


아이폰에서는 웹사이트 바로가기 아이콘은 홈화면에 넣을 수 있습니다.

이때 홈화면 아이콘으로 저장될 아이콘을 만들어둘 수 있습니다.



5. css3를 활용하여 절감


css3를 잘만 활용하면 그라디언트 효과나, 그림자 효과, 라운드코너 효과를 만들어낼수 있습니다.

이로 인해서 불필요한 이미지를 사용하지 않아도 되어 로딩속도의 절감효과를 볼 수 있습니다.

css3를 잘 활용해보세요.

물론 css3가 미지원되는 모바일기기가 더 많으니 이점도 염두해주세요!



6. javascript는 최소화


모바일 웹으로 얼마나 멋진 사이트를 만들기에 그렇게 많은 자바스크립트 코드가 필요한가요?

여러분들도 잘 알고 있는 훌륭한 자바스크립트 프레임워크인 jquery 역시

모바일기기에서는 부담스러울수도 있습니다.

자바스크립트 프레임워크를 사용하면 물론 생산성 향상에 도움이 되겠지만

사실 모바일 웹페이지는 그렇게 많은 자바스크립트 액션을 필요로 하지 않습니다.

javascript을 사용을 최소로 줄이고 순수한 DOM 조작으로 사이트를 만들어봅시다!



7. over 이벤트는 소용이 없습니다.


터치폰은 마우스커서를 조작하는 것이 아니기 때문에

우리가 흔히 데스크탑을 통해 인터넷을 사용할때 이용가능한

:hover 선택자나

onmouseover와 같은 이벤트를 사용할수 없습니다.

이점 알아두세요.



8. 페이지내에 또 다른 스크롤바는 넣을 수 없어요.


우리는 참 그 작은 공간에 많은 콘텐츠를 꾹꾹 넣고자합니다.

일반 웹 환경에서는 overflow:auto; 또는 overflow:scroll의 값을 사용하여

특정 영역에 많은 콘텐츠를 넣고 스크롤바를 넣을 수 있지만

모바일 웹환경에서는 페이지 내에 또 다른 스크롤바 넣기가 불가능합니다.



전혀 안되는 것은 아닙니다.

모바일네이버의 실시간검색을 살펴보면

자바스크립트로 스크롤바 비스무레한 것이 구현되어 있습니다.



그런데 제 개인적인 소견으로는 사실 모바일 웹페이지 안에 스크롤바를 넣는다는 것이

그닥 좋은 UX라고 생각하지는 않습니다.

스크롤바라는 것이 스크롤이 되는 형태의 UX가 굳어진 것이고

터치폰에서도 화면을 위아래로 쓸어내리거나 올리는 행위로 스크롤을 한다라는 의미가 담겨있는 UX인데

화면에 있는 스크롤바는 터치로 스크롤되는 것도 아니고 단지 위아래 버튼으로

스크롤바를 조절하는 UX입니다.

차라리 그냥 적당 갯수만 보여주거나

새로고침버튼을 넣어서 해당부분만 ajax로 변경을 하는것이 더 낫지 않았나 싶기도 하네요.




9. 일반 웹사이트로 가기에 대한 옵션을 제공하라.


우리는 모바일을 통해서 웹사이트를 이용할때 꼭 모바일용 웹페이지를 이용하고 싶지 않을때도 많습니다.

일반 웹페이지를 사용하는 경우말이죠.

그런데 몇몇 웹사이트는 사용자의 agent를 가져와서

접속한 환경이 모바일기기면 무조건 모바일 페이지로 이동시키기도 하는데

일반 웹사이트를 이용하고자 하는 사용자도 있기 때문에

일반 웹사이트로 가기에 대한 옵션을 제공해주면 좋습니다.



10. 레티나 디스플레이


.myImage {
    height: 40px;
    width: 100px;
    -webkit-background-size: 100px 40px;
    background: url("images/myImage.jpg");
}

@media screen and (-webkit-device-pixel-ratio: 2) {
    .myImage {
        background: url("images/myImage@2x.jpg");
    }
}


고해상도의 아이폰4가 출시하면서 우리는 고해상도의 이미지를 제공하여

iphone4 사용자의 만족도를 극대화할수 있습니다.

'web standard > mobile' 카테고리의 다른 글

뷰포트(VIEWPORT)  (0) 2010.11.30
css3 media 쿼리 예시(모바일웹)  (0) 2010.11.30
iphone 메타 태그 관련  (0) 2010.10.26
Web App 개발  (0) 2010.09.07
아이폰 웹 개발을 위한 프레임워크 여러가지 안내  (0) 2010.08.23
Posted by 수라