반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

HTML5 화면 Layout 잡기 -1

2011. 12. 9. 01:21 | Posted by 솔웅


반응형
오늘은 처음 다뤘던 HTML 소스로 작업하겠습니다.
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title> Dougy's HTML5 </title>
    <link rel="stylesheet" href="main.css">
</head>
<body>
    <header>
        <h1> Welcome to Dougy's HTML5. </h1>
    </header>
    <nav>
        <li> Home </li>
        <li> Tutorials </li>
        <li> Podcast</li>
    </nav>
    <section>
        <article>
            <header>
                <hgroup>
                    <h1> DDanzi in NY</h1>
                    <h2> come to Zuccotti Park with Pizza</h2>
                </hgroup>
            </header>
            <p> DDanzi guys have visited in Zuccotti park yesterday to encourage the occupier of Occupy Wall St. Protesters.</p>
            <footer>
                <p> -- written by Dougy </p>
            </footer>
        </article>
        <article>
            <header>
                <hgroup>
                    <h1> Title of Article 2</h1>
                    <h2> Subtitle for Article!</h2>
                </hgroup>
            </header>
            <p> This is the 2nd article. </p>
            <footer>
                <p> -- written by Dougy </p>
            </footer>
        </article>
    </section>
    <aside>
        <h4> News </h4>
        DDanzi guys have visited Zucotty Park Yesterday.
    </aside>
    <footer>
        Copyright Bucky thenewboston.
    </footer>
</body>
</html>

이 화면은 헤더와 메뉴(nav) 그리고 메인 공간으로 section에 두개의 기사가 있고 한쪽에 aside 그리고 아래에 footer로 구성 돼 있습니다.
이것을 CSS를 이용해서 레이아웃을 잡을 겁니다.
지나번 글을 맨하튼 Zuccotti Park 갔다가 미국 방문한 나는 꼼수다 팀을 보고 난 다음에 작성해서 article에 나꼼수 팀이 피자 나눠준 얘기가 있네요.
저도 피자 한조각 얻어 먹고 왔어요. ^^



CSS를 적용하지 않은 화면은 이와 같습니다.

우선 CSS를 이용하기 위해서는 우선 div 태그로 body 태그 안을 모두 감싸고 각 레리아웃 구성 별로 id를 부여합니다. (div도 id를 부여 합니다.)
 <div id="big_wrapper">
    <header id="top_header"> ...
     <nav id="top_menu">...
     <section id="main_section">...
     <aside id="side_news">...
     <footer id="the_footer">...
  </div>
이렇게 HTML 파일을 수정합니다.

그 다음 main.css 파일로 가서 코딩을 시작합니다.
일단 모두 지우고 아래 내용을 코딩해 넣으세요.
*{
    margin: 0px;
    padding: 0px;
}
h1{
    font: bold 20px Tahoma;
}
h2{
    font: bold 14px Tahoma;
}
전체 마진과 패딩을 0으로 하고 h1 태그에는 볼드 20픽셀 사이즈 타호마 폰트를 적용하고 h2 태그에는 볼드 14픽셀 사이즈 타호마 폰트를 적용한다는 내용입니다.


이 내용을 적용하면 화면이 이렇게 변합니다.
지금은 h1,h2 태그에 대한 css 효과만 있습니다.

이제 레이아웃을 잡기 위해서 그룹화(블럭화)를 시킵니다.
header,section,footer,aside,nav,article,hgroup{
    display:block;
}
그리고 body내의 모든 내용을 기본적으로 center align으로 정합니다.
body{
    text-align:center;
}



이제 각 id 별로 css 효과를 주겠습니다.
우선 div는 id가 big_wrapper 였죠? 이 div 부터 주겠습니다.
#big_wrapper{
    border:1px solid black;
    width:1000px;
    margin: 20px auto;
    text-align:left;
}

이렇게 하면 1픽셀 테두리가 쳐진1000픽셀 너비의 사각형이 나올 겁니다.
윗쪽 마진은 20픽셀이고 왼쪽,오른쪽,아래쪽 마진은 자동적으로 정해 집니다.
그리고 글자들은 왼쪽 정렬이 됩니다.


그 다음은 top_header 에 효과를 주겠습니다.
#top_header{
    background:yellow;
    border: 1px solid blue;
    padding: 20px;
}
그리고 top_menu에는 아래와 같이 효과를 주구요.
#top_menu{
    background:blue;
    color:white;
}
그런데 이 Home, Tutorial, Podcast 가 좌에서 우로 한줄로 표시하고 싶습니다.
이게 메뉴거든요. 그래서 아래와 같이 li 태그에 효과를 줍니다.
#top_menu li{
    display:inline-block;
    list-style:none;
    padding: 5px;
    font: bold 14px Tahoma;
}



자 여기까지 완성이 됐습니다.
헤더가 있고 메뉴도 그럴듯하게 자리를 잡았네요.
이제 article에 대해 효과를 줘 볼까요?
main_section의 article이 왼쪽에 자리잡고 오른쪽에 조그맣게 aside가 자리 잡도록 하겠습니다.
#main_section{
    float:left;
    width:660px;
    margin:30px; /* 전체 너비가 1000 픽셀이므로 계산을 하면서 해야 함*/
}
#side_news{
    float:left;
    width:220px;
    margin:20px 0px;
    padding:34px;
    background:#66CCCC;
}
float 명령어를 잘 보세요.
줄단위로 표시하지 않고 좌우로 표시하려면 이 float를 사용해야 합니다.
그리고 the_footer를 아래와 같이 코딩하세요.
#the_footer{
    clear:both;
    text-align:center;
    padding:20px;
    border-top: 2px solid green;
}
여기서 clear:both의 의미는 좌우로 배치하는 것을 그만 두겠다는 의미입니다.
그러면 상하로 배치 되겠죠? footer는 가운데 정렬에 윗쪽에 녹색 줄이 그어 지게 됩니니다.


이렇게 나올 텐데요.. 좀 이상하네요. News 녹색 사각형이 Article 오른쪽에 있어야 되는데 밑에 있습니다.
파이어폭스, 사파리, 크롬 모두 저렇게 나오네요. 맥도 그렇고 윈도우즈도 그렇고...
뭐가 잘못 됐을까요? 브라우저 버전 문제인가?
네이버에서 다른 float 예제를 찾아서 해도 다 안 되더라구요.

