Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added information about desktop GUI applications #298

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion start/sw/gui-app/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,23 @@ label: need-help
title: Desktop GUI Application
subsection: gui-app
section: start-sw
description:
description: Create GUI applications for the Desktop
---

# Desktop GUI Application

Desktop applications usually uses a graphical toolkit to create their windows.
In Linux the two most popular toolkits are Qt and GTK+, each support different
languages and have different features.

Another option to create a Desktop application is using Electron which create
an embedded browser.

## Choose a toolkit

GTK+ is the toolkit used by GNOME, XFCE, MATE, Cinnamon, LXDE and SOAS.
Qt is the toolkit used by KDE.

GTK+ is written in C and have official bindings for C++, JavaScript, Python,
Vala and Rust.
Qt is written in C++ and have official bindings for Python.
37 changes: 37 additions & 0 deletions start/sw/gui-app/electron.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: Electron
subsection: gui-app
section: start-sw
description:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No description is needed, right?

---

# Create an application using Electron

[Electron][0] is cross platform framework for creating desktop applications using
pvalena marked this conversation as resolved.
Show resolved Hide resolved
web technologies. It is developed by GitHub and released under the MIT license.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd skip the last sentence and would prefer some usual / suitable use-cases, or some example, WDYT?


## Installing the development packages

Electron uses web technologies so before installing Electron you will need to
install NodeJS and NPM. You can install them by running:

```
$ sudo dnf install nodejs
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd rather avoid content duplication completely. Just linking the page is fine with me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You sure? There is a link below for more information but it will just make the user jump pages

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, developers know how to hande that. Simplicity is the key. They can even have already nodejs installed and may just wonder npm packages are needed etc.. No need to have every guide here full-featured. It'd not supposed to be a documentation.

```

or by following the [Node.js](/tech/languages/nodejs/nodejs.html) tutorial.

After installing NodeJS you can simply install electron using NPM or your preferred
package manager for NodeJS. You can install it using NPM by running:

```
$ npm install --save-dev electron@latest
```

after installing nodejs and electron you can follow the [first application][1]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there no Fedora specifics? Does the guide work fine with no glitches? I mean, for someone, who's going to do GUI app for the first time, is that a proper quickstart?
Is there some other / advanced one, for someone who's already experienced with other GUI toolkits? (I'm missing some references here.)

tutorial on Electron website.



[0]: https://electronjs.org/
[1]: https://electronjs.org/docs/tutorial/first-app
60 changes: 60 additions & 0 deletions start/sw/gui-app/gtk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: GTK+
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, to my knowledge, there should be a order attribute, for Jekyll to know which one's the landing page.
http://developer-portal.github.io/doc/file-structure.html

subsection: gui-app
section: start-sw
description:
---

# Create an application using GTK+

GTK+ is a cross platform graphical toolkit which stands for GIMP toolkit.
It was started in 1998 as an free and open source alternative to Qt which was
proprietary at the time. GTK+ is published under the GNU LGPL 2.1 license.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see my Electron page first comment.


## Installing the development packages

GTK+ is written in C so the minimum required to create a GTK+ application is a
C compiler and the GTK+ development package:

```
$ sudo dnf install gcc gtk3-devel
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

```

After installing the compiler and development package you can follow the GTK+
[getting started guide][0] on GNOME website.

## Other languages

GTK+ is written in C but it also have official support for C++, JavaScript,
Python, Vala and Rust.

### Vala

If you want to develop in Vala, you need to install a Vala compiler in addition
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you make a more specific description of what Vala is?

Does it possibly deserve standalone page?

to the general development packages mentioned above. To do it you can run:

```
$ sudo dnf install vala
```

After that you can follow [GNOME Vala tutorial][1] to learn how to develop GUI
applications with Vala.

## Using GNOME Builder

GNOME Builder is an IDE made by GNOME developers to help create GTK+ applications.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.


To install GNOME Builder using dnf run the command:

```
$ sudo dnf install gnome-builder
```

If you want to install GNOME Builder using Flatpak run the command:

```
$ flatpak install --from https://flathub.org/repo/appstream/org.gnome.Builder.flatpakref
```

[0]: https://developer.gnome.org/gtk3/stable/gtk-getting-started.html
[1]: https://wiki.gnome.org/Projects/Vala/Tutorial
14 changes: 14 additions & 0 deletions start/sw/gui-app/qt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Qt
subsection: gui-app
section: start-sw
description:
---

# Create an application using Qt

[Qt][0] is a cross platform application framework which contains a cross platform
graphical toolkit. Unlike GTK+ which is developed mostly by Linux users, Qt is
developed by The Qt Company. Because of that Qt have better cross platform support.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you at least put how to install QT here / or simply put here whether it's in Fedora.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know how to install qt myself so I can't explain it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then please do not create the page if you haven't tested it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We only want the content someone has tested on Fedora. See our wiki.


[0]: https://www.qt.io/