사용자 삽입 이미지



Qt2DAY Lite(큐트데이 라이트)는 S60 5th에서 동작하는 me2DAY 어플리케이션입니다.
여기서 Lite는 어플이 가볍다는 의미가 절대 아니며 기능이 단순하다는 의미입니다^^;
하지만 위젯이나 모바일페이지를 통해 me2DAY를 이용하는것 보단 패킷 사용량이 상당히 적게 든다는 장점이 있습니다.
me2DAY의 OpenAPI를 이용하며 단순하고 직관적인 UI를 가지고 있습니다.
저는 me2DAY를 사용하지 않기 때문에 무엇이 필요한지 잘 몰라 Alpha버전을 우선 공개합니다.
알파는 베타 이전의 맛보기 버전이라고 생각하시면 됩니다. 일단 시식해보시고 필요한 기능을 피드백해주시면 감사합니다.

본 어플리케이션을 실행하려면 Qt 라이브러리가 설치되어 있어야 하며 폰트라우터는 사용이 불가능합니다.

간단한 사용 방법입니다.

사용자 삽입 이미지


실행시 처음 나오는 로그인 화면입니다.
아이디는 me2DAY 아이디를 입력하시면 되고
API키는 마이미투>환경설정>api 사용자키의 8자리 숫자를 입력하시면 됩니다.

사용자 삽입 이미지

메뉴 구성입니다.
왜 Lite라고 하는지 이유를 확실히 알게 하는 기능 구성입니다.

사용자 삽입 이미지

"생각" 메뉴를 누르게 되면 생각을 쓸 수 있습니다.
생각은 최대 150자까지 입력 가능합니다.
태그는 공백으로 구분하며 SMS 댓글 수신, 댓글 닫기를 설정할 수도 있습니다.


사용자 삽입 이미지

"나는" 메뉴로 들어오면 자신이 쓴 글(생각)을 볼 수 있습니다.
글 목록에서 글을 더블 터치하면 댓글을 달 수 있습니다.

"친구" 메뉴에선 친구를 더블 터치하면 친구의 미투를 볼 수 있습니다.
"나는"과 마찬가지로 글을 더블 터치하면 댓글을 달 수 있습니다.

사용자 삽입 이미지

"설정" 메뉴로 들어가면 간단한 어플의 간단한 설정을 할 수 있습니다.
생각 표시 수, 친구 표시, 친구 표시수, SMS 수신 기본값을 설정할  수 있습니다.
여기서 각 표시 수들은 불러올 생각, 친구 수이며 너무 높은 값을 지정하면 어플이 느려질 수 있습니다. 기본값은 각각 10씩입니다.
친구 표시는 "친구" 메뉴에서 불러올 친구의 분류를 설정할 수 있습니다.
기본값은 모두 보기입니다.
SMS 수신은 "생각" 메뉴의 SMS 댓글 수신 체크박스의 기본값을 설정합니다.


이상 간략한 어플 사용 방법이었습니다.
sis파일의 변형, 재배포는 불허합니다.
피드백은 리플로 부탁드립니다^^;

Latest Version : 0.0.3a (10.06.06)

Known Bugs :
 * 최초 실행시 AP 연결삼창
 * 화면 rotate 전환시 위젯이 늘어지는 문제

Dev Version Fixed Lists :

more..



  * 로그인, 글쓰기 속도 개선
  * 일부 코드 최적화

Version History :
10.06.07 : 0.0.3a - Qt 기반 어플에서 나타나는 3x4 키패드의 스페이스 입력 문제 수정
10.06.06 : 0.0.2a - 일부 UI 버그 수정, 용량 개선
10.06.05 : 0.0.1a - 최초 버전
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/06/05 17:38 2010/06/05 17:38

사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지

Qt2DAY (가제 : 큐트데이)

위엔 없지만 글 목록에서 글을 더블터치하면 전채 내용이 나오며 댓글을 허용한 글이면 댓글을 달 수 있음.

당연한 얘기지만 가로/세로 모드 지원...
다만 가로모드에선 글 목록에 스크롤바가 생김

작업 진행 상황  :
로그인 - 완료
생각 쓰기 - 완료
글 목록 - 완료
(API에서 stream은 일부 어플로 제한이 된다고 해서 아직은 개별 사용자의 목록만 불러옵니다.
프리미엄 뭐시기로 되면 stream api 권한을 받아서 업데이트 할 예정...)
친구 목록 불러오기 - 완료
글 상세 - 기능, UI 구성 중

To-Do :
글 상세 완성
친구 신청 수락
미투하기


