GitHub has announced the launch of the new GitHub Desktop Beta and the release of the GitHub package for Atom. GitHub has had a desktop Git application for quite some time. However, the company has completely rebuilt the application from the ground up so that the user experience is simpler. Another reason for the rebuild is that the existing GitHub Desktop for macOS and Windows are two entirely distinct products with different technology stacks.
"The existing GitHub Desktop application is two separate implementations; one built for Windows with WPF and C#, the other for Mac with Objective-C, Cocoa, and Swift. Two separate implementations requires two different teams of developers," Phil Haack, director of client applications at GitHub, told ProgrammableWeb. "We decided to reboot Desktop and rebuild it on Electron. This means we have a single team working on a single codebase for all platforms. We also took this as an opportunity to rethink some of the UI and improve the workflow."
GitHub has released the GitHub package for Atom which expands Atom's built-in Git functionality allowing users to perform common Git operations from within the editor. Atom already had built-in Git functionality, but it was very limited. The text editor could display read-only data about which files were new or modified, and that was it. Now Atom users can stage whole files or individual lines, create and amend commits, push and pull from GitHub, create and switch branches, resolve merge conflicts, and more.
Prior to today's release of the GitHub package for Atom, Atom users had to use third-party plug-ins like GitPlus to add some bi-directional capabilities such as listing and adding commits, pushes, and branches. The package not only expands Atom's built-in Git functionality but also includes GitHub integration such as listing Pull Requests (PRs) associated with the current branch in the sidebar.
"We wanted to offer a better experience for Git users through a richer integration with Atom," said Haack. "Our bundled package goes beyond with the staging GUI, integrated diff view, and merge conflict resolution. What we're announcing also has GitHub-specific features like Pull Request view, available today."
GitHub recently announced a platform update that includes some improvements such as the introduction of Projects. GitHub is using GraphQL to power the UI of the Projects feature, and Haack told ProgrammableWeb that "the GitHub package for Atom takes advantage of some new GraphQL endpoints on GitHub to list Pull Requests related to the current branch." Haack also said that Desktop Beta does not have GraphQL implementations currently but "in the future, Desktop will absolutely build on GraphQL."
"We're passionate about building tools that make working with GitHub more approachable and productive. It's also important to us to give our community the option to take part in this work by making these tools open source," said Haack.
GitHub Desktop Beta and GitHub package for Atom are both beta releases available today.