Sugar Activity Tutorial/lang-ko: Difference between revisions

From OLPC
Jump to navigation Jump to search
(New page: {{Koreans}} The tutorial explains step by step how to create the [http://divieira.googlepages.com/HelloWorld-1.xo Hello World activity bundle]. Create the bundle directory structure: mk...)
 
mNo edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{ Translation | lang = ko | source = Sugar Activity Tutorial| version = 51935}}
{{Koreans}}
The tutorial explains step by step how to create the [http://divieira.googlepages.com/HelloWorld-1.xo Hello World activity bundle].
튜토리얼은 [http://divieira.googlepages.com/HelloWorld-1.xo 헬로우 월드 액티비티 번들]을 만드는 법을 단계별로 설명합니다.


번들 디렉토리 구조를 만듭니다:
Create the bundle directory structure:


mkdir HelloWorldActivity.activity
mkdir HelloWorldActivity.activity
mkdir HelloWorldActivity.activity/activity
mkdir HelloWorldActivity.activity/activity


Write the activity.info file, to describe your bundle in the activity sub-directory (i.e. HelloWorldActivity.activity/activity/activity.info). The [[Activity Bundles]] specification explain in detail the meaning of each field.
activity.info file을 작성하여, 액티비티 서브디렉토리 내의 귀하의 번들을 설명합니다 (i.e. HelloWorldActivity.activity/activity/activity.info). [[Activity Bundles|액티비티 번들]] 사양은 필드의 의미를 상세히 설명합니다.


[Activity]
[Activity]
Line 17: Line 17:
show_launcher = yes
show_launcher = yes


Design an icon for your activity, according to the [[Sugar_Icon_Format|icon format]] and place it in the activity sub-directory. The file name should match the one specified in the info "activity-helloworld.svg".
[[Sugar_Icon_Format|아이콘 포맷]] 따라, 귀하의 액티비티를 위한 아이콘을 만들어, 액티비티 서브디렉토리에 위치시킵니다. 파일 이름은 info "activity-helloworld.svg" 에서의 이름과 같아야만 합니다.


<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
Line 30: Line 30:
</svg>
</svg>


Write the setup.py script in the top level directory (i.e. hello.activity/setup.py), which in most cases will look like this:
setup.py 스크립트를 레벨 디렉토리 (i.e. hello.activity/setup.py) 작성합니다. 대부분 다음과 같은 모습입니다:


#!/usr/bin/env python
#!/usr/bin/env python
Line 37: Line 37:
bundlebuilder.start()
bundlebuilder.start()


귀하의 액티비티를 코딩합니다. .info 파일 안에 "class"로 표현된 이름이 귀하의 코드를 구동할 클래스 이름입니다. 위의 activity.info의 경우, 우리는 탑 레벨 모듈을 HelloWorldActivity.HelloWorldActivity로 이름 붙였습니다 (모듈 이름이 대문자로 시작하는 것은 파이선 스타일의 좋지 못한 관례입니다. 보다 표준적인 형태의 이름을 이용하셔도 무방합니다).
Code your activity. The name you specified in the .info file as "class" is the name of the class which runs your code. For the activity.info file above, we specify a top-level module named HelloWorldActivity.HelloWorldActivity (please note that the use of uppercase names in module names is considered poor Python style, feel free to use an activity name with more standard style names).


from sugar.activity import activity
from sugar.activity import activity
Line 80: Line 80:
print "AT END OF THE CLASS"
print "AT END OF THE CLASS"


패키지에 포함되는 파일 목록을 보여주는 MANIFEST 파일을 만드세요. (파일 이름 끝에 공간을 남기면 안됩니다.)
Create a MANIFEST, containing the list of the files to include in the package. (Note: Be sure '''not''' to leave blank lines at the end of the file.)


HelloWorldActivity.py
HelloWorldActivity.py


귀하의 디렉토리 구조는 다음과 같은 모습이어야 합니다:
Your directory structure should now look like this:
HelloWorldActivity.activity/
HelloWorldActivity.activity/
HelloWorldActivity.activity/setup.py
HelloWorldActivity.activity/setup.py
Line 93: Line 93:
HelloWorldActivity.activity/MANIFEST
HelloWorldActivity.activity/MANIFEST


개발할 번들을 셋업하세요.
Setup your bundle for development


./setup.py dev
./setup.py dev
Line 99: Line 99:
(It appears this just creates a symlink in ~/Activities .)
(It appears this just creates a symlink in ~/Activities .)


== Running ==
== 구동하기==
슈가를 구동하면, 귀하의 액티비티 아이콘이 프레임에 나타나야 합니다. (ctrl-alt-erase로 슈가를 재시작하세요.)
If you now run sugar the activity icon should be visible on the frame. (You have to restart sugar to get it to pick up the change if you just installed it. Hit ctrl-alt-erase.)


귀하의 번들 디렉토리에서 곧바로 코드를 편집할 수도 있습니다. 귀하의 액티비티가 처음 런치될 때는 창을 닫더라도 프로세스가 남아 있으므로, 나중에 클릭으로 리로드하려면, sugar-activity-factory를 kill 해야 합니다.
You can also edit the code in your bundle directory directly. Note that the first time your Activity is launched, it leaves a process around even if you close the window, so you must kill the sugar-activity-factory to get it to reload when you click again.


== Distribution ==
== 배포==
귀하의 번들을 배포할 XO 패키지를 만드세요. (XO 파일은 JAR 파일처럼, 일부 여분의 메타데이터와 더불어 MANIFEST에서 압축 파일로 구성되어야 합니다. 일부 현지화 기능이 있으며, 나중에는 서명을 첨부할 수 있을 것으로 기대합니다.)
Create a xo package to distribute your bundle. (An xo file is essentially a zip file built from the MANIFEST with some extra metadata, like a JAR file. It also has some localization ability, and in the future we expect to be able to sign these too.)


./setup.py dist
./setup.py dist


이 xo를 노트북에 설치하려면, 인스톨러 스크립트를 이용하면 됩니다.
To install the xo on a laptop you can use the installer script.


sugar-install-bundle HelloWorld-1.xo
sugar-install-bundle HelloWorld-1.xo
Line 117: Line 117:
[[Category:Sugar]]
[[Category:Sugar]]
[[Category:HowTo]]
[[Category:HowTo]]
[[Category:Activity]]
[[Category:Activities]]
[[Category:Developers]]
[[Category:Developers]]

Latest revision as of 14:50, 23 September 2007

  번역근원 Sugar Activity Tutorial 원문  
  english | 日本語 | 한국어 | português | español   +/- 차이  

이 튜토리얼은 헬로우 월드 액티비티 번들을 만드는 법을 단계별로 설명합니다.

번들 디렉토리 구조를 만듭니다:

mkdir HelloWorldActivity.activity
mkdir HelloWorldActivity.activity/activity

activity.info file을 작성하여, 액티비티 서브디렉토리 내의 귀하의 번들을 설명합니다 (i.e. HelloWorldActivity.activity/activity/activity.info). 액티비티 번들 사양은 각 필드의 의미를 상세히 설명합니다.

[Activity]
name = HelloWorld
service_name = org.laptop.HelloWorldActivity
class = HelloWorldActivity.HelloWorldActivity
icon = activity-helloworld
activity_version = 1
show_launcher = yes

아이콘 포맷에 따라, 귀하의 액티비티를 위한 아이콘을 만들어, 액티비티 서브디렉토리에 위치시킵니다. 이 파일 이름은 info "activity-helloworld.svg" 에서의 이름과 같아야만 합니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
  <!ENTITY fill_color "#FFFFFF">
  <!ENTITY stroke_color "#000000">
]>
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50">
  <rect x="1" y="1" width="48" height="48"
  style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2"/>
</svg>

setup.py 스크립트를 탑 레벨 디렉토리 (i.e. hello.activity/setup.py)에 작성합니다. 대부분 다음과 같은 모습입니다:

#!/usr/bin/env python
from sugar.activity import bundlebuilder
if __name__ == "__main__":
    bundlebuilder.start()

귀하의 액티비티를 코딩합니다. .info 파일 안에 "class"로 표현된 이름이 귀하의 코드를 구동할 클래스 이름입니다. 위의 activity.info의 경우, 우리는 탑 레벨 모듈을 HelloWorldActivity.HelloWorldActivity로 이름 붙였습니다 (모듈 이름이 대문자로 시작하는 것은 파이선 스타일의 좋지 못한 관례입니다. 보다 표준적인 형태의 이름을 이용하셔도 무방합니다).

from sugar.activity import activity
import logging

import sys, os
import gtk

class HelloWorldActivity(activity.Activity):
    def hello(self, widget, data=None):
        logging.info('Hello World')

    def __init__(self, handle):
        print "running activity init", handle
        activity.Activity.__init__(self, handle)
        print "activity running"

        self.set_title('Hello World')

        # Creates the Toolbox. It contains the Activity Toolbar, which is the
        # bar that appears on every Sugar window and contains essential
        # functionalities, such as the 'Collaborate' and 'Close' buttons.
        toolbox = activity.ActivityToolbox(self)
        self.set_toolbox(toolbox)
        toolbox.show()

        # Creates a new button with the label "Hello World".
        self.button = gtk.Button("Hello World")
    
        # When the button receives the "clicked" signal, it will call the
        # function hello() passing it None as its argument.  The hello()
        # function is defined above.
        self.button.connect("clicked", self.hello, None)
    
        # Set the button to be our canvas. The canvas is the main section of
        # every Sugar Window. It fills all the area below the toolbox.
        self.set_canvas(self.button)
    
        # The final step is to display this newly created widget.
        self.button.show()
    
        print "AT END OF THE CLASS"

패키지에 포함되는 파일 목록을 보여주는 MANIFEST 파일을 만드세요. (파일 이름 끝에 공간을 남기면 안됩니다.)

HelloWorldActivity.py

귀하의 디렉토리 구조는 다음과 같은 모습이어야 합니다:

HelloWorldActivity.activity/
HelloWorldActivity.activity/setup.py
HelloWorldActivity.activity/activity
HelloWorldActivity.activity/activity/activity.info
HelloWorldActivity.activity/activity/activity-helloworld.svg
HelloWorldActivity.activity/HelloWorldActivity.py
HelloWorldActivity.activity/MANIFEST

개발할 번들을 셋업하세요.

./setup.py dev

(It appears this just creates a symlink in ~/Activities .)

구동하기

슈가를 구동하면, 귀하의 액티비티 아이콘이 프레임에 나타나야 합니다. (ctrl-alt-erase로 슈가를 재시작하세요.)

귀하의 번들 디렉토리에서 곧바로 코드를 편집할 수도 있습니다. 귀하의 액티비티가 처음 런치될 때는 창을 닫더라도 프로세스가 남아 있으므로, 나중에 클릭으로 리로드하려면, sugar-activity-factory를 kill 해야 합니다.

배포

귀하의 번들을 배포할 XO 패키지를 만드세요. (XO 파일은 JAR 파일처럼, 일부 여분의 메타데이터와 더불어 MANIFEST에서 압축 파일로 구성되어야 합니다. 일부 현지화 기능이 있으며, 나중에는 서명을 첨부할 수 있을 것으로 기대합니다.)

 ./setup.py dist

이 xo를 노트북에 설치하려면, 인스톨러 스크립트를 이용하면 됩니다.

 sugar-install-bundle HelloWorld-1.xo

XXX Explain what the -1 suffix means.