제가 Twitter만 하기 때문에 Me2DAY는 무엇이 가장 중요한 요소인지 잘 모릅니다.
일단 공개된 API 위주로 기능 구성하고 부가적인건 베타 공개 후 추가하겠습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/05/23 18:34 2010/05/23 18:34


사용자 삽입 이미지


검색하다가 클립보드 초기화 관련 질문 글을 읽고 급하게 만들어보았습니다.
UnClipper는 클립보드(복사 기록)을 초기화시켜줍니다.
실행시 아무런 창이 뜨지 않고 초기화 후 바로 종료됩니다.

본 어플리케이션을 실행시키기 위해선 Qt 라이브러리가 설치되어있어야 합니다.

효율적인 관리를 위해 2차 배포는 불허하며 본 블로그를 링크해주시기 바랍니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/04/28 16:36 2010/04/28 16:36

S60에선 가로/세로로 화면 회전이 가능합니다. 방법이야 여러가지겠지만 저는 위젯의 QResizeEvent를 이용해 화면 전환을 처리합니다.

일단 헤더에서 resizeEvent를 정의합니다.

[code]
class Rotate : public QWidget
{
    Q_OBJECT
// 중략
protected:
    void resizeEvent(QResizeEvent* event);

};
[/code]

디바이스에서 해당 위젯의 가로 길이보다 세로 길이가 긴 경우 화면은 세로 모드이며 반대로 세로 길이보다 가로 길이가 길면 가로 모드가 됩니다.

[code]
void Rotate::resizeEvent(QResizeEvent *event)
{
    if (Rotate::width() < Rotate::height()) {
        label->setText("Vertical mode.");
    }
    else {
        label->setText("Horizontal mode.");
    }
}
[/code]

위와 같은 코드를 실행하면 화면 회전 처리가 간단히 끝납니다.

사용자 삽입 이미지

사용자 삽입 이미지

이제 디바이스에서 테스트를 해봅시다.
참고로 디바이스에선 시작시 윈도우의 크기가 최대로 되어야 정상적으로 작동합니다.

사용자 삽입 이미지

사용자 삽입 이미지

디바이스 테스트 성공!

위에서 다룬 예제 소스 파일 첨부합니다.



크리에이티브 커먼즈 라이센스
Creative Commons License
2010/04/26 21:33 2010/04/26 21:33

Qt는 GUI 프로그램 개발을 위한 크로스 플렛폼 위젯 툴킷으로 최근 TrollTech가 Nokia에 인수되면서 차후 Symbian에 주요 프레임워크로 사용될 예정입니다. 또한 데스크탑에서 작성한 코드를 그대로 디바이스에 사용할 수 있기 때문에 디버깅이 쉽다는 장점이 있습니다.

1. 개발 환경 구축하기


※ 비스타 사용자는 설치 중간에 나오는 환경 변수 설정을 유의하셔야 합니다.

순서대로 설치를 한 뒤 Qt Creator를 실행하여 Tools-Options-Qt4-Qt Versions에 있는 S60_5th_Edition_SDK_vX.X (Qt x.x.x)를 선택하여 CSL, Carbide 디렉토리를 설정합니다.

개발 환경 구축이 성공적으로 되었는지 확인하기 위해 간단한 Hello World 프로그램을 작성해봅시다.

2.  윈도우 환경에서 디버그


윈도우 환경이기 때문에 S60 SDK를 이용하지 않고 기본 Qt를 사용할 것입니다.

사용자 삽입 이미지

기본적인 Hello World의 코드는 아래와 같습니다.

[code]
#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt World!");
    label->show();
    return app.exec();
}
[/code]

위 코드는 QLabel을 생성하여 Hello Qt World!를 띄우는 간단한 코드입니다. 실행을 하면 아래와 같은 프로그램이 실행됩니다.

사용자 삽입 이미지

영문 출력은 가뿐히 통과했습니다. 이제 한글 출력을 해보도록 합시다.

[code]
#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("안녕 큐트 월드!");
    label->show();
    return app.exec();
}
[/code]

사용자 삽입 이미지

QLabel에 한글을 바로 출력하려고 하면 위 실행 화면과 같이 글자가 깨지게 됩니다. 그 이유는 Qt는 별도의 처리가 되지 않은 문자열은 Latin-1 문자열로 해석하기 때문입니다.
이를 해결하기 위헤 QString::formLoal8Bit을 이용해 한글을 출력해보도록 하겠습니다.

[code]
#include <QApplication>
#include <QString>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel(QString::fromLocal8Bit("안녕 큐트 월드!"));
    label->show();
    return app.exec();
}
[/code]
사용자 삽입 이미지