일단 지금 제가 테스트 해 볼 시간이 없어서요. 다음으로 넘어가겠습니다.

다음은 각 article 을 보기 좋게 꾸미겠습니다.

article {
    background:#FFFBCC;
    border: 1px solid red;
    padding:20px;
    margin-bottom: 15px;
}
article footer {
    text-align:right;
}


조금 그럴듯하게 됐죠?
첫 강좌때 말씀 드린것처럼 원본 소스는 bucky 가 공개한 소스입니다. thenewboston.com으로 가면 원본 동영상 강좌를 보실 수 있습니다.

일단 오늘 강좌에선 float가 원하는 대로 작동 되지 않았네요.

여러분들도 한번 테스트해 보시고 제가 잘못한 부분이 있으면 댓글로 알려 주세요.
소스코드는 아래에 있습니다.

다음시간엔 새로운 CSS 태그로 오늘 한 웹 페이지를 좀 더 flexible 하게 표현하는 방법을 공부하도록 하겠습니다.
반응형


반응형

Build 2011.703 버전이 릴리즈 됐고 곧바로 공개됐습니다.

이전 버전들은 일반 공개까지는 안가고 유료 구매자들만 다운 받게 했는데 이번 릴리즈 버전은 테스트를 거쳐서 안정성까지 확인 됐나 봅니다.

많은 기능이 바뀌고 추가 될 거라고 얼마전부터 예고를 했었는데...

어떤 것이 바뀌었는지 주요한 부분을 알아볼께요.

inneractive Ads




지금까지 코로나로 만든 앱에서는 공식적으로 inMobi 광고만 됐습니다. 비공식적으로 web pop up 기능을 이용해서 Admob 광고가 가능한 방법이 개발자들 사이에서 공유 됐었는데요.
이번 버전에서 inneractive 를 이용한 광고가 가능하도록 했답니다.
inneractive는 여러(100여개)의 광고 네트워크를 사용할 수 있도록 연결해 주는 네트워크라고 합니다.
코로나에서는 이 기능을 통해서 앱 개발자가 좀 더 많은 수입을 올릴 수 있도록 했다고 홍보하고 있네요.
inneractive 사용방법은 아래 링크에 있습니다.
http://developer.anscamobile.com/reference/ads-inneractive
사용방법은 기존 inMobi 사용하는것과 비슷해 보입니다.
저도 한번 해 보고 얼마나 수입의 변화가 있는지 한번 봐야겠네요.

Kindle Fire and NOOK

