GNOME 3 Application Development Beginner's Guide


GNOME 3 Application Development Beginner's Guide
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
$22.94
save 15%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
$44.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Full of easy to follow tutorials with ready-to-run code
  • Covers most of the subsystems in the GNOME 3 platform stack, from low to high level
  • Adapts common good development practices with GNOME 3 development environment

Book Details

Language : English
Paperback : 366 pages [ 235mm x 191mm ]
Release Date : February 2013
ISBN : 1849519420
ISBN 13 : 9781849519427
Author(s) : Mohammad Anwari
Topics and Technologies : All Books, Application Development, Beginner's Guides, Open Source

Table of Contents

Preface
Chapter 1: Installing GNOME 3 and SDK
Chapter 2: Preparing Our Weapons
Chapter 3: Programming Languages
Chapter 4: Using GNOME Core Libraries
Chapter 5: Building Graphical User Interface Applications
Chapter 6: Creating Widgets
Chapter 7: Having Fun with Multimedia
Chapter 8: Playing with Data
Chapter 9: Deploying HTML5 Applications with GNOME
Chapter 10: Desktop Integration
Chapter 11: Making Our Applications Go International
Chapter 12: Quality Made Easy
Chapter 13: Exciting Projects
Appendix: Pop Quiz Answers
Index
  • Chapter 1: Installing GNOME 3 and SDK
    • System requirements
      • The GNOME Shell
      • GNOME Panel/Fallback
      • Development requirements
    • GNOME 3 desktop architecture
    • GNOME and the SDK
    • Time for action – installing GNOME and SDK in Fedora 17
      • Marking packages to be installed
      • Ready to install the packages
    • Time for action – installing GNOME and SDK in openSUSE 12
      • Marking SDK packages
      • Starting the installation
    • Time for action – installing GNOME and SDK in Debian Testing
      • Marking SDK packages
      • Applying the installation
    • Time for action – installing GNOME and SDK in Ubuntu 12.04
      • Continue installing the SDK
    • Summary
    • Chapter 2: Preparing Our Weapons
      • Firing up Anjuta
      • Time for action – creating a new Vala project
        • The IDE layout
          • Bookmarks
          • Files
          • Project
          • Symbols
          • Watches
          • Breakpoints
          • Messages
          • Terminal
      • Navigation between tabs
      • Time for action – navigating between tabs
      • Comment block
      • Time for action – commenting/uncommenting a block
      • Time for action – running the program for the first time
        • Make an error and see how it works
      • Editing UI
      • Time for action – editing UI
        • Palette
        • Widgets
      • Time for action – adding a label and a button
      • Time for action – changing widget properties
      • A responsive button
      • Time for action – making the button responsive
      • Tracking symbols
      • Time for action – finding a symbol
      • Getting help
      • Summary
      • Chapter 3: Programming Languages
        • Programming GNOME with JavaScript
        • Time for action – saying hello to Seed
        • Time for action – running our program with Seed
          • Loosely typed language
        • Time for action – playing with data types
          • Controlling iteration
        • Time for action – controlling Iteration
        • Time for action – manipulating an array
          • Object-oriented programming (OOP) with JavaScript
        • Time for action – using the JavaScript object
          • With great power comes great responsibility
          • Constructing objects
        • Time for action – playing with constructors
          • Class and object
          • Using prototypes
        • Time for action – adding prototypes
        • Time for action – modifying the prototype of an object
          • Modularization
        • Time for action – modularizing our program
        • Getting to know Vala
        • Time for action – entry point to our program
          • Member access specifier
        • Time for action – defining member access
          • The access specifiers
          • Basic data types
        • Time for action – experiment with data types
          • Gee, what is it?
        • Time for action – adding the Gee library
        • Time for action – Gee in action
          • Initializing members when declaring
        • Time for action – watching for signals
        • Summary
        • Chapter 4: Using GNOME Core Libraries
          • Before we start
          • The GLib main loop
          • Time for action – playing with the GLib main loop
          • GObject signals
          • Time for action – handling GObject signals
          • GLib properties
          • Time for action – accessing properties
          • Configuration files
          • Time for action – reading configuration files
          • GIO, the input/output library
          • Time for action – accessing files
          • Network access with GIO
          • Time for action – accessing a network
          • Understanding GSettings
          • Time for action – learning GSettings
          • GSettings API
          • Time for action – accessing GSettings programmatically
          • Summary
          • Chapter 5: Building Graphical User Interface Applications
            • Before we start
            • Creating a basic GTK+ application
            • Time for action – implementing the mockup
            • Time for action – adding icons to the buttons
            • Porting the code without GtkBuilder
            • Time for action – programming with raw GTK+
            • GUI programming with Clutter
            • Time for action – implementing the mockup with Clutter
            • Summary
            • Chapter 6: Creating Widgets
              • Before we take off
              • Overriding the widget's standard functions
              • Time for action – overriding the set_title function
              • Adding new functionalities
              • Time for action – making a composite widget
              • Maintaining compatibility
              • Implementing a GTK+ custom widget
              • Time for action – implementing the custom widget
              • Maintaining widgets in a library
              • Time for action – creating a library
              • Summary
              • Chapter 7: Having Fun with Multimedia
                • Packages required
                • Understanding the basic concept of GStreamer
                • Accessing the GStreamer pipeline with the command line
                • Time for action – testing the pipeline
                • Time for action – programmatically playing the audio
                • Time for action – handling the events
                • Playing a video media
                • Time for action – playing video
                • Time for action – programmatically playing the video
                • Summary
                • Chapter 8: Playing with Data
                  • Presenting data with TreeView
                  • Time for action – using TreeView
                  • The Evolution Data Server (EDS) architecture
                  • Time for action – setting up the address book and the calendar data source
                  • Time for action – accessing the address book
                  • Have a go hero – saving data to the address book
                  • Summary
                  • Chapter 9: Deploying HTML5 Applications with GNOME
                    • Before we start
                    • Embedding WebKit
                    • Time for action – embedding WebKit
                    • Runtime with JavaScriptCore
                    • Time for action – calling the Vala object from the frontend
                    • Time for action – connecting GNOME with client-side JavaScript
                    • Summary
                    • Chapter 10: Desktop Integration
                      • Talking to each other with D-Bus
                      • Time for action – listening to D-Bus
                      • The GNOME session manager
                      • Time for action – talking to the session manager
                      • Launcher
                      • Time for action – putting our application in the launcher
                      • GNOME keyring
                      • Time for action – storing passwords securely
                      • Notification system
                      • Time for action – sending notifications
                      • Summary
                      • Chapter 11: Making Our Applications Go International
                        • Understanding locale
                        • Time for action – getting the available locales
                        • Time for action – adding a locale
                        • Time for action – getting different outputs with different locales
                        • i18n in a Vala project
                        • Time for action – bootstrapping the infrastructure
                        • Time for action – creating a UI
                        • Time for action – translating UI texts
                        • The localization process
                        • Summary
                        • Chapter 12: Quality Made Easy
                          • Reasons for performing unit testing
                          • Time for action – creating our first unit test
                            • Stubbing our tests
                          • Time for action – creating stubs
                          • Testing GUI modules
                          • Time for action – testing a GTK+ module
                          • Summary
                          • Chapter 13: Exciting Projects
                            • Part I – web browser
                            • Time for action – designing our UI
                              • Browser interaction
                            • Time for action – preparing the build infrastructure
                            • Time for action – finishing up
                            • Part II – A Twitter client
                            • Time for action – implementing the Twitter client
                            • Summary

                            Mohammad Anwari

                            Mohammad Anwari is a software hacker from Indonesia with more than 13 years of experience in software development. He has been working with Linux-based systems, applications in GNOME, and Qt platforms. The projects he has worked on range from the development of constrained devices and desktop applications, to high traffic server systems and applications. He worked for his own startup company during the dotcom era before moving to Finland to work for Nokia/MeeGo. Now he's back in Indonesia, regaining his entrepreneurship by establishing a new startup company that focuses on Node.js and Linux-based projects. In his free time, he serves as an executive director for BlankOn, one of the biggest open source projects in Indonesia. In the past, he has published a couple of books on Linux in the Indonesian language.
                            Sorry, we don't have any reviews for this title yet.

                            Code Downloads

                            Download the code and support files for this book.


                            Submit Errata

                            Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                            Sample chapters

                            You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                            Frequently bought together

                            GNOME 3 Application Development Beginner's Guide +    Spring Roo 1.1 Cookbook =
                            50% Off
                            the second eBook
                            Price for both: $39.00

                            Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                            What you will learn from this book

                            • GNOME 3 development environment installation in many popular Linux distributions
                            • Best engineering practices in GNOME, from mock up to the running app
                            • Accessing data with Evolution Data Server
                            • Internationalization and localization in GNOME 3
                            • Unit testing framework in GLib, Gdk, and Gtk+
                            • Multimedia programming with GStreamer
                            • GNOME 3 development environment installation in many popular Linux distributions
                            • GNOME 3 desktop integration

                            In Detail

                            GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. GNOME 3 provides both modern desktops and development platforms with more than 50 supported languages of the world. Since 1999, it has been evolving into a very nice desktop to use and an interesting platform to develop on.

                            "GNOME 3 Application Development Beginner's Guide" is about developing GNOME 3 application with Vala and JavaScript programming languages. It guides the reader to build Gtk+, Clutter, and HTML5 applications on the GNOME 3 platform. It covers GNOME 3 specific subsystems such as data access, multimedia, networking, and filesystem. It also covers good software engineering practices such as localization and testing.

                            This book is full of step-by-step tutorials and ready to run codes. The examples are written in a simple and straightforward way  to make it easier for the reader to get a thorough understanding of the topics.

                            The book starts with the installation of GNOME 3 and ends with building two exciting projects, a web browser and a Twitter client. The book starts from the basics and gradually talks about more advanced topics.

                            It then guides the readers in using the development environment starts from Anjuta IDE, Glade, and DevHelp. The essential GNOME 3 subsystems like GStreamer, GLib, GIO, GSettings, Evolutions Data Server, WebKit, and GNOME desktop are then uncovered one by one. Then the internationalization, localization, and unit testing techniques are brought up.

                            "GNOME 3 Application Development Beginner's Guide" is really a guide that a novice GNOME 3 application developer must not miss.

                            Approach

                            This book is a step-by-step guide with ready-to-run codes to guide you in developing applications with GNOME.

                            Who this book is for

                            If you have programming skill either in Linux or other operating systems and want to have GNOME 3 as one of your deployment targets, then this book is for you. This book is also for commercial software developers or an open source software hacker. The reader needs to be familiar with Vala and JavaScript before starting to develop Gtk+ and Clutter applications.

                            Code Download and Errata
                            Packt Anytime, Anywhere
                            Register Books
                            Print Upgrades
                            eBook Downloads
                            Video Support
                            Contact Us
                            Awards Voting Nominations Previous Winners
                            Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                            Resources
                            Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software