2010년 6월 19일 토요일

프로젝트 진행현황

예전에 올린 아이디어중 출사지정보 프로그램을 만들기로 하였다.

아래 링크 참조.

 

1.저작권 문제해결

위의 글 내용중 가장 큰 문제인 저작권 문제는 출사코리아에서 이미지를 받기로 하였다.

직접 찾아가 운영자분을 만나 프로젝트에 대해 이야기 드리고  이미지를 올릴때 출사코리아에서

가져온 이미지라는 것을 명시하는 조건으로 저작권 문제를 해결하였다.

 

2. 프로그램의 구현

모든 정보를 서버에서 받아오게끔 구현하도록 할 예정이었지만 텍스트들은 용량이 그렇게 크지 않아텍 스트정보는 sqllite를 이용하여 프로그램 자체에 저장토록 하고 해당 이미지는 해당 URL주소를 저장하여 서버에서 받아오게끔 구현하였다. - 모든 정보를 서버에 의존하도록 변경 예정



3.개선사항

 1)  인터페이스

 

버튼을 없애고 오른쪽의 그림과 같이 지도형식으로 메뉴를 바꿀 예정.

버튼에 대한 의존도를 낮추고 최대한 화려하고 실용적인 인터페이스

위 화면 뿐만 아니라 딱딱한 느낌의 버튼을 이미지 버튼으로 바꿔서 버튼이란 느낌이 들지 않도록 수정예정

 

 2) 웹페이지

이 프로그램의 가장 큰 특징인 소셜적인 부분을 해결하기 위해 사용자들이 직접 업로드 가능하도록 웹페이지를 만들어야 하는데 있어 업로더들이 불편함이 없도록 최대한 간결하고 깔끔하게

업로드를 하도록 제작.

  구체적인 계획

    - 사진파일들의 정보를 서버 DB에 저장

    - 사용자들이 쉽게 올릴수 있도록 서버 DB 와 연동되는 JSP로 제작된 웹페이지를 작성

    - 웹페이지에서 업로드시 카테고리 설정가능 하도록 제작

    - 웹페이지에서 사진파일(용량제한-리사이징)을 업로드하고 규칙에 맞게 좌표를 설정

    - 최소한의 서버 DB를 컨트롤 할 수 있는 서버 프로그램 제작

      

 3) 추가기능

최대한 하고자한 역할만 구현하고 있지만 회의를 통해 더 필요한 기능이 있을경우 추가 예정

2010년 4월 3일 토요일

Android - Relative Layout

이번에는 설치된 안드로이드로 Relative Layout 을 만들어 보도록 하겠습니다.

 

먼저 이클립스를 실행시킨 뒤에 파일 - 새로작성 - Android Project 를 눌러서

 

새로운 프로젝트를 생성합니다.

 

 

새로운 안드로이드 프로젝트를 생성하게 되면 아래와 같이 설정이 뜨게 되는데

 

 

여기서 프로젝트 이름은 RelativeLayout 으로 하였고 빌드타겟은 최근 모토로이가 2.1 버전

 

이 나왔으므로 2.1 버전으로 작성해 보겠습니다.

 

프로젝트가 생성되면 이클립스 좌측에 다음과 같이 파일들이 생성 됩니다.

 

 

보통 안드로이드 프로그래밍을 할때 주로 수정하는 파일은 실제 메인 파일인

 

RelativeLayout.java 파일과 main.xml 파일 입니다.

 

먼저 RelativeLayout.java 파일을 살펴보겠습니다.

 

package android.relative;
import android.app.Activity;
import android.os.Bundle;
public class RelativeLayout extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}


위 에서 onCreate 메소드는 프로그램이 실행과 동시에 자동으로 실행 되는 것으로

 

자바에서 생성자와 같은 역할을 한다고 볼 수 있습니다.

 

setContentView(R.layout.main); 에서는 레이아웃 안에 main.xml 을 화면에 보여주게 됩니다.

 