QString을 include하여 formLocal8Bit로 처리를 하니 한글이 정상적으로 출력되었습니다.
이번엔 Widget(위젯)을 만들어 Label을 Qt의 장점이라고 생각되는 Layout(레이아웃)에 추가하여 보기 좋은 Hello World를 만들어 보겠습니다.
레이아웃은 위젯의 위치나 크기를 지정하지 않아도 필요에 따라 적절한 위치와 크기를 할당해줍니다.  아래 코드는 layout이라는 레이아웃을 생성하여 label을 위젯으로 추가한 뒤 window에 레이아웃을 할당하여 출력하는 코드입니다.

[code]
#include <QApplication>
#include <QHBoxLayout>
#include <QString>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWidget *window = new QWidget;
    QHBoxLayout *layout = new QHBoxLayout;
    QLabel *label = new QLabel(QString::fromLocal8Bit("안녕 신비한 큐트 세상!"));

    layout->addWidget(label);
    window->setWindowTitle(QString::fromLocal8Bit("안녕 심비안 세상!"));
    window->setLayout(layout);

    window->show();

    return app.exec();
}
[/code]
사용자 삽입 이미지

실행을 하니 보기 좋은 Hello World가 실행되었습니다.
Layout의 종류는 위에서 사용된 일반적으로 위젯을 왼쪽에서 오른쪽으로 수평 배열하는 QHBoxLayout, 위에서 아래로 수직 배열하는 QVBoxLayout, 바둑판 형식으로 배열하는 QGridLayout이 있습니다.

3. S60 5th 환경에서 디버그


Qt는 위에서 언급했듯 크로스 플렛폼 툴킷답게 S60 5th SDK와 약간의 설정만 해주면 Qt Creator에서 바로 디바이스를 통한 디버깅이 가능합니다.

사용자 삽입 이미지

Projects-General의 Qt Version을 S60_5th_Editon_SDK_v.X.X로 설정합니다.

사용자 삽입 이미지

디바이스에서 디버깅을 할 것이기 때문에 Run Settings의 Add를 눌러 Symbian Device를 선택한뒤 Make <Project> on Symbian Device active를 눌러 디바이스 디버깅 설정을 활성화해줍니다.

이제 디바이스에 Qt 라이브러리와 TRK를 설치합니다.
기본적으로 Qt 라이브러리 설치 파일은 C:\Qt\VERSION\qt_installer.sis에 있으며 디바이스에 올려 설치하거나 PC Suite를 이용해 설치하시면 됩니다.


TRK는 디바이스와 Qt Creator를 연결하여 바로 디버깅을 할 수 있도록 도와주는 역할을 합니다. TRK를 설치한 뒤 USB 또는 Bluetooth로 PC와 연결합시다.

사용자 삽입 이미지
TRK를 통해 PC와 연결된 모습

이제 디바이스에서 디버깅을 할 준비가 되었으니 위에서 작성한 보기 좋은 Hello World를 바로 디바이스를 통해 디버깅을 해봅시다.

사용자 삽입 이미지

아니 이게 무슨 소리야! 한글이 깨지고 말았습니다. 이는 QString::fromLocal8Bit를 사용한 미봉책 때문에 나타난 폐해입니다.

이를 해결하기 위해선 formLocal8Bit 대신 QTextCodec을 사용하여 문자열 코덱을 지정하면 됩니다.

[code]
#include <QApplication>
#include <QTextCodec>
#include <QObject>
#include <QHBoxLayout>
#include <QString>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("eucKR"));

    QWidget *window = new QWidget;
    window->setWindowTitle(QObject::tr(("안녕 심비안 세상!")));

    QHBoxLayout *layout = new QHBoxLayout;
    QLabel *label = new QLabel(QObject::tr("안녕 신비한 큐트 세상!"));

    layout->addWidget(label);
    window->setLayout(layout);

    window->show();

    return app.exec();
}
[/code]

우리가 출력하고자 하는 문자열은 한글이기 때문에 EUC-KR을 지정해주었습니다.
QObject::tr으로 한글 문자열을 묶어주고 디바이스를 통해 디버깅을 해봅시다.

사용자 삽입 이미지

Eureka! 한글이 정상적으로 출력되어 S60 5th 환경에서 신비한 큐트 세상을 만나게 되었습니다.

정상적인 출력을 하니 더 이상의 설명이 필요한가! 시작하기는 이것으로 마칩니다.

사족 보기 >


크리에이티브 커먼즈 라이센스
Creative Commons License
2010/04/01 22:51 2010/04/01 22:51