Creating an activity/lang-ko
- This is an on-going translation
환영합니다 | Portal | XO Korea | Deployment | Content | Hardware | Software | Mesh Network | Ethics | LOS | XO City | Accreditation | Consortium
see also: Creating a content bundle
이 페이지는 초기 개념에서 릴리즈와 지원에 이르기가지 액티비티를 만드는 전과정을 요약하고 관련 링크를 제공합니다.
아이디어
하나의 액티비티를 만드는 첫 걸음은 좋은 아이디어입니다. OLPC는 어린이들에게 멋진 하드웨어 플랫폼일 뿐 아니라, 컴퓨터를 교육 도구로서 어떻게 활용할 지에 관해 다시 생각하는 것이기도 합니다. 특히, 액티비티들은 다음 사항을 포함해야 합니다:
- discoverability - 액티비티의 이용법이 직관적인가? 일반적으로 말해서, 덩치 큰 매뉴얼은 따분하며, 번역하기도 어렵습니다. 인터페이스가 직관적일 수록, 더 좋습니다. 가령, 텍스트보다는 이미지 버튼이 낫습니다.
- 확장성 - 교사와 어린이들이 그 용도를 쉽게 확장할 수 있는가? 가령, 퀴즈 액티비티는 교사들이 질문을 바꿀 수 있고, 따라서, 귀하가 제시하는 것 뿐 아니라, 기타 어떤 유형의 퀴즈 질문에도 이 액티비티를 이용할 수 있어야 합니다.
- 협동- 한 번에 한 명이 이상의 어린이가 귀하의 액티비티를 이용할 수 있는가? 뛰어난 액티비티들은 싱글 유저와 멀티 유저 모두를 지원하여야 합니다. 귀하의 게임은 멀티 플레이어가 가능한지, 귀하의 워드 프로세서는 동일한 문서에 둘 이상의 작성자가 참여할 수 있는지?
- More ...
이러한 아이디어들은 대부분 XO의 슈가 인터페이스의 핵심이며, 보다 상세한 정보를 위해 휴먼 인터페이스 가이드라인 및 교육 액티비티 가이드라인를 참조해 주십시오.
소프트웨어 아이디어와 기존의 액티비티들 (링크)도 참조하십시오. 기존의 팀에 참여하여 도움을 줄 수 있을 것입니다. 예술가 (링크) 및 프로그래머 (링크)를 포함하여 하나의 팀은 많은 요소들을 필요로 합니다 - 이러한 과정에 참여하는데 있어서 해당 액티비티의 모든 것을 알아야 할 필요는 없습니다.
디자인
휴먼 인터페이스 가이드라인 및 교육 액티비티 가이드라인가 귀하의 액티비티에 토대가 되지만, OLPC 하드웨어 플랫폼의 일부 주요한 측면도 귀하의 디자인 과정에서 간과해선 안됩니다.
고유한 하드웨어 환경에 대한 개괄
- 디스플레이
- stub
개발
귀하의 액티비티 개발을 시작되면 몇 가지 고려해야할 사항이 있습니다. 먼저, 프로그래밍 경험이 없다면, 프로그래밍 첫걸음에서 몇몇 튜토리얼들을 펼쳐봐야 합니다. 이미 진행 중인 프로젝트에 참여한다면 (또는 프로그래밍 경험과 더불어 귀하의 액티비티를 코딩한다면), OLPC 커뮤티티에 참여해야 합니다.
- mailing lists의 일부 그룹에 참여하십시오 - 이 리스트는 진행 중인 다수의 활동들과 최신 버전들이 논의되는 곳입니다. 액티비티 개발자에게 있어, 슈가 리스트와 게임 리스트는 현재 진행 중인 상황을 파악하는데 가장 좋은 참고자료 입니다. 하드웨어 플랫폼과 nitty gritty 세부 사항들, 그리고 devel list는 풍부한 최신 정보를 담고 있습니다.
- 커뮤니티에 자신을 소개하세요 - 귀하의 프로젝트를 설명하는 위키 페이지를 만드는 것으로 시작하는 게 좋습니다. 위키 계정을 만들고, 귀하에 대한 정보와 사진 등을 유저 페이지에 기재하세요. 귀하의 액티비티에 대한 위키 페이지를 만들고, 프로젝트 아이디어와 지향점, 귀하의 연락 정보, 귀하가 원하는 특정한 피드백 등을 기재하십시오. 코드 리포지토리, 버전 등의 기술적 측면은 아직 고려하지 마십시오. 프로젝트 위키 페이지는 처음 방문자들에게 해당 프로젝트에 대해 알리는 중심지가 됩니다. 가장 좋은 첫 걸음은 기존 Activities 중의 하나를 복사해서 붙이는 것입니다.
- 위키 페이지가 만들어지면, 리스트 가운데 한 그룹에게 해당 페이지의 링크가 게재된 이메일을 발송 하십시오. 그들은 귀하의 위키 페이지에 대한 자문과 제안 등을 제공할 것입니다.
- irc.freenode.net #sugar and #olpc-content에 귀 기울이고, 질문을 올리세요. 이것은 귀하의 질문에 대한 답변을 받을 수 있는 가장 빠른 방법입니다.
귀하의 액티비티 작성을 시작하십시오
There are two primary ways you can write activities for an XO, and both involve python:
- pyGTK - This is what Sugar is written in and is useful for activities that require lots of buttons and widgets
- pygame - This is a lightweight framework for for writing games that do not require lots of buttons and widgets, but instead move lots of images around on the screen.
Both pyGTK and pygame are python modules that work on many platforms. This allows you to start writing your activity without having an XO in your hand, and without trying to emulate Sugar. The best way to get started is to decide which category your activity fits into, and start to learn about these modules. Both of the websites have excellent starting tutorials, and it is often a good idea to download a working example and begin to change it towards the design of your activity to start off. At this point you are ready to start hosting your code at OLPC.
적어오 10라인의 코드를 작성했을 때
At this point you are ready to host your code in a repository so that other developers can start having a look at it. You should also be creating trac tickets to track bugs and feature requests. One of the main OLPC communication systems is through the dev.laptop.org trac page where people can see the status of activities as releases are prepared, testers can file bug reports, and translators can submit translations of your activity. You need to do three things to set this system up
- Request project hosting: You need to fill out an application and send it to the devel list (another good reason to join). If you have a nice wiki page outlining what you want to do, and a little bit of code, you should be all set for the application. Request a git tree, as well as a trac component for your activity (so you can file trac tickets under your application).
- Add a GPL license to your project files: The OLPC repository is public, so you want to be careful not to put any proprietary code in there. Also, you want to make sure that you are using an open source license on your code so that others can modify and extend it with ease. The GPL license howto provides some simple steps that you need to follow to get this straight (include a copy of the license, have a copyright declaration in each file, etc.) Now is a good time to do this if you only have 10 lines of code!
- Import your project into your git tree: See Importing your project for more instructions. Also, if you have not used git before, you may want to read Using_a_central_git_tree or the Git-SVN crash course.
(적어도 50라인의 코드를 작성했을 때) XO 위에서 작동하게 하십시오
It is a good idea to test out your activity on an XO, or an emulation environment sooner rather than later, because there are a few suprises. Most of them has to do with the screen being small in physical dimensions, but high in resolution. Other isssues are with speed - odds are that your development machine is much faster than an XO. Nonetheless, to even get your activity to run on an XO to see this for yourself, you need to do several steps
- Create a sugar wrapper for your activity
- Package the activity
- Put the activity on an XO or emulater
- Tweak, tweak, tweak
슈가를 뿌리세요
Depending on whether you used pyGTK or pygame, this process is a little different. For both of them, you need to start by following the steps at the Sugar Activity Tutorial. This tutorial outlines the basic directory structure that you need for your activity, as well as instructions for how to make an icon for your activity (as well as giving a small pyGTK example activity). However, you cannot complete the tutorial if you do not have sugar installed on your machine. For now we will pretend you don't so stop just before the invocation of setup.py.
For activities written in pygame, you need to perform 2 additional steps:
- get the olpcgames code from xxx: This is wrapper code that lets your activity run inside sugar. You should keep it in a directory called olpcgames/ within your activity directory.
- Create a file called activity.py with contents
import olpcgames class YourActivity(olpcgames.activity.PyGameActivity): """Your Descriytion as a Sugar activity.""" game_name = 'your_game_name' game_title = 'Your Game Title' game_size = (1200,825)
This ensures that the wrapper code is called properly within sugar.
패키지를 만드세요
Now for both methods (pyGTK or pygame), we can package the activity. For now we will not package it properly using the sugar bundle builder because we just want to see if the activity works. We will correct this below when we start to want testers to test the activity, and anyone to use it. Make sure all of your activity files are listed in your MANIFEST, and put the following code as your setup.py file (replace YourActivityName with the proper name)
#!/usr/bin/env python try: from sugar.activity import bundlebuilder bundlebuilder.start() except ImportError: import os os.chdir('..') os.system('cat YourActivityName.activity/MANIFEST | zip YourActivityName.xo -@') os.system('mv YourActivityName.xo ./YourActivityName.activity') os.chdir('YourActivityName.activity')
This way you can run
./setup.py
without sugar installed, and at the end you should find a zipped up .xo file ready for you to put on an XO or emulator.
XO 또는 에뮬레이터 위에 올리세요
Now you need to get that .xo file onto an XO or an emulator to test it out. (More detailed instructions). There is a directory called ~olpc/. Make a directory called Activities with ~olpc/, and unpack your .xo file there. You should now see a ~olpc/Activities/YourActivityName.activity directory. Now you need to restart the X-server, and when sugar loads (and all goes well), you should see your icon in the sugar dock. Click on it to test your activity.
문제 해결
- If you can't see your icon, there could be too many activities installed - just rename some of them to name.activity.bak, and restart X.
- There was a crash: go into the developer console log viewer and view the logs associated with your activity.
Tweak, tweak, tweak
- notes about the development environment
try: import sugar dev = 0 except ImportError: dev = 1 if dev: SCREENRECT = Rect(0,0,400,300) scale_x = 1./3. scale_y = 1./3. FONT_SIZE = 36 else: SCREENRECT = Rect(0,0,1200,825) scale_x = 1. scale_y = 1. FONT_SIZE = 36
릴리즈 프로세스
what else?
l10n
There isn't currently a l10n page targetted at developers. See:
- Python i18n
- Activity Translations
- Localization
- Resource links in Translating.
- Kuku/Localization Resource links at the bottom of Kuku.
슈가 번들 빌더를 이용한 패키징
- stub
테스팅과 리뷰
The Activity review and testing process is still being developed. Ask on #olpc-content.
The testing process is still being developed. See:
what else?
기타
참고 페이지
- list all pages mentioned with brief explanation here