Ubuntu에서 그래픽 응용 프로그램을 만드려면 어떻게 해야 하나요?

HDNua의 이미지

안녕하세요. Linux에서 간단하게 그래픽 응용 프로그램을 만들어보려고 하는 학생입니다.
Windows에는 Visual Studio, Mac에서는 Xcode가 있어서 그런 응용프로그램을 만들기가 쉬웠는데
Ubuntu에서는 어떤 개발 환경을 써야 할 지가 막막하네요.

C, C++, Objective-C, Objective-C++까지 할 줄 압니다. Linux에서 써본 개발툴은 다음과 같구요.

Geany IDE : 텍스트 방식의 응용 프로그램을 만들 때 저에게 아주 좋은 툴 같습니다. 그런데 그래픽으론... 지원이 되는지 모르겠네요.
Code::Blocks IDE : 멋있긴 한데, 솔직히 어떻게 쓰는지 모르겠습니다. Objective-C 개발용으로 설치했는데 정작 필요한 라이브러리를 지원하지 않아서 걍 안 쓰고 있습니다.
Eclipse : 어떻게 쓰는지 잘 모릅니다. Java용 개발툴이라고 들었는데 전 Java는 배우지 않았습니다.

이렇게 세 개인데, 리눅스용 그래픽 응용 프로그램을 만드려면 어떻게 해야 할까요?
첫 목표는 이미지 뷰어 프로그램을 만들어보는 것입니다.

아, 그리고 C나 C++에서 이미지 파일을 다루는 방법도 간략하게 설명해주시면 감사하겠습니다.

P.S. C와 C++을 훨씬 먼저 배웠는데 저는 Objective-C가 훨씬 편하네요...

snowall의 이미지

gtk를 쓰신다면 UI디자이너로 Glade를 알아보세요. Glade와 다른 IDE를 같이 사용하면 됩니다.

C/C++에서 이미지 파일을 다룬다면 imagemagick 라이브러리를 써 보는건 어떨까요?

피할 수 있을때 즐겨라! http://melotopia.net/b

HDNua의 이미지

처음이라 그런지 아직 다루기가 쉽지 않네요ㅎㅎ
프로젝트 실행해보는 것부터 막히고 있습니다ㅋ

아무튼 더 열심히 알아보겠습니다. 답변 정말 감사드려요!

-----

아... 그런데 혹시 이 글 제목 편집하는 방법 아시나요ㅠ 완료라고 써놓고 싶은데..

저는 이렇게 생각했습니다.

snowall의 이미지

제목 편집이 막힌것같아요...

피할 수 있을때 즐겨라! http://melotopia.net/b

HDNua의 이미지

ㅠㅠ..

저는 이렇게 생각했습니다.

마잇의 이미지

anjuta - gtk 그래픽 라이브러리를 사용하는 Gnome 프로젝트 공식? IDE 입니다. snowall님이 언급하신 UI 디자이너 Glade와 연동해서 사용하는 것 같습니다.

qtcreator - qt 그래픽 라이브러리를 기반으로 하는 IDE 입니다. qt는 대표적으로 KDE 프로젝트에서 사용 됩니다. qt creator라는 UI 디자이너와 같이 설치 됩니다.

quickly - 파이썬 언어로 gtk 프로그램을 만드는 환경을 생성해 줍니다. Glade UI 디자이너와 같이 사용 됩니다. 우분투에서 앱 개발자들이 사용하도록 공식적으로 배포하는 도구 입니다. 그래서인지 우분투 패키지(deb)를 생성하고 우분투 소프트웨어 센터 혹은 개인 PPA에 올리는 과정까지 자동화 해주는 것이 특징 입니다.

gtk, qt가 가장 널리 사용되는 그래픽 라이브러리이고 각각 여러가지 언어로 작성할 수 있는 언어 바인딩을 지원 합니다.

설치해보실 경우 각각의 패키지 이름은,

anjuta, glade
qtcreator
quickly

입니다.


--
마잇

HDNua의 이미지

그런데 여전히 어렵네요ㅠㅠ 헝헝

저는 이렇게 생각했습니다.

익명 사용자의 이미지

quickly 썩 괜찮네요. 그때그때 간단하게 필요한 것 후딱 만들어쓰기 딱이군요.your_user_name

cleansugar의 이미지

리눅스에서 Object-C 쓰기:
http://en.wikipedia.org/wiki/GNUstep

http://en.wikipedia.org/wiki/%C3%89toil%C3%A9

