단하나의 클래스로만 만든 손전등 어플(Flash Light - Bulb)를 업로드했다.


당연히 무료로... 올렸는데..


이 어플을 만든 목적은 정말 간단한 손전등들이 많은것 같지만.. 약간의 버그가 있는것들도 있고.. 광고 클래스들이 너무 많이 들어가 있어서,,,,, 광고 땡겨 오고 올리는데 더 많은 신경은 쓴 어플들이 많은것 같아서 그냥 직접 만들어 쓰다가..


올리게 되었다.


https://play.google.com/store/apps/details?id=com.hopeisagoodthing.candle&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5ob3BlaXNhZ29vZHRoaW5nLmNhbmRsZSJd


업로드한 버전은 애드몹 광고있는 버전이지만, 사용하다가 광고 없는 버전이 필요하다면.. (따로 보내드림 - 댓글로 메일주소를...)


이제는 그동안 만들어뒀던 간단한 앱들을 다 올려둬야 될것 같다..이왕 개발자 계정 결제해뒀으니.. 많이 올려서 공유해야 할것 같다.




블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

최근 개인 프로젝트를 하나 진행할 일이 있어, 안드로이드용으로 unit test를 진행하던중 검색 엔진을 직접 사용하는 방법에 대해서 한번 정리가 필요할 것 같아서 정리해본다. 


그 첫 번째 포스팅으로 이번은 DAUM api에 한해서만 정리한다.


일단 DAUM에서 제공하는 API를 사용하려면 다음 주소로 가서 한번 전체적으로 쑤욱 훓어봐야 한다.

http://dna.daum.net/apis/view_all   --> 여기는 전체 API들이 나오는곳

http://dna.daum.net/apis/search  --> 검색 API는 여기로~~


나는 검색 엔진만 사용할것이니까, 검색 API로 가서 한번 쑥 훓어보고 왔다. 사실 별거 없었다 .=_=






package com.hopeisagoodthing.searchtool;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;


public class DaumSearch implements ISearch
{
	private static final String TAG = "DaumSearch";
	private static final String BASE_URL = "http://apis.daum.net/search/";
	private static final String[] TARGETS=new String[]{"web?","blog?","board?","cafe?",};
	private static final String API_KEY="여기에자신의api key값을 넣어주면 됨";
	private static final String OUTPUT = "json";
	private static final class PARAM{
		private static final String API_KEY = "apikey=";	// always start with this parameter!!!
		private static final String OUTPUT = "&output=";
		private static final String QUERY = "&q=";		
		private static final String RESULT = "&result=";
	}	
	private static final String CHANEL = "channel";	        // json obj
	private static final String ITEM = "item";				// json array.
	private static final String DESC = "description";		// json obj
	
	private final List<String> mAnalyzedList = new ArrayList<String>();
	