이번에는 main.xml 로 가서 수정해 보도록 하겠습니다.

 

처음 생성된 main.xml에는 Hello Android 를 띄우기 위한 소스가 들어가 있는데 이 코드를

 

지우고 다음 코드를 추가 하여 줍니다.

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <TextView
    android:id="@+id/label"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Type here:"
    />
  <EditText
    android:id="@+id/entry"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/label"
    />
  <Button
    android:id="@+id/ok"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/entry"
    android:layout_alignParentRight="true"
    android:layout_marginLeft="10dip"
    android:text="OK"
    />
  <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/ok"
    android:layout_alignTop="@id/ok"
    android:text="Cancel"
    />    
</RelativeLayout>


<?xml version="1.0" encoding="utf-8"?>
 xmlns:android="http://schemas.android.com/apk/res/android"

 

위 두 부분은 xml을 생성시 항상 들어가야 되는 부분입니다.

 

<TextView> 는 자바의 스윙에서 보자면 Label 과 같은 역할을 해주는 것으로

 

문장을 출력하기 위해 사용되며 android:id="@+id/label" 는

 

TextView 의 이름을 label 로 설정하여 접근하겠다는 의미를 가지고 있습니다.

 

<EditText> 는 사용자가 쓸수 있는 부분을 생성하여 주며

 

android:layout_below="@id/label" 이 부분은 이전에 있던

 

 label 의 아래 부분에 위치하도록 설정해주고 있습니다.

 

<Button> 은 누를 수 있는 버튼을 생성해주고 있고

 

android:layout_below="@id/entry"
android:layout_alignParentRight="true"

 

이 두 문장으로 버튼의 위치가 <EditText> 의 아래에 위치하고 또 제일 우측으로 정렬 되도록

 

설정해주는 역할을 하고 있습니다.

 

그리고 마지막 버튼에서  android:layout_toLeftOf="@id/ok" 라는 문장은

 

ok 라는 위에 생성된 버튼의 좌측에 지금 생성하는 버튼을 위치시키라는 의미를 가집니다.

 

위와같이 코드의 수정이 끝나고 나면 한번 실행을 시켜보겠습니다.

 

 

CTRL + F11 버튼을 눌러서 실행시키게 되면 다음과 같이 어떻게 실행을 시킬 것인지 뜨게

 

되는데 여기서 Android Application 을 선택하게 되면 Android 에뮬레이터가 실행되고

 

작성한 Relative Layout 이 에뮬레이터에 표시되게 됩니다.

 

 

위 그림은 실행결과입니다.

 

Relative Layout 은 상대적 위치를 설정해주는 Layout으로 하나의 위치를 기준으로

 

아래(below)와 우측정렬(alignParentRight), 특정 위치 왼쪽(toLeftOf) 등으로 설정해주면서

 

정렬할 수 있게끔 해주고 있습니다.

봄이 왔나봅니다.

 

꽃이 피고 벌이 있는 것을 보니 봄이 왔나봅니다.

 

그런데도 제 마음은 여전히 겨울.....

Android - 설치

이번에는 안드로이드를 설치해보도록 하겠습니다.

 

먼저 안드로이드를 사용하기 위해서는 다음과 같이 3가지를 필요로 합니다.

 

1. Java SE - 다운로드

2. Eclipse 및 PlugIn - 다운로드

3. Android SDK - 다운로드

 

위 3가지가 설치되셨다면 간단한 환경설정으로 안드로이드 프로그래밍을 시작할 수 있게 됩니다.

 

지금부터 이클립스 환경설정을 해보겠습니다.

 

제일먼저 이클립스 플러그인 인 ADT(Android Developer Toolkit)을 설치하겠습니다.

 

먼저 이클립스를 실행시킨 다음 이클립스 메뉴에서

 

도움말 - Install New SoftWare 를 눌러줍니다.

 

 

그러면 위와 같은 창이 뜨게 될텐데요 여기서 우측 윗부분에 있는 Add 버튼을 누릅니다.

 

 

