IDE

Designs for a GNOME application development IDE. This needs a name. :)

Involved Parties

AllanDay

Goals

  • Reduce the amount of work required to produce an app
  • Reduce the amount of specialist knowledge required to produce an app
  • Reinforce the recommended workflow for creating an app
  • Help to avoid errors
  • Support JavaScript as the first class language

  • Cater to individuals and small teams

Features:

  • Project creation / templates
    • Set GNOME version
    • Handle dependencies (particularly relevant for application bundles)
  • GUI editing
  • Code editing
    • Code autocompletion
    • Automatic testing for common errors
    • View files side by side
  • Debugging / testing
  • Version control
  • Building
  • Integrated documentation

Relevant Art

Visual Studio

https://live.gnome.org/DeveloperExperience/Hackfest2013/Research/Windows8?action=AttachFile&do=get&target=visual-studio.jpg

See also the GitHub integration with Visual Studio for an example of a simplified repository checkout workflow.

Android Layout Editor

http://tools.android.com/screenshots/layout-editor2.png

Xcode

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/Art/tools_2x.png

MonoDevelop

SublimeText2

http://www.sublimetext.com/screenshots/alpha_goto_anything2_large.png

http://blog.taylormcgann.com/wp-content/uploads/2012/03/sublime-edit-side-by-side.png

QtCreator

http://shinnok.com/rants/wp-content/uploads/2011/07/qtcreator-manpages-3.png

http://www.windowsfordevices.com/files/misc/qt_creator_visualizingqstringlist.jpg

LightTable

http://www.chris-granger.com/images/lightable/game-example.png

See also the website, the original blog post and this video.

Discussion

  • Templates not directly part of the IDE, usable in a strictly commandline workflow. Can come before the IDE is ready.
    • Anjuta already has its own project template format. The template are described in XML and GNU autogen is used to generate the files. There is a description here https://developer.gnome.org/libanjuta/3.9/project-wizard-format.html. I think it can be used here perhaps with some improvements. Currently, it doesn't work outside Anjuta because it needs some answers from the user but we could ask this in a terminal without changing the format. -- SebastienGranjoux

  • I think it should also include integrated translation to other languages, integrated GSettings schema editor, integrated data directory editor (what to put into /usr/share/appname), integrated application help editor.
  • Wouldn't these abbreviations (UI, VCS, Docs) become way too long for titlebar in some translations? Wouldn't it be better to use a sidebar?

Tentative Design

https://raw.github.com/gnome-design-team/gnome-mockups/master/ide/png/launch-screen.png

https://raw.github.com/gnome-design-team/gnome-mockups/master/ide/png/edit-side-by-side.png

https://raw.github.com/gnome-design-team/gnome-mockups/master/ide/png/debug.png

https://raw.github.com/gnome-design-team/gnome-mockups/master/ide/png/vcs.png

https://raw.github.com/gnome-design-team/gnome-mockups/master/ide/png/vcs-diff.png

https://raw.github.com/gnome-design-team/gnome-mockups/master/ide/png/app-menu.png

https://raw.github.com/gnome-design-team/gnome-mockups/master/ide/png/new-project.png

Comments

Providing a tool that fits in the GNOME app development workflow is a great idea, but the workflow is not clear in the mockups. For example, the name of the VCS tab tells me about the tool I'm using, not the task I'm trying to accomplish.

The name may reflect what is being produced... something like "Application Projects"?

Regarding the "UI" tab, what would go there? Something like Glade? Replacement or integration?

Last, isn't Jhbuild the biggest amount of work required to produce an app? Couldn't the app set it up for the developer?

Cheers -- SebastienNicouleaud 2013-11-24 07:34:28

Design/Apps/IDE (last edited 2013-11-24 06:49:54 by SebastienNicouleaud)