	@Override
	public List<String> getAnalyze(final String query, final int resultSize, final IAnalyzer analyzer) {		
		mAnalyzedList.clear();	

		final StringBuilder builder = new StringBuilder();
		for(String target:TARGETS)
		{
			URL url = null;
			try {
				url = new URL(	BASE_URL + target +
									PARAM.API_KEY+ API_KEY +
									PARAM.OUTPUT + OUTPUT+
									PARAM.QUERY + URLEncoder.encode(query, "UTF-8") + 
									PARAM.RESULT+resultSize);
			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (UnsupportedEncodingException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			
			builder.setLength(0);
			try {
				String line = null;
				URLConnection connection = null;
				BufferedReader reader = null;
				connection = url.openConnection();
				
				//connection.addRequestProperty("Referer", /* Enter the URL of your site here */);

				reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
				
				while((line = reader.readLine()) != null) {
					 builder.append(line);
					}
				
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		
		
			try {
				Log.e(TAG,"DAUM Result START============================================================");
				//Log.e(TAG,builder.toString());
				final JSONObject json = new JSONObject(builder.toString());
				final JSONObject resultsJson = json.getJSONObject(CHANEL);
				final JSONArray resultArray = resultsJson.getJSONArray(ITEM);
				
				final int arraySize = resultArray.length();
				for(int i = 0; i< arraySize ; i++)
				{
					final JSONObject result = resultArray.getJSONObject(i);
					final String content = result.getString(DESC);
					analyzer.analyze(content,mAnalyzedList);				
				}
				Log.e(TAG,"DAUM Result END ============================================================");
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}		
		return mAnalyzedList;		
	}	
}
블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,
얼마전 아주 사소하지만, 개인적으로 많은 경험과 배움을 얻을수 있는 iOS용 게임을 만들어 미국 앱스토어에 등록을 했다.

물론, 모두가 원하는 대박이 나지는 않았다.

정말 개인적으로 많은 것들을 알수 있게 해주었고, 지구상에서 많은 다양한 시장에서의 반응을 모을수 있는 계기가 되었다.

게임을 등록하고 나서 보니, 그 동안 많은 시행착오를 겪었는데, 어디하나 정확하게 정리해둔 것이 없는것 같아, 많은 시간이 지났으나 이제부터 이곳의 한 카테고리를 빌려 그 개발과정 및 후기를 정리해서 올리도록 하겠다.

1. iOS앱들이 대박나는데, 나도 해볼까??
대박은 나지 않았다. 
앱을 제작하고, 등록하는데 들어간 총비용은 개발자 계정 104,000원 이 전부였다.
물론 보통의 경우 Mac OS를 운영할수 있는 Mac Book이라던지, 미니맥들을 구매해야 하나, 나는 해킨을 이미 사용하고 있어서 그럴 필요는 없었다. Mac Book을 구매하려면 보통 100만원은 추가로 비용을 잡고 있어야 한다.

게임을 만들때 가장 필요한 요소가 디자인 부분인데, 다행이도 하늘에서 내려준 디자이너가 바로 내 옆에 있었다.(물리적으로는 200킬로 가량 떨어져있다.) 그에게 이런 이런 작업이 필요한데, 해보겠느냐고 오랜시간 설득하고 회유하고 한 결과, 현재 앱스토어에 등록된 게임의 모든 이미지를 직접 작업할수 있었다.(다행이도 원화는 디자이너의 언니분께서 해주셨다.) 

이로서 개발자 인건비 0원(본인), 디자이너 인건비 0원으로 시작하여 앞으로 계속 만들 게임들의 수익을 정확하게 배분하기로 하고 시작하였다.

개발방법은 회사를 다니기때문에, 회사에서는 정말 열심히 일하고, 퇴근해서 밤 10시부터 대략 2~3시간 정도씩 매일 작업하는 것으로 진행했다.
이렇게 진행해도 충분히 진행가능하였으며, 디자이너와 이메일과 메신저등으로이야기 하며 작업을 분담 진행하였기 때문에 생각보다 효율적으로 진행할 수 있었다.

총 소요된 시간은 대략 6개월 정도이다, 레벨 45개, 3가지 시나리오를 구성하였으며, 총 투입된 이미지 리소스들은 대략 100개의 파일이 넘는다.

그리고 사운드를 구할곳이 없어서, 돈주고 살까 했으나, 아직 그럴 단계의 게임이 아니었기에 무료로 리소스를 구할수 있는 곳을 찾아서 사용하였다.

내 직업이 소프트웨어 개발자 이지만, Objective C를 능숙하게 다룰줄 몰랐으며, 게임엔진에 대한 지식또한 전무하였다. 그리고 물리엔진에 대한 개념은 있으나, 이번 작업을 통해 완전히 이용할수 있게 되었다.

다음 포스트에서 게임 개발에 필요한 기본적인 장비 셋팅(개발환경 설치) 및 게임엔진 선택 및 설치, 그리고 물리엔진 설치에 대해서 이야기 하도록 하겠다.

 

'코딩하고 > iOS' 카테고리의 다른 글

iOS용 게임 개발기 -4.1-  (0) 2011.08.02
iOS용 게임 개발기 -4-  (0) 2011.08.01
iOS용 게임 개발기 -3.1-  (0) 2011.07.11
iOS용 게임 개발기 -3-  (0) 2011.07.11
iOS용 게임 개발기 -2-  (0) 2011.07.09
블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

글을 쓰거나, 읽을때, 종종 개발과 계발의 차이를 도대체 알수가 없어 필자는 "개발"로 통일해서 쓰곤했다.

혹시나 하는 궁금증을 해결하고자 계발과 개발을 차이를 살펴보았다.

계발 []
지능을 깨우쳐 열어준다는 뜻으로, 문답을 통하여 자발적으로 이해하게 하여 지식을 향상시키고 창의와 자조심()을 길러 주는 교육방법을 이르는 말.

 

: 열 계
: 밝힐 발

《논어()》  〈술이편()〉에서, "공자 왈() 분발하지 아니하면 열어 주지 아니하며, 뜻은 있으나 말하지 아니하면 이끌어 주지 아니하고, 한 모퉁이를 들어 가르치면 나머지 세 모퉁이를 스스로 깨닫지 아니하면 다시 일러 주지 아니한다[ , ]"라 하였는데, 이 글 가운데 '불계()'와 '불발()'의 끝 글자 두 개로 성어()한 말이다.

이 글은 공자의 교육 방법을 제시한 것이라 할 수 있다. 공자는 학문을 좋아하여 마음속으로부터 분발하여 의욕을 나타내는 제자들에게 그 다음 단계를 열어서 보여 주며, 하나라도 알고 싶어 애태우는 제자에게 해답을 가르쳐 주고, 하나를 들어 주어 세 가지를 이해 할 만큼 무르익을 때까지는 또 다른 것을 가르쳐 주지 않았다.

이러한 공자의 교육 방법은 지식의 일방적인 전달을 배제하고 제자들이 스스로 알아낼 수 있도록 유도하는 것이다. 우리들이 흔히 쓰고 있는 '계발'이라는 말이 이런 공자의 교육방법에서 유래된 것이다. 공자는 제자의 수준 정도에 따라 가르쳤으며 특히 자신들이 스스로 깨닫게 하는 교육이야말로 참된 교육이라고 믿었던 것이다.
출처 : http://100.naver.com/100.nhn?docid=701871


위 뜻으로 볼때, 자기 계발은 "자기가 가진 재능이나 능력을 깨우쳐 열어준다" 정도로 이해하면 될것 같다.

개발을 검색한 결과는 다음과 같다.
개발(開發
[명사]
1 토지나 천연자원 따위를 개척하여 유용하게 만듦.
유전 개발
수자원 개발.
2 지식이나 재능 따위를 발달하게 함.
기술 개발
자신의 능력 개발.
3 산업이나 경제 따위를 발전하게 함.
산업 개발.
4 새로운 물건이나 생각 따위를 만듦.
신제품 개발
핵무기 개발
프로그램 개발.

비슷 한 내용이기는 하나, 계발은 이미 존재하고 있으나 그 존재를 모르고 있는걸 깨우쳐서 이해하게 하는 것이고, 개발은 존재하고 있는걸 알고 있는 상태이며, 그것을 지금 보다 더 나은 상태로 발전 및 발달 시키는 것으로 이해하면 될것 같다.

즉, 자기 계발이라는 표현을 쓴다거나, 자신의 능력 개발이라는 표현을 쓴다면 대동소이 할 것 같다.

한줄요약: 자기계발하자,

블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,