누르고 나면 새로운 사이트를 추가 할 수 있도록 되는데 여기서 Name 은 아무이름이나 하셔도

 

상관없습니다만 알아보기 쉽게 AndroidSDK 로 하시고 Location 에서

 

 http://dl-ssl.google.com/android/eclipse

 

위의 주소를 붙여넣기 하시고 OK 를 누르시면 Padding 이라는 메시지가 잠시 출력되다가

 

아래와 같은 창이 뜨게 됩니다.

 

 

여기에서 Developer Tools 에 체크하시면 아래 모두 체크가 되고 나머지는 모두 Next 를

 

눌러서 설치합니다.

 

 

위의 과정이 모두 끝나면 이클립스를 재실행 하겠다는 메시지가 뜨고 확인을 누르면 이클립스

 

가 재실행되고 플러그인의 설치가 완료됩니다.

 

다음으로 할 일은 이클립스에 Android SDK를 연결하는 일입니다.

 

먼저 이클립스에서 창 - 환경설정 을 선택합니다.(windos - Preferences)

 

그러면 아래와 같은 창이 뜨게 되는데 좌측 메뉴에서 Android 를 선택합니다.

 

 

여기에서 Android SDK의 압축파일을 해제해둔 곳을 설정해야 하는데 Browse... 를 눌러서

 

Android SDK의 압축을 풀어논 곳을 선택하게 되면 아래와 같은 화면이 나타나게 됩니다.

 

 

아마 처음엔 위와 같이 여러개가 안뜰 것인데 이때에는 이클립스에서

 

Window - Android SDK and AVD Manager 를 눌러서 들어가게되면

 

아래와 같은 창이 뜨고 왼쪽 메뉴에서 Available Packages 를 선택하시면 여러개가 뜨는데

 

체크를 하시고 Install Selected 버튼을 눌러서 설치를 합니다.

 

 

아래 그림은 설치과정인데 시간이 상당히 오래 걸립니다.

 

 

모두 완료가 되면 안드로이드 에뮬레이터를 생성해야 하는데

 

다시 window -  Available Packages 로 가서 Virtual Devices 를 선택하고 New 를 누릅니다.

 

그럼 아래와 같은 창이 뜨게 됩니다.

 

 

여기에서 이름은 아무것이나 하셔도 상관없는데 Targer 은 사용할 Android SDK의 버전을

 

나타내기때문에 사용하실 버전에 맞게 설정하시고 Create AVD 를 누르시면

 

생성이 끝나고 안드로이드 개발 준비가 완료되게 됩니다.

2010년 4월 2일 금요일

심비안(Java)으로 HelloWorld 출력하기

이전에 설치했던 심비안으로 HelloWorld를 출력해 보도록 하겠습니다.

 

먼저 이클립스를 실행하셔서 파일 - 새로작성 - MIDlet Project 를 선택합니다.

 

만약 저 메뉴가 없으시다면 아래 그림과 같이 새로작성 - 기타로 가셔서 선택하셔도 됩니다.

 

 

여기서 다음을 누르게 되면 이제 늘 보아왔던 프로젝트 생성창이 뜨게 됩니다.

 

 

프로젝트의 이름은 HelloWorld 로하고 완료를 누르면 프로젝트가

생성됩니다.

 

그리고 다시 파일 - 새로작성 으로 가서 Java Me MIlet 을 선택하여

생성합니다.

 

 

위 그림에서 다음을 누르게 되면 클래스 생성창이 뜨게 되는데 아래 그림과 같이 클래스의 이름은 HelloWorldMIDlet 으로 설정하고 완료를 누릅니다.

 

 

생성된 클래스 내에서 클래스 내부의 모든 글을 지우고

 

import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;