아마존(Amazon)의 Kindle Fire 와 반즈 앤 노블즈(Barnes & Noble's) 사의 NOOK Color 플랫폼을 지원하게 됐습니다. 두 태블릿 모두 안드로이드 기술을 사용하고 있지만 내부적으로 들어가면 좀 다르다고 합니다.
그래서 이 기능을 제대로 이용하려면 유료버전을 사용해야 한답니다. 그것도 PRO 버전으로요.


Storyboard API

이번에 새로 제공되는 화면 전환용 API 입니다.
샘플 앱을 돌려봤는데요. 여러 화면전환 효과를 사용할 수 있더라구요.
기존에는 transition.to 를 사용하거나 director.lua를 사용했는데 이제 코로나 SDK 에서 공식적으로 제공하는 화면전환 API 도 사용할 수 있게 됐네요.
코로나 SDK의 기본정신이 적은 코딩으로 큰 효과를 보는 것이잖아요. 이 기능도 아주 간단하게 사용할 수 있더라구요.

나중에 한번 자세하게 다뤄 볼께요.
미리 공부하고 싶으신 분은 아래 링크를 참조 하세요.
http://developer.anscamobile.com/content/storyboard
물론 새 릴리즈 버전을 인스톨 하면 샘플 코드도 있습니다.

Native UI in Mac OS X Simulator



예전에 안 됐던 시뮬레이터에서 안 돼 디바이스에 인스톨 한 다음에 테스트 해야 됐던 text fields, message boxes, web popups 등이 맥에서 시뮬레이터로 볼 수 있게 됐습니다. (윈도우즈에서는 아직도 안 되나 봅니다.)

New Corona Home Screen


Corona SDK 를 실행하면 나오는 화면이 새로와 졌습니다.




주요한 변화들은 이렇습니다.
이외에 여러 버그들이 수정됐고 다른 마이너한 변화들이 있다네요.

자세한 릴리즈 노트를 보려면 아래 링크를 열어 보세요.
http://developer.anscamobile.com/content/corona-sdk-release-notes-2011703

반응형

HTML5 CSS 이해하기

2011. 12. 8. 07:55 | Posted by 솔웅


반응형
negation pseudo-class

어제 썼던 HTML 코드 그대로 쓰겠습니다.
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title> Dougy's HTML5 </title>
    <link rel="stylesheet" href="main.css">
</head>
<body>
    <div id="mommy">
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
    </div>
</body>
</html>

여기에 일단 main.css에는 아래와 같이 넣으세요.
  * {color:blue;}

그럼 전부 파란색으로 나오겠죠?
*표는 all 을 뜻하는 거라는 걸 어제 다뤘었습니다.

       
HTML 파일을 아래와 같이 바꾸세요.
          <p class="sally"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="sally"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
css는 아래와 같이 바꾸시구요.
  * {color:blue;}:
not(.bucky){color:red;}


css를 보시면 모든 색은 파란색으로 하는데 그 밑에 bucky가 아닌 것은 red로 하라고 돼 있습니다.
그래서 클래스 이름이 bucky가 아니고 sally인 것은 모두 빨간 색이 됐습니다.

CSS3 Selectors



이제 main.css에 있는 내용을 다 지우고 아래 내용을 넣어 보세요.
div> p {color:green}
브라우저를 실행하면 모두 녹색으로 돼 있을 겁니다.
이건 div 를 parent로 갖는 모든 요소에 적용하라는 내용입니다.
    <div id="mommy">
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
    </div>
이 div 태그 내에 있는 모든 내용에 적용되기 때문에 전부 녹색이 됩니다.
그러면 div의 parent는 뭘까요?
<body>
    <div id="mommy"> ....
이렇게 돼 있으니까 body가 div의 parent 이죠?
body> p {color:green}
이렇게 해 보세요.
그러면 녹색이 아니라 전부 검정색으로 나옵니다.
무슨 의미일까요?
body>는 body를 parent로 같는 요소들입니다. div는 p의 parent  이지만 body는 아닙니다. grand parent 라고 해야 할까요?
그래서 p에 이 css가 적용되지 않은 겁니다.

그러면 이제 다 지우고 css를 아래와 같이 넣어보세요.
p.bucky+p{color:blue;}

이렇게 나옵니다.
이 내용은 p 태그로 시작하는 것 중 bucky 가 아이디인 태그의 다음 태그에 내용을 파란색으로 하라는 겁니다.
좀 헛갈리나요?
        <p class="sally"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="sally"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
html 이 이랬으니까
보시면 첫번째는 그 이전에 아무런 p 태그가 없었으니까 당연히 p태그 다음에 나오는 p가 아니라서 검정색
두번째는 bucky라는 클래스 다음에 오는 p태그가 아니죠? sally라는 클래스 다음에 오는 p 태그입니다. 그래서 검정색
세번째는 bucky 라는 클래스를 가지고 있는 p태그 다음에 오는 p 태그네요. 그래서 당연히 글자 색이 파란색으로 됩니다.
이제 이 + 의 의미가 뭔지 아시겠죠?
        <p class="sally"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="sally"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <span> testtesttest </span>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
위와 같이 하면 어떻게 될까요? 이러면 밑에서 두번째 줄의 p 태그는 bucky 클래스를 가진 p 태그의 바로 다음줄이 아니기 때문에 검정색이 됩니다.

그럼 이 상태에서 css 의  +를 ~로 바꿔 보세요.
그럼  밑에서 두번째줄도 파란색으로 됩니다.
~는 중간에 뭐가 있던지 그 이전에 있던 p 태그가 bucky 클래스 이면 효과를 적용하라는 명령어 입니다.

반응형


반응형
오늘은 외부 모듈을 불러와 클래스를 실행하는 기본 개념에 대해 알아보겠습니다.
얼마전 모듈에 대해 한번 다룬적이 있었는데요.
이 모듈과 클래스 개념은 아주 중요한 거라서 처음 프로그래밍을 접하시는 분들이나 아직 이 부분에 대해 개념이 모호한 분들은 보실만 할 겁니다.

모든일이 그렇듯 반복과 숙달이 필요한 부분인 것 같습니다.

What is a Class?
이 글을 마치면 클래스가 무엇인지 감이 잡히실 겁니다. 여기서 알아야 될 것은 그 클래스들을 이용하는데 어떤 잇점이 있으며 어떻게 이용하는가 입니다. 실제로 편리하게 이용하기 위해서 만들어 진 것이니 무엇이 클래스인가 아는것도 다 사용하려고 하는 것 아니겠습니까?

그러니 일단 시작해 보겠습니다.

객체지향 프로그래밍에서 객체(Object)는 그냥 우리가 일상생활에서 보는 사물이나 동물, 사람 등입니다. (때로는 개념이 될 수도 있겠죠)
그리고 그 객체들은 일정한 행동 양식이 있습니다.
만약에 개라는 객체를 여러분 앱에서 표현하고자 한다면...
개는 뛰고, 짖고, 부비고, 자고, 돌고 그러죠?
만약 고전 오락 갤러그에서 외계인이라는 객체를 보면
옆으로 움직이고, 아래로 내려오고, 미사일을 쏘고, 아군 미사일에 맞으면 폭발하고 그러죠?

이렇게 객체들의 행위를 구현하는 부분을 메소드 또는 함수 라고 합니다.
(자바에서는 메소드라고 하고 루아-코로나-에서는 함수라고 합니다.)

그리고 이 객체와 메소드가 있는 곳이 클래스 입니다.

직접 보시죠.

오늘은 우리랑 친근한 개로 클래스를 만들겠습니다. (개 클래스가 되겠네요.)

-------------------------------------------------
-- dog.lua
-- Example "dog" class for Corona SDK tutorial.
-------------------------------------------------
local dog = {}
local dog_mt = { __index = dog } -- metatable
-------------------------------------------------
-- PRIVATE FUNCTIONS
-------------------------------------------------
local function getDogYears( realYears ) -- local; only visible in this module
return realYears * 7
end
-------------------------------------------------
-- PUBLIC FUNCTIONS
-------------------------------------------------
function dog.new( name, ageInYears ) -- constructor

local newDog = {
name = name or "Unnamed",
age = ageInYears or 2
}

return setmetatable( newDog, dog_mt )
end
-------------------------------------------------
function dog:rollOver()
print( self.name .. " rolled over." )
end
-------------------------------------------------
function dog:sit()
print( self.name .. " sits down in place." )
end
-------------------------------------------------
function dog:bark()
print( self.name .. " says \"woof!\"" )
end
-------------------------------------------------
function dog:printAge()
print( self.name .. " is " .. getDogYears( self.age ) .. " in dog years." )
end
-------------------------------------------------

return dog

처음에 dog이라는 변수가 테이블로 만들어 졌습니다.
테이블로 만든 이유는 개는 한마리가 아니라 여러마리가 있을 수 있잖아요?
도꾸, 메리,  쫑 이렇게...
그렇게 여러마리를 표현하기 위해서 테이블로 만들었습니다.
그리고 메타테이블로 dog_mt 변수를 만들었습니다.

그 다음엔 getDogYears라는 로컬 함수(메소드) 가 있고 realYear 라는 인수를 받습니다.
아까 함수는 어떤 동작을 표현한다고 그랬죠?
이 함수는 인수로 받은 값에 7을 곱하는 동작을 하네요.
개가 직접 하는 동작이 아니라 어떤 로직과 관련된 동작이군요.
이렇게 개념이나 로직과 관련된 행위도 메소드(함수)로 표현됩니다.
로컬로 선언한것은 자바에서 private로 선언한 것과 비슷한데요.
의미는 이 dog.lua라는 클래스 안에서만 이 함수를 call할 수 있다는 겁니다.
외부파일에서는 이 함수를 콜할수 없습니다.

다음은 글로벌 함수인 dog.new 함수가 있습니다. 이 함수는 name과 ageInYears를 인수로 받습니다.
하는 일은 이름과 나이를 세팅하고 이를 메타테이블에 세팅한 값을 반환해 줍니다.
글로벌 함수는 자바에서의 public 과 같은데요. 이건 외부에서도 이 함수를 콜 할 수 있다는 의미입니다.
dog.new함수는 자바에서의 생성자 역할을 하네요. dog란 객체를 생성하는 겁니다.
외부에서 개를 만들 때 (그게 도꾸든 메리든 쫑이든....) 이 함수를 제일 먼저 불러서 객체를 만들어야 한다는 얘기입니다.

다음은 모두 글로벌 함수네요. dog:rollOver,dog:sit,dog:back, dog:printAge 이렇게 네개의 함수가 있습니다.
구르고 앉고 짖는 등 개가 하는 행위를 구현하는 3개의 메소드와 나이를 표시하는 함수 이렇게 4개의 함수(메소드)가 있습니다.

여기서는 터미널에 개가 구른다, 앉는다, 짖는다 같이 문자로 뿌려지는데요.
나중에 게임같은걸 개발 하게 되면 이 부분에 개 이미지를 넣고 애니메이션 기능을 이용해서 구르거나 앉거나 짖는 것을 구현하면 됩니다.

그럼 이 dog 클래스를 어떻게 사용해야 할까요?

main.lua를 보겠습니다.

local dog = require( "dog" )
local dog1 = dog.new( "Yai-Ya", 4 )
local dog2 = dog.new( "Toki", 1 )
    dog1:printAge()
    dog2:printAge()
   
    dog1:rollOver()
    dog2:sit()

보시면 처음에 dog.lua를 require합니다. 이때 .lua는 쓰지않고 파일 이름만 씁니다.

그리고나서 dog1,dog2 이렇게 두마리 강아지를 만듭니다. (두개의 객체를 만들었습니다.)
dog.new로 만들었는데요. 첫번째 개는 이름이 Yai-Ya 고 나이는 4살이네요.
두번째 개는 이름이 Toki이고 나이는 1살이구요.

다음으로 두 개의 나이를 표시해 줍니다.
그리고 첫번째 개 Yai-Ya에게는 구르라고 하고 두번째 개 Toki에게는 앉으라고 합니다.

이것을 실행하면 아래와 같이 됩니다.


보시면
Yai-Ya 28살이고 Toki는 7살이라고 처음에 나오네요.
4살, 1살이라 그랬는데 28살 7살이라고 나온 이유는 dog class에서 printAge()를 보면 나이를 받아서 곱하기 7을 하는 getDogYears( self.age ) 함수를 콜하고 있죠?
그래서 개 나이에 7을 곱해서 나온 겁니다.
아마 개 나이 곱하기 7하면 얼추 사람 나이가 되나 봅니다.

그리고 다음엔 Yai-Ya는 구르고 Toki는 그 자리에 앉는다고 돼 있죠?

모듈과 클래스는 이렇게 이용하시는 겁니다.

처음에 개를 만들고 (이름, 나이) 그리고 그 개에게 짖고,앉고, 구르고 하는 것을 시키는 겁니다.

처음에 메타 테이블을 만들고 생성자 dog.new()에서 이를 return(반환) 했죠? 이것은 새로운 인스턴스를 만드는데 아주 효과적이기 때문입니다. 새로운 인스턴스라 함은 도꾸,메리,쫑 이 각각의 개들의 존재를 구분할 수 있게 해 준다는 겁니다. 이 메타테이블을 이용하지 않으면 개를 한마리 밖에 만들지 못할겁니다. 그것이 도꾸든 메리든 쫑이든....

이제 어느정도 클래스에 대해 감이 잡히셨나요?
처음에 얘기 드렸지만 반복과 숙달이 필요한 부분입니다.

이 글 원본은 아래에 있습니다.
원본을 바탕으로 설명은 그냥 제 방식으로 했습니다.
http://blog.anscamobile.com/2011/09/tutorial-modular-classes-in-corona/

혹시 이 코드가 실행되지 않으시는 분은 댓글 달아 주세요.
정식 등록자가 받을 수 있는 최신 업데이트 된 버전에서만 될 수도 있거든요.
그러니 혹시 실행이 안 되시면 저한테 알려 주세요.



그럼...
반응형

HTML5 두번째 CSS 이해하기 (pseudo-class)

2011. 12. 7. 04:55 | Posted by 솔웅


반응형

오늘은 다시 빈 body 태그서부터 시작하겠습니다.
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title> Dougy's HTML5 </title>
    <link rel="stylesheet" href="main.css">
</head>
<body>
   
</body>
</html>
일단 body 태그 안에 아래 세줄을 채워 넣으세요.
    <p> 1st practice with css</p>
    <p> What is CSS?</p>
    <p> You don't know CSS?</p>

이 상태로 브라우저로 html파일을 불러오세요.

이렇게 나올 겁니다.
이런 연습때 사용했던 캡쳐 화면이네요. 이렇게 나오지는 않구요. 그냥 저 위에 있는 세 문장이 모두 검은 색으로 나올 겁니다.... 미쳐 캡쳐 받아 두질 못했습니다. ;;

이젠 main.css를  만들겁니다.
여러분이 사용하는 에디터로 main.css 파일을 만드세요.
그리고 아래 한줄을 넣어 보세요.
#tuna{color:red;}
이건 tuna라는 id를 가진 태그안의 내용 색을 붉은 색으로 하라는 내용입니다.
main.css를 저장하시고 아까 body안에 있던 내용을 아래와 같이 바꿔보세요.
    <p id="tuna"> 1st practice with css</p>
    <p> What is CSS?</p>
    <p> You don't know CSS?</p>

이렇게 하면 id가 tuna인 첫번째 줄이 빨간색으로 표시 됩니다.

#tuna{color:red;} -> .tuna{color:red'}
<p class="tuna">
이렇게 해도 똑같은 결과가 나옵니다.

첫번째는 id이고 두번째는 class 입니다.
main.css의 내용을 아래와 같이 바뀌면 어떻게 될까요?
p.tuna{color:red'}
이 경우 p 태그안의 클래스가 tuna인 경우만 적용 됩니다.
아래와 같이 해 보세요.
p[name]{color:blue}  -> main.css
    <p id="tuna"> 1st practice with css</p>
    <p name="larry"> What is CSS?</p>
    <p> You don't know CSS?</p>
이러면 두번째 라인만 파란색으로 표시 됩니다.
이 css코드 의미는 name이 있는 태그 내의 내용에 적용하라는 겁니다.

p[name="bucky"]{color:blue}  -> main.css
    <p name="sally"> 1st practice with css</p>
    <p name="larry"> What is CSS?</p>
    <p name="bucky"> You don't know CSS?</p>
이러면 세번째 줄만 이 css가 적용 됩니다. (attribute selector)

이렇게 css를 적용하는 여러 방법이 있습니다.
이 외에도 더 있습니다. 한번 볼까요?

p[name^="bacon"]{color:blue}  -> main.css
    <p name="baconsub"> 1st practice with css</p>
    <p name="mybacon"> What is CSS?</p>
    <p name="omgbacontuna"> You don't know CSS?</p>


p[name$="bacon"]{color:blue}  -> main.css

p[name*="bacon"]{color:blue}  -> main.css


첫번째 ^ 는 name이 bacon으로 시작되는 태그에만 적용합니다.
두번째 $는 name이 bacon으로 끝나는 태그에만 적용합니다.
세번째 * 는 name에 bacon이 들어가는 모든 태그에 적용합니다.

CSS를 제대로 활용하려면 1. 이런 기능이 있다는 것을 알아야 하고 2. 이런 기능을 많이 사용해서 숙달 돼 있어야 합니다. 3. 그래서 웹 화면을 디자인 할 때 CSS의 어떤 기능들을 적용할 지 설계할 수 있어야 합니다.
이 외에도 여러가지 기능들이 있는데요.. 나머지는 각자 Research 해 보세요.

이제 다시 body태그를 비워보겠습니다.

그 안에 아래 내용을 아래와 같이 넣어 보세요.

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title> Dougy's HTML5 </title>
    <link rel="stylesheet" href="main.css">
</head>
<body>
<body>
    <div id="mommy">
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
        <p class="bucky"> tuna and bacon...</p>
    </div>
</body>
</html>

main.css를 아래와 같이 고쳐 보세요.
p:nth-child(3){color:green;}

이 css는 p 태그의 3번째 child에 내용을 적용하라는 의미입니다.
보시는 대로 세번째 줄만 녹색이 됐습니다.
p:nth-child(odd){color:green;} 이렇게 고치면 홀수 번째 줄만 녹색이 됩니다.
p:nth-child(even){color:red;} 이것까지 추가해 보세요.


이 기능은 아주 유용하겠죠?

다음 강좌에서도 계속 CSS에 대해 알아 보겠습니다. 6
반응형

HTML5 시작하기

2011. 12. 7. 03:32 | Posted by 솔웅


반응형
HTML5 공부 첫번째 시간입니다.

우선 HTML5를 하려면 기본적으로 가지고 있어야 할 지식이 있습니다.
우선 HTML 하고 CSS 그리고 JavaScript 에 대해서는 알고 있어야 합니다.

그리고 코딩을 하려면 에디터 프로그램을 사용해야 합니다.
윈도우에서는 NotePad++, Acroedit, UltraEdit, EditPlus 등등이 있고 그냥 윈도우에 기본적으로 깔려있는 메모장(NotePad)를 사용해도 됩니다.
맥에서는 Xcode도 되겠고 TextEdit도 되구요 그리고 NotePad++ 같이 맥용으로 따로 나왔으면 그걸 사용하셔도 됩니다.
그리고 HTML5를 지원하는 브라우저가 있어야 합니다. 크롬,화이어폭스,사파리,인터넷 익스플로러 등의 브라우저 최신버전이 있어야 합니다.

일단 이런 지식들과 도구들은 다 갖추고 있는 것으로 하고 HTML5를 공부해 보겠습니다.

이론적인 부분들은 많이 건드리지 않고 곧바로 코딩을 하고 눈으로 확인해보고 하는 식으로 할겁니다.

아주 기본적인 틀이 되는 코드는 아래와 같습니다.

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title> Dougy's HTML5 </title>
    <link rel="stylesheet" href="main.css">
</head>

<body>

</body>
   
</html>

첫째줄은 아주 중요한 부분으로 HTML5를 사용하겠다는 표시 입니다.
두번째 html 시작하면서 언어를 영어로 했습니다. 한국에서 개발할 때는 한국어로 해 주셔야 겠죠?

그리고 title은 브라우저에 나타날 페이지 제목이구요. 그 아래에는 main.css라는 css파일을 스타일쉬트로 사용하겠다는 내용입니다.

body태그 안에는 아직 아무것도 없습니다.
이 코드를 실행하면 아래와 같이 나옵니다.

윗 부분 tab에 Dougy's HTML5 라고 title에 있는 내용이 있습니다.
그리고 나머지는 모두 빈 공간입니다.

아직까지 이 문서가 HTML5로서 다른 HTML(XHTML)과 다른 부분은 맨 첫줄 하나 입니다. 나머지는 전부 일반 HTML과 같습니다.

홈페이지를 보면 대개 윗쪽에 회사 로고 등이 있는 header가 있습니다
그리고 그 아래에 메뉴 버튼들이 있구요. (navigation)
왼쪽에는 그 메뉴의 서브 메뉴들이 있구.
가운데 넓은 공간에 주요 내용들이 들어갑니다.

그리고 맨 밑에는 footer가 있어서 copyright 부분이 들어가구요.

우선 이 일반적인 패턴을 따라서 HTML5로 화면을 하나 만들어 보겠습니다.

body 태그 안에 아래 내용을 넣어 보세요.

    <header>
        <h1> Welcome to Dougy's HTML5. </h1>
    </header>
   
    <nav>
        <li> Home </li>
        <li> Tutorials </li>
        <li> Podcast</li>
    </nav>
   
    <section>
       
    </section>
   
    <aside>
        <h4> News </h4>
        DDanzi guys have visited Zuccotti Park Yesterday.
    </aside>
   
    <footer>
        Copyright Bucky thenewboston.
    </footer>
   
자 이 코드를 넣고 저장한 다음 브라우저로 불러오면 아래와 같이 나옵니다.


 <section> 태그 안에 아무런 내용을 넣지 않았을 겁니다.
이 부분을 채우겠습니다.

<body> 태그 안에 header,nav,section,aside,footer 레이아웃을 넣었듯이 각 레이아웃 안에 또 레이아웃을 넣을 수 있습니다.

이 섹션 안에는 여러 기사를 표한할 수 있도록 큰제목, 작은 제목, 내용, footer 형식의 레이아웃들로 채워 넣겠습니다.

        <article>
            <header>
                <hgroup>
                    <h1> DDanzi in NY</h1>
                    <h2> come to Zuccotti Park with Pizza</h2>
                </hgroup>
            </header>
            <p> DDanzi guys have visited in Zuccotti park yesterday to encourage the occupier of Occupy Wall St. Protesters.</p>
            <footer>
                <p> -- written by Dougy </p>
            </footer>
        </article>

첫번째 기사는 이렇게 채워 넣겠습니다.
header가 있고 이 header는 큰 제목과 작은 제목 두개가 있습니다.
이 두 제목들은 hgroup 태그로 묶겠습니다.
그리고 기사 내용이 들어가구요.
누가 기사를 썼는지 가 들어갈 footer가 있습니다.
이게 section태그에 들어갈 레이아웃입니다.

기사를 하나 더 넣겠습니다. 위 코드를 그대로 복사해서 그 아래에 붙여 넣으세요.

        <article>
            <header>
                <hgroup>
                    <h1> Title of Article 2</h1>
                    <h2> Subtitle for Article!</h2>
                </hgroup>
            </header>
            <p> This is the 2nd article. </p>
            <footer>
                <p> -- written by Dougy </p>
            </footer>
        </article>

똑 같은 형식에 그 내용들만 바뀌었습니다.

이것을 화면으로 보면 아래와 같습니다.


자 여기까지 간단하게 HTML5 구조 맛보기를 했습니다.


다음시간에는 CSS로 제대로 생각했던 Layout 을 브라우저에 표현하는 방법을 배울겁니다.


반응형


반응형
모바일 애플리케이션으로 E-Book을 구현하거나 하다 보면 책장 넘기는 효과를 주면 훨씬 더 실감나는 E-Book 앱을 만들 수 있습니다.

오늘은 이 책장 넘기는 효과 주는 방법에 대해 공부하겠습니다.
오늘 소개하는 코드는 아주 기본적인 기능만 있습니다.

이 코드에다 여러분이 여러 효과를 주시면 더욱 더 그럴싸한 e-Book을 만들 수 있을 겁니다.

페이지 넘김 효과를 주기 위해서는 두가지 방법으로 이 효과를 구현할 수 있습니다.
첫번째는 frame-based animation을 구현하는 겁니다.. 그러기 위해서 스크린 만한 이미지들이 필요합니다.  즉 아이폰, 아이패드에 맞는 이미지들이 따로따로 있어야 합니다. 그것도 폰을 세웠을 때와 눕혔을 때 모두 다 따로따로 있어야 합니다.

두번째는 optical illusion을 통해 하나의 이미지, bitmap mask 그리고 transitions를 통해 구현하는 방법입니다.

두번째 방법이 훨씬 좋겠죠? 오늘 제공될 소스코드에는 이 두번째 방법을 소개해 드릴겁니다.



Step 1. Preliminary Work

페이지 넘김 효과를 사용하기 위해서는 몇개의 이미지들이 필요합니다.

이 두 이미지는 각각 page1.jpg,page2.jpa입니다.
이것 말고 책장 넘기는 효과를 줄 이미지들도 필요합니다.


이제 이미지가 마련 됐으면 코딩을 해 보겠습니다.

-- hide the status bar
display.setStatusBar( display.HiddenStatusBar )

local page1 = display.newImageRect( "page1.jpg", display.contentWidth, display.contentHeight )
page1:setReferencePoint( display.TopleftReferencePoint )
page1.x, page1.y = display.contentWidth*0.5, display.contentHeight*0.5

local page2 = display.newImageRect( "page2.jpg", display.contentWidth, display.contentHeight )
page2.x, page2.y = display.contentWidth*0.5, display.contentHeight*0.5
page2:toBack() -- make sure 2nd page is underneath the first one

local curlPage = display.newImageRect( "curlPage.png", display.contentWidth, display.contentHeight )
curlPage.x, curlPage.y = display.contentWidth*0.5, display.contentHeight*0.5
curlPage.isVisible = false

-- group to hold the page that will be turned (as well as the "curl" page)
local turnGroup = display.newGroup()

이 4개의 이미지를 불러오는 코드 입니다.
두번째 페이지는 첫번째 페이지 밑으로 가게 했습니다. 그리고 curlPage는 inVisible을 false로 했구요.
이 코드만 실행하면 책 겉장만 보일겁니다.

Step 2. Page Curl Functions

다음은 페이지 넘김 효과를 줄 함수들입니다.

-- The following function will turn the page "back"
local function gotoPrevious( curlPage, time )
local time = time or 500

curlPage.isVisible = true
local hideCurl = function()
curlPage.isVisible = false
turnGroup:setMask( nil )
end
transition.to( turnGroup, {maskX=display.contentWidth*0.5+100, time=time } )
transition.to( curlPage, { rotation=45, x=display.contentWidth+(display.contentWidth*0.10), y=display.contentHeight + (display.contentHeight*0.25), time=time, onComplete=hideCurl })
end

-- The following function will turn the page "forward"
local function gotoNext( currentPage, curlPage, time )
-- add "pages" to page turning group
turnGroup:insert( currentPage )
turnGroup:insert( curlPage )

-- mask should match dimensions of content (e.g. content width/height)
local curlMask = graphics.newMask( "mask_320x480.png" )
turnGroup:setMask( curlMask )

-- set initial mask position
turnGroup.maskX = display.contentWidth * 0.5+100
turnGroup.maskY = display.contentHeight * 0.5

-- prepare the page-to-be-turned and the curl image
currentPage:setReferencePoint( display.BottomLeftReferencePoint )
curlPage:setReferencePoint( display.BottomRightReferencePoint )
curlPage.rotation = 45
curlPage.x = display.contentWidth+(display.contentWidth*0.10)
curlPage.y = display.contentHeight + (display.contentHeight*0.25)
curlPage.isVisible = true

-- show pagecurl animation and transition away (next page should already be in position)
local time = time or 500
transition.to( turnGroup, { maskX=-display.contentWidth*0.75, time=time } )
transition.to( curlPage, { rotation=0, x=0, y=display.contentHeight+20, time=time} )
curlPage.yScale = curlPage.y * 0.2
end

소스코드를 좀 살펴 볼까요?

처음에 나오는 함수는 gotoPrevious 함수 입니다.
인수로 curlPage와 time을 받습니다.
그리고 로컬 변수 time에 값을 넣고 curlPage를 보이도록 바꿉니다.
이 함수의 로컬 함수 hideCurl에서 curlPage를 안 보이도록 하고 setMask를 해제하는 로직을 넣어 둡니다.
transition.to로 turnGroup에 움직이는 효과를 주고 또 curlPage도 움직이는 효과를 주고 이 효과가 끝나면 로컬 함수인 hideCurl을 불러와 curlPage를 안 보이도록 하고 setMask를 해제 하도록 합니다.

그 다음은 gotoNext 함수인데요 currentPage,curlPage,time을 인수로 받습니다.
이 함수 내용은 좀 기네요.
turnGroup에 인수로 받은 currentPage와 curlPage를 insert 합니다.

그리고 curlMask 로컬 변수에 graphcs.newMask로 mask_320X480.png를 세팅해 넣습니다.
graphics.newMask 는 http://developer.anscamobile.com/node/5248 API를 참조하세요.
그리고 이 curlMask를 turnGrooup에 insert 합니다.
maskX와 maskY 값을 할당해 주고요 이미지들의 레퍼런스 포인트를 bottomLeft BottomRight 로 주고 curlPage를 45도 회전시키고 이 curlPage의 위치를 설정해 줍니다.
그리고 이 curlPage.isVisible을 true로 세팅해 줍니다.
그 다음 time값을 세팅하고 transition.to로 움직임 효과들을 줍니다.

이렇게 하면 앞장으로 넘기고 뒷장으로 넘기는 효과를 주는 함수까지 완료 했습니다.

다시 간단히 정리하자면요.
gotoNext()
1. page-to-turn으로 insert하고 curl 이미지를 turnGroup에 넣는다.
2. 비트맵 마스크를 turnGroup에 적용한다.
3. 페이지와 curl  이미지의 레퍼런스 포인트를 bottom right으로 한다.
4. curl 이미지를 회전시키고 시작 위치를 잡아준다.
5. transition을 시작한다.

gotoPrevious()
1. curl 이미지를 visible하게 한다.
2. onComplete 리스너를 달아서 transotion이 끝나면 hiding 페이지를 하도록 하고 turnGroup에서 비트맵 마스크를 없앤다.
3. transition 애니메이션을 시작한다.

Step3. Initiate the Page Curl

timer.performWithDelay( 2000, function() gotoNext( page1, curlPage, 500 ); end )
timer.performWithDelay( 5000, function() gotoPrevious( curlPage, 500 ); end )

이 함수들을 실행하기 위해 2초후에 gotoNext함수를 부르고 5초후에 gotoPrevious 함수를 부릅니다.

그러니까 이 소스코드로는 손가락으로 책장을 넘기는 효과가 아니라 2초후에 책장이 넘어가고 5초후에 책장이 다시 넘어오게 될 겁니다.

제대로 구현하려면 여러분들이 touch나 tap 리스너를 달아서 이 책장 넘김 효과를 컨트롤 하셔야 합니다.

이 소스코드에 대한 원문 강좌는 아래 페이지에 있습니다.
http://blog.anscamobile.com/2011/12/how-to-create-a-page-curl-in-corona/

그리고 소스파일은 아래에 있습니다.

그럼 오늘도 즐코딩.....


반응형

WEB APP 시작하기...

2011. 12. 5. 06:24 | Posted by 솔웅


반응형
Corona SDK로 안드로이드,iPhone 용으로 동시에 빌드되는 앱을 만들다 보니까 새로운 기술이 뭐 또 없나 살펴보게 되더라구요.

그래서 찾다가 보니까 HTML 5 로 게임을 만들면 어떤 모바일 OS 던 상관없이 게임만 만들면 모든 스마트폰에서 사용할 수 있을 것 같애요.

그래서 1주일 동안 관련 기술들을 Research 해 봤습니다.

아직 잘은 모르지만 이런 웹 앱을 만들려면 기본적으로 HTML5 에 대한 것은 알아둬야 겠더라구요.

그래서 따로 WEB_APP 카테고리를 만들었습니다.

기본적으로 HTML 5를 다룰거구요. 모바일 앱 기술 중 하나인 Sencha Touch 도 공부할 생각입니다.

또 다시 새로운 기술을 배울 생각을 하니까 흥분되는데요... ^^

그럼 앞으로는 Corona SDK, HTML 5, Sencha Touch 로 이 블로그를 채워 갈께요...


반응형


반응형
1. 아마존 (amazon.com)의 Kindle fire 시뮬레이터 추가 - http://yfrog.com/h4yz7gp

2. 올해의 Best Mobile Application 후보에 Nominate - http://crunchies2011.techcrunch.com/nominate/?NDpDb3JvbmEgU0RL

Nominate your favorite companies, products and people for one of our Crunchie award categories below.  Everyone is invited to submit one nomination per category per day through Tuesday night, December 13th, 2011 at 11:59PM PST. Once you nominate a company in a category, you are able to share your nominations through Twitter and Facebook, or you can embed a badge or link to the nomination.  Top nominees in each category will be notified and become 2011 Crunchies Finalists.

Finalist voting will begin in early January 2012.

For past winners, see the page for 2007, 2008, 2009 and for 2010.

좋아하는 회사, 상품 사람들을 Crunchie award category에서 nominate 해 주세요. 누구나 2011년 12월 13일 목요일 밤까지 하루에 한개 카테고리당 1개씩 submit 할 수 있습니다. 카테고리 안에 한 회사를 nominate했으면 당신의 nomination을 트위터나 페이스북을 통해 당신의 친구들과 share할 수 있습니다. 또는 노미네이션 뱃지나 링크를 embed할 수 있습니다. 각 카테고리의 top nominees들은 2011 Crunchies finalists가 되어 발표 됩니다. 최종 결선은 2012년 1월 초에 있을 겁니다.

지난 우승자들을 보려면 링크를 클릭하세요 .2007, 2008, 2009 and for 2010.

3. HP 가 2주 이내에 새로운 Web OS를 내 놓는 답니다.
http://moconews.net/article/419-yes-hp-may-finally-have-some-news-on-webos-in-the-next-two-weeks/

오늘 제가 접한 새로운 소식들은 이렇습니다.

코로나가 아마존 앱마켓에 특별히 자체 개발한 게임 앱을 올려 놓고 홍보하고 그러더니...
시뮬레이터에 아마존의 Kindle Fire 까지 추가했군요.
코로나와 아마존이 계속 긴밀한 관계를 맺고 있는 것 같습니다.

그리고 Corona SDK 가 올해의 베스트 모바일 앱에 추천해 달라고 홍보 하고 있네요.

작년의 베스트 모바일 앱은 구글 맵이 차지 했었네요.

Best Mobile App 2010
Bump
Chomp
Google Mobile Maps for Android (winner)
Hashable
Instagram (runnerup)


저는 Corona SDK를 베스트 모바일 애플리케이션 후보로 추천하고 트위터와 페이스북에도 쉐어 했습니다. ^^




반응형


반응형
자주 사용하는 기능을 모듈화 하면 나중에 재사용할 때 아주 편하고 개발 기간도 많이 save해 줍니다.
예를 들어 스크린 사방 벽에 wall을 만들고 객체들이 이 벽에 맞고 튀어야 할 때 사방 벽 만드는 부분을 모듈화 한다던지.
아니면 레벨별로 배경화면을 다르게 해야 되는 게임을 개발 할 때 배경화면 설정 부분을 모듈화 한다던지.
그 외 여러가지 자기만의 로직을 모듈화 해 두면 그게 자산이 되고 나중에 개발할 때도 많은 도움이 됩니다.

오늘은 이렇게 자기만의 코드를 모듈화 하는 방법에 대해 알아보겠습니다.


낯익은 사진이죠?
자기가 힘들여서 터득한 know how를 열심히 다른 개발자들고 Share하고 있는 peach입니다.
홈페이지는 http://peachpellen.com/ 입니다. 가셔서 고맙다고 코멘트 남기는 것도 좋을 것 같습니다.

이 앱에는 두가지가 모둘화 돼 있습니다.

첫번째는 background image 를 표시하고 이 배경이미지를 클릭하면 없어지는 함수입니다.
그리고 두번째는 x,y좌표 파라미터를 받아서 peach.png 이미지 파일을 해당 x,y좌표에 display 하는 겁니다.

이 모듈화 된 소스를 보겠습니다. ----- setup.lua -----
-- Makes sure the file can be "seen"
module(..., package.seeall)

-- Set up the background
function background (event)
    -- Display the background
    local background = display.newImage ("bg.png")
        -- The function to remove the background
        function killbackground (event)
            background:removeSelf()
        end
    -- Add the event listener to the background
    background:addEventListener("tap", killbackground)
end

-- Insert the traditional Peach pic, this time using params
function peach (params)
    -- My picture
    local peach = display.newImage ("peach.png")
    -- The X and Y of my pic, defined when the function is called
    peach.x = params.x
    peach.y = params.y  
end

첫번째 부분은 모듈화 하기 위해 지정해 줘야 하는 코로나 SDK의 규칙입니다.
두번째 event를 인수로 받는 background라는 함수입니다.
bg.png를 display하고 여기에 tap 이벤트 리스너를 달아서 tab하면 배경이미지를 없애는 함수 입니다.
세번째 함수는 peach라는 함수로 peach.png를 display하고 x,y좌표를 전달받은 x,y좌표로 설정해 이미지를 그 위치에 그려줍니다.

그러면 이 모듈화된 부분을 어떻게 사용하는지 알아보겠습니다.

-- Hides the status bar
display.setStatusBar (display.HiddenStatusBar)

-- Requires setup.lua
require "setup"

-- Performs our "background" event from setup.lua (Create background, create remove function, add listener)
setup.background()

-- Performs our "peach" event; note the x and y - these are our "params"
setup.peach ({ x = 160, y = 240 })

-- Uncomment the block below to see how useful this type of code is when spawning lots of the same image/object
--[[
setup.peach ({ x = 60, y = 100 })
setup.peach ({ x = 60, y = 400 })
setup.peach ({ x = 260, y = 100 })
setup.peach ({ x = 260, y = 400 })
--]]

--[[
*NOTES*
Like many of my tutorials this is as simple as it gets; it shows how to add an image, add a function to that image and
remove that image all in one function from a seperate Lua file.

There is near limitless potential for using multiple files to keep your code clean and organised however this mini
tutorial is only intented to highlight the basics.

By learning how to use the simple examples shown here you are well on your way to much tidier code; something that
will really come in handy as your projects grow larger and more ambitious.
--]]

실제 코드는 단 세 줄 입니다.
우리의 친구 peach가 아주 자세하게 주석을 달아 줬네요.

우선 setup.lua를 require하구요.
background()함수를 불러옵니다.
그리고 peach함수도 해당 파라미터를 넣어서 불러오구요.

그러면 끝입니다.

이렇게 되면 setup.lua에 있는 함수는 다른 앱을 개발 할 때도 그대로 모듈로 사용할 수 있습니다.

원본 소스코드는 아래 압축파일에 있습니다.


그럼 다음 시간에 뵐께요.
반응형