Difference between revisions of "Developer Guides"
m (Add category) |
(→General: Added the new article about Objective C IDEs) |
||
(25 intermediate revisions by 10 users not shown) | |||
Line 4: | Line 4: | ||
{{Stub}} | {{Stub}} | ||
+ | |||
+ | === [[Installation]] === | ||
+ | How to get started using GNUStep, because it is not immediately obvious, and we appologize for that. | ||
+ | |||
+ | === [[GNUstep Suite|GNUstep Libraries and Tools]] === | ||
+ | |||
+ | A general overview of GNUstep. | ||
+ | |||
+ | === [http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_toc.html GNUstep Base Programming Manual] === | ||
+ | |||
+ | The aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description. | ||
+ | |||
+ | While Objective-C is not a difficult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration. | ||
+ | |||
+ | ===[[GNUStep Macros]]=== | ||
+ | See a define, but don't know what it's for, you are not alone. See this article for a reference to various macros, or otherwise unusual language extensions that you may see when reading the GNUStep Code. | ||
+ | |||
+ | === [http://www.roard.com/docs/lmf2.article/en.html (GUI) Programming under GNUstep] === | ||
+ | |||
+ | This tutorial will introduce you to the [[AppKit]] classes and how to use [[Gorm]] to create graphical interfaces. | ||
+ | |||
+ | === [[Writing Makefiles]] === | ||
+ | |||
+ | The Makefile package is a system of make commands that is designed to encapsulate all the complex details of building and installing various types of projects from libraries to applications to documentation. This frees the developer to focus on the details of their particular project. Only a fairly simple main makefile need to be written which specifies the type of project and files involved in the project. | ||
+ | |||
+ | === Sample GNUstep Programs === | ||
+ | |||
+ | This isn't really an article but rather a collection of small "codified guides" for the pragmatic programmer who wants to explore GNUstep by looking at and messing around with example code. This is best done while reading about basic concepts of OpenStep or Cocoa with the API documentation ([[Foundation]], [[AppKit]]) open in the background. Get the gnustep-examples package from [ftp://ftp.gnustep.org/pub/gnustep/core/ here] | ||
== General == | == General == | ||
Line 9: | Line 37: | ||
=== [[Writing portable code|Coding for Portability]] === | === [[Writing portable code|Coding for Portability]] === | ||
− | Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes some straight-forward steps to take to make your program easy to port to new platforms. | + | Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes |
+ | some straight-forward steps to take to make your program easy to port to new platforms. | ||
=== [[Property Lists|Using Property Lists]] === | === [[Property Lists|Using Property Lists]] === | ||
A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists. | A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists. | ||
+ | |||
+ | === [[Deployment on Windows]] === | ||
+ | |||
+ | This article will tell you how to deploy GNUstep applications on Windows. | ||
+ | |||
+ | === [[Adding a new Natural Language to GNUstep|Translating GNUstep]] === | ||
+ | |||
+ | Translation of GNUstep applications involves a number of steps, including translation of GNUstep Base and GNUstep GUI. | ||
+ | |||
+ | === [[Contributing to GNUstep core libraries]] === | ||
+ | |||
+ | Contributing to the core libraries is what everyone loves you for the most ... but it's quite a step to go from simple bug fixes/patches to major new code contributions. Follow the link above to see how. | ||
+ | |||
+ | When you read the information on [[Contributing to GNUstep core libraries]], please keep in mind that while it was written primarily form the point of view of contributing code to the gnustep-base library, the principles all apply to the gnustep-gui library (and other library code too). Also, a lot of the information is also relevant to contributions to application/tool code, not just library code. | ||
+ | |||
+ | === [[Integrated Development Environments for Objective C]] === | ||
+ | |||
+ | Besides the official GNUstep project tools there are some more IDEs that can help you to get into developing GNUstep and Objective C very easily. | ||
== Graphical Applications == | == Graphical Applications == | ||
+ | |||
+ | === Simple Graphical Application Design === | ||
+ | GNUstep includes two development tools. GNUstep GUI interfaces are designed using [[Gorm]] (Graphical Object Relationship Modeler), an elegant application developed by Gregory Casamento. (See his [http://heronsperch.blogspot.com/ blog] for the latest news on GORM.) There is a proto-IDE, [[ProjectCenter]]. | ||
+ | |||
+ | There are several introductory tutorials for using these development tools. The first [http://www.gnustep.it/pierre-yves/index.html tutorial] by Pierre-Yves Rivaille is a classic demonstrating the process used to create the ubiquitous currency converter application. A second [http://www.nongnu.org/gstutorial/ tutorial] by Yen-Ju Chen is somewhat more in-depth and extensive. | ||
=== [[Document based applications|Document-based Application Design]] === | === [[Document based applications|Document-based Application Design]] === | ||
One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application. | One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application. | ||
+ | |||
+ | |||
+ | == Web Applications == | ||
+ | |||
+ | Please have a look at [[Creating A Simple GSWeb Application]] to learn how to create a [[GNUstepWeb|GNUstep Web]] application. | ||
+ | |||
+ | == Other Information == | ||
+ | |||
+ | === Developer sites === | ||
+ | |||
+ | * [http://www.roard.com/docs/ GNUstep HelpCenter] | ||
[[Category:Development]] | [[Category:Development]] |
Latest revision as of 18:18, 13 April 2020
This page is intended as a collection of guides for developers.
Introductory Articles on GNUstep Development
This article or section is a stub (i.e., in need of additional material). You can help us by expanding it |
---|
Installation
How to get started using GNUStep, because it is not immediately obvious, and we appologize for that.
GNUstep Libraries and Tools
A general overview of GNUstep.
GNUstep Base Programming Manual
The aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description.
While Objective-C is not a difficult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration.
GNUStep Macros
See a define, but don't know what it's for, you are not alone. See this article for a reference to various macros, or otherwise unusual language extensions that you may see when reading the GNUStep Code.
(GUI) Programming under GNUstep
This tutorial will introduce you to the AppKit classes and how to use Gorm to create graphical interfaces.
Writing Makefiles
The Makefile package is a system of make commands that is designed to encapsulate all the complex details of building and installing various types of projects from libraries to applications to documentation. This frees the developer to focus on the details of their particular project. Only a fairly simple main makefile need to be written which specifies the type of project and files involved in the project.
Sample GNUstep Programs
This isn't really an article but rather a collection of small "codified guides" for the pragmatic programmer who wants to explore GNUstep by looking at and messing around with example code. This is best done while reading about basic concepts of OpenStep or Cocoa with the API documentation (Foundation, AppKit) open in the background. Get the gnustep-examples package from here
General
Coding for Portability
Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes some straight-forward steps to take to make your program easy to port to new platforms.
Using Property Lists
A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists.
Deployment on Windows
This article will tell you how to deploy GNUstep applications on Windows.
Translating GNUstep
Translation of GNUstep applications involves a number of steps, including translation of GNUstep Base and GNUstep GUI.
Contributing to GNUstep core libraries
Contributing to the core libraries is what everyone loves you for the most ... but it's quite a step to go from simple bug fixes/patches to major new code contributions. Follow the link above to see how.
When you read the information on Contributing to GNUstep core libraries, please keep in mind that while it was written primarily form the point of view of contributing code to the gnustep-base library, the principles all apply to the gnustep-gui library (and other library code too). Also, a lot of the information is also relevant to contributions to application/tool code, not just library code.
Integrated Development Environments for Objective C
Besides the official GNUstep project tools there are some more IDEs that can help you to get into developing GNUstep and Objective C very easily.
Graphical Applications
Simple Graphical Application Design
GNUstep includes two development tools. GNUstep GUI interfaces are designed using Gorm (Graphical Object Relationship Modeler), an elegant application developed by Gregory Casamento. (See his blog for the latest news on GORM.) There is a proto-IDE, ProjectCenter.
There are several introductory tutorials for using these development tools. The first tutorial by Pierre-Yves Rivaille is a classic demonstrating the process used to create the ubiquitous currency converter application. A second tutorial by Yen-Ju Chen is somewhat more in-depth and extensive.
Document-based Application Design
One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application.
Web Applications
Please have a look at Creating A Simple GSWeb Application to learn how to create a GNUstep Web application.