public class HelloWorldMIDlet
    extends MIDlet
{

    public HelloWorldMIDlet()
    {
    }

    // Sets the MIDlet's current Display to a HelloScreen object.
    public void startApp()
    {
        Displayable current = Display.getDisplay(this).getCurrent();
        if(current == null)
        {
            HelloScreen helloScreen = new HelloScreen(this, "Hello, world!");
            Display.getDisplay(this).setCurrent(helloScreen);
        }
    }

    public void pauseApp()
    {
    }

    public void destroyApp(boolean unconditional)
    {
    }

}


위의 소스를 붙여 넣습니다.

 

이제다시 평범한 새로운 클래스(이름 : HelloScreen)를 생성합니다.

 

 

이 클래스 또한 마찬가지로 원래 있던 내용을 지우고

 

아래의 소스코드를 넣습니다.

 

import javax.microedition.lcdui.*;

class HelloScreen
    extends Form
    implements CommandListener
{

    private final HelloWorldMIDlet midlet;
    private final Command exitCommand; // Exit command for closing the MIDlet in the device UI.

    public HelloScreen(HelloWorldMIDlet midlet, String string)
    {
        super("");
        StringItem helloText = new StringItem("", string);
        super.append(helloText);
        this.midlet = midlet;
        exitCommand = new Command("Exit", Command.EXIT, 1);
        addCommand(exitCommand);
        setCommandListener(this);
    }

    public void commandAction(Command command, Displayable displayable)
    {
        if (command == exitCommand)
        {
            midlet.notifyDestroyed();
        }
    }

}


2개의 파일을 생성하고 위의 소스코드를 넣으셨다면 2개의 파일을

저장합니다.

 

그리고 CTRL + F11 을 눌러서 실행을 시키게 되면 아래와 같이

 

가상 에뮬레이터가 실행되고 HelloWorld가 출력되게 됩니다.

 

 

심비안 설치(Java)

자바에서 실행되는 심비안을 설치를 해보도록 하겠습니다.

 

심비안을 자바로 실행하기 위해서는 최소 2가지가 필요합니다.

 

필수

1. Java ME(Java Micro Edition) - 다운로드 

2. Eclipse Pulsal - 다운로드

 

선택

3. Symbian SDK - 다운로드

4. Nokia PC Suite - 다운로드

 

(1번과 2번만 설치하셔도 에뮬레이터로 사용가능 하고 선택사항인 3번과 4번의 경우에는 Nokia 기기가 있으신 분들에 한해서 설치하시면 직접 넣어서 실행해 보실수 있습니다.)

 

Symbian SDK는 Java로 선택해서 받으시면 되고 다운받기 위해서는

회원가입을 해야 하는데 간단한 입력을 하고 메일로 인증하면

가입이 완료됩니다.

 

3가지를 받으신 후에 설치를 다 하시고 Eclipse Pulsal 의 경우에는

쓰고 있던 Eclipse에 덮어 설치하셔도 상관없습니다.

 

이제 설치가 모두 끝나셨다면 Eclipse의 세팅을 하도록 하겠습니다.

 

먼저 이클립스를 실행하고 메뉴에서 창 - 환경설정 을 선택합니다.

 

 

환경 설정으로 들어가서 좌측 메뉴에서 Java ME 를 선택하시고

세부메뉴 중에서 Device Management 를 선택하시면 아래와 같은

창이 뜨게 됩니다.

 

 

저같은 경우는 이미 설치를 해두었기 때문에 목록이 뜨고 있는데 처음 설치할 경우에는 목록이 뜨지 않습니다. 여기서 우측 상단에 있는 Import 를 눌러서 SDK가 설치되어 있는 경로를 설정합니다.

 

(SDK 경로는 Symbian SDK 경로를 사용하게 되면 현재 Nokia

기기가 없으면 실행을 할 수 없으므로 Symbian SDK를 설치하신분은 경로를 설정해서 등록해 주시고 필수만 설치하고 해보실

분들은 Java ME 가 설치된 경로로 선택하여 주시면 됩니다)

 

 