http://cappuccino.org/

http://www.cocotron.org/

기타 언어용 3대 GUI 프레임워크:

GTK+
Qt
WxWidgents

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

HDNua의 이미지

처음 Objective-C를 찾아보면서 GNUStep을 다운받고 Project Center를 열어본 적은 있는데,
너무 옛날 프로그램 느낌이 나는 것 같기도 하고 마우스도 좀 이상하게 작동하고 해서 놔뒀지요. ㅠ
Cappuccino와 Cocotron은 처음 들어보는데, 주신 좌표로 들어가보니
Cappuccino는 Objective-J와 관련되어 있고, Cocotron은 Xcode에 대한 개발 툴처럼 보였습니다. (제가 해석을 잘 못 한 걸수도 있구요ㅎㅎ)

Etoile는... gnustep-make, gnustep-base, gnustep-back, gnustep-gui의 네 개가 기본으로 필요하다고 하는데,
gnustep 홈페이지 들어가서 파일로 다운만 받아놨지 뭘 어떻게 해야 좋을지는 전혀 모르는 상태입니다.

Objective-C는... 그냥 맘 편하게 맥에서만 배우자고 결론 내버렸습니다ㅎㅎ
그래도 답변은 감사합니다!

저는 이렇게 생각했습니다.

klyx의 이미지

그래픽 처리를 어떻게하느냐 이전에, GUI 프레임워크를 먼저 고르셔야합니다.
보통 Gtk 혹은 Qt 중에 하나를 고르시면 됩니다.
Gtk는 C로 작성되지만 C++바인딩도 있어서 C++로도 작성가능하고 Qt는 C++로 작성됩니다.(양쪽다 기타 스크립트 언어 바인딩이 존재합니다.)

Visual Studio나 Xcode만 써보신 분들이 혼동하시는게 있는데, 이것들은 툴이지 어플리케이션을 개발하는데 필요한 프레임워크/라이브러리/API 등(이하 프레임워크로 통일)이 아닙니다.
이들은 자동으로 프레임워크가 딸려오기 때문에 구분을 못하시는 경우가 있습니다.
정확하게는 Visual Studio는 C++프레임워크로 MFC를 탑재(닷넷프레임워크도 있네요)하고 있고, Xcode는 Objective-C를 위한 Cocoa를 탑재(Carbon도 지워합니다)하고 있습니다(사실 맥은 OS자체에 딸려옵니다).
예를 들어, 위에서 적은 Qt는 크로스 플랫폼 프레임워크이고, Visual Studio나 Xcode로도 Qt 어플리케이션을 개발하는게 가능합니다.

적으신 이클립스도 툴이고, 플러그인을 통해서 메이저 언어는 거의 모두 지원합니다(C/C++도 지원합니다).
마찬가지로 한가지 언어만 지원하는 툴은 거의 없으므로 툴은 툴대로 고르고, 프레임워크는 프레임워크대로 고르는게 좋습니다.

다만, 프레임워크로 Qt를 선택하시는 경우는 Qt개발자들이 직접 개발한 Qt Creator라는 통합개발환경이 있기 때문에 툴고민이 거의 필요없습니다.
Gtk는 안써봐서 잘 모르겠지만 Code::Blocks를 자주 본것 같습니다.

프레임워크에 따른 차이는 언어/Look&Feel/라이브러리 의존성/데스크탑 환경과의 통합성 등이 있습니다.

마지막으로 '이미지를 다룬다'고 하셨는데, 좀더 구체적인 정의가 필요합니다.
단순한 이미지 뷰어라면 대부분의 GUI 프레임워크가 이미지를 불러오고 표시하는 클래스를 가지고 있기 때문에 사실 거의 따로 끌어와서 쓸건 없습니다.
이미지 편집이 필요한 경우라면 간단한건 직접 구현하시거나 OpenCV같은 라이브러리를 끌어와서 쓸 수 있습니다.

HDNua의 이미지

제가 확실히 프레임워크와 개발 툴을 혼동하고 있었네요. 수정 감사합니다.
이미지를 다루겠다고 한 건 이미지 뷰어만을 얘기한 게 맞구요. ㅎㅎ
사실 왼쪽, 오른쪽 방향키 같은 단축키도 같이 여쭤보고 싶었는데 그건 공부를 좀 더 한 다음에 따로 나눠서 올릴 생각이었습니다.

답변 정말 감사드려요!!

저는 이렇게 생각했습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.