경로를 설정하고 완료를 누르게 되면 이전의 목록이 뜨게 되고 확인을 누르시면 기본적인 이클립스 설정이 끝나고 심비안 어플리케이션을

개발하기 위한 준비가 되었습니다.

 

2010년 4월 1일 목요일

Android 개발 아이디어 회의

개발할 어플리케이션 : 가계부

1. 유사 프로그램 조사

iPhone iXpenselt

 

 

 

 

  전체적으로 깔끔한 디자인을 가지고 있고 또한 편리한 인터페이스를 가지고 있으나 어플가격이 비싸고 새로운 기록을 할 때 세부 사항이 메뉴를 열어야 하기 때문에 시간이 꽤 걸림(이부분을 보안해서 최대한 빠른 시간내에 가능하도록 간편화 하고 무료로 어플을 배포)

 

iPhone Budget

 

 

 

 

  한글이 되긴하지만 세부 메뉴에서 영어로 사용되고 있고 메뉴들이 다양하고 막강한 기능들을 가지고 있지만 빠르게 사용하기에는 효율성이 좋지 않고 전체적으로 조금 불편한 인터페이스를 가지고 있음(완전한 한글을 사용하도록 하고 크고 간단한 버튼들을 추가해서 쉽게 접근 가능하도록 할 것이며 잘 쓰이지 않는 기능들은 과감히

삭제)

 

 

Window Mobile Love Money

 

 

사용이 간편화라는 키워드를 가지고 만들려는 우리의 어플과는 다르게 복잡하고 여러 가지 기능을 제공하고 있는 어플이지만 구역별로 색상이 들어가 있어서 보기 편한 장점을 가지고 있다.(우리가 개발할 어플에서는 색상을 잘 활용)

 

Android 어플은 하나의 어플이 존재하는데 네이버 가계부와 연결되어 사용되도록

되어있고 각종 버그가 많아서 사용하기 아주 불편함.(개발할 어플은 웹과의 연동은 추후 따로 생성할 계획이고 버그가 없도록 최대한 완벽하게 제작)

 

 

2. 아이디어 회의 및 토론 결과

 

메뉴 : 수입, 지출, 조회(일일, 주간, 월간, 년간), 통계

 

요점 : 최대한 인터페이스를 간편화 하고 디자인을 깔끔하게!

많은 기능과 메뉴 보다는 간단하게 몇 개의 기능과 메뉴로 사용하기 편리하고 쉽게 기록 가능하도록 하고 빠르게 입력 할 수 있도록!

 

DataBase는 SQLite 사용해서 작성시 날짜를 표기해서 저장하고 메모기능도 가능하도록!

 

전체적인 금액 입력창은 은행 ATM 기의 터치스크린과 비슷하게!

 

메인메뉴 : 수입, 지출, 조회, 통계의 세부메뉴를 가지고 아래나 위로 현재 잔액을 표시

 

수입 : 들어온 돈 입력, 수정(최근것 우선하고 이전 것도 가능하나 돈이 -가 될 경우 경고 표시), 현재 잔액 표시(입력과 동시 적용되도록)

 

지출 : 버튼형식으로 쉽게 누를수 있도록 하며 교통수단, 식비 등 자주 쓰는 메뉴는

         버튼으로 등록하고 금액에 맞춰서 + - 버튼을 만들어 100원 단위 내지 천원, 만원

         단위를 쉽게 조절 가능하도록!(휠 기능도 넣을 것!)

 

그 외 : 조금 오차가 발생 할 경우 금액을 추가하거나 뺄 때 사용하며 간단한 메모도 가능!

 

조회 : 수입, 지출, 잔액 조회가 되며 수입과 지출에 대해서는 일, 주, 월, 년간 조회도

         가능하도록!

 

통계 : 간단하게 만든 버튼의 메뉴(교통비, 식비, 그 외) 등 사용 용도별로 주간, 월간

         등으로 통계(휴대폰 요금 고지서 느낌?)

 

Make by Lelizir, reportgg, Joji