Building Git for touch screens: Inside Code on the Go's mobile-first Git UI

taubek1 pts0 comments

Building Git for touch screens: inside Code on the Go’s mobile-first Git UI

Skip to content

contact

Blog

code on the go

ABOUT US

contact

Blog

press

Building Git for touch screens: Inside Code on the Go’s mobile-first Git UI

Share This Post

Oluwadara Abijo

May 15, 2026

Modern Android development moves fast. You need to be able to snapshot your progress and test ideas safely. Version control ensures that you can move fast and try new things with risking a broken, unrecoverable code base. For developers using Code on the Go (CoGo) to manage complex projects, our Git integration must meet professional standards.

On a desktop, switching between an editor and a terminal window is click away. On a phone, switching back and forth isn’t as seamless. This discourages you from committing as often as you should, risking lost work and a tangled history. For GoGo, our goal to get rid of the friction and help you get to "Done" faster.

CoGo has always included an integrated Termux terminal with a Linux CLI. It is good for advanced users who need to do complicated things with Git, but for everyday needs, a graphical user interface (GUI) makes more sense. The goal is a GIT GUI that encourages best practices for version control.

User pain points and other design challenges

Three pain points drove the design of our Git GUI:

Context switching. On a phone, opening a separate Termux window and navigating back to the code editor interrupts flow. To eliminate this friction and encourage frequent commits, we’ve made Git operations accessible while the editor is open.<br>The on-screen keyboard. Typing on a virtual keyboard in a terminal window is slow and error-prone. Worse, the CoGo features like predictive autocomplete that make it easier to type code in the editor don’t work in the terminal. In the GUI, the change summary is often all you need to type.<br>The diff view problem. A traditional side-by-side view shows the old version on the left and the new version on the right. That view doesn’t work on a phone. On a six-inch phone held in portrait mode, two columns of code each become roughly 20 to 30 characters wide, which makes even short variable names wrap or truncate. We concluded that the side-by-side format isn’t viable on a phone, so we needed to design another way to display the diffs.

Our solution

The foundation of CoGo’s Git UI is JGit, a pure Java implementation of Git. Using JGit gives you responsiveness that a terminal wrapper cannot match.

For the design, we took inspiration from GitHub Desktop’s clean, streamlined flow and adapted it for vertical, touch-first interaction. The Git UI lives in the editor bottom sheet as a dedicated tab, so the most commonly used operations (commit, pull, and push) are a tap away without needing to leave the current file.

The specific components of our Git implementation include:

Git status view. This shows the current branch name alongside all unstaged and untracked files. Color coding distinguishes new, modified, deleted, and conflicted files. To stage a file, select its checkbox and then tap Commit . The commit action handles both git add and git commit in a s step.<br>Unified diff view. Rather than attempt a side-by-side layout, we implemented a unified diff with color-coded overlays for additions and deletions. Changes are stacked vertically, which works in both portrait and landscape orientation.

Figure 1 - Screen capture showing the unified diff view in CoGo.

Commit history . A scrollable commit log displays the repository timeline without requiring git log or any flags. Local and remote commits are visually distinguished, and the push option only appears when a local commit exists to be pushed.

Figure 2 - Screen capture showing CoGo's commit history interface.

Credentials management. To simplify authentication, we built a native credentials manager that stores tokens securely using Android SharedPreferences combined with a crypto manager that encrypts the stored values. This eliminates repetitive manual entry and reduces the friction of remote authentication.

Lessons learned

During planning, it was tempting to expose every Git command available, but we found that most of a developer’s day involves a small number of operations (commit, push, pull). We chose to prioritize a clean bottom sheet over a comprehensive but cluttered menu.

While the diff view decision was driven by a hardware reality, we believe that the vertical, stacked layout of unified diff is the most readable way to present the information on a phone. Designing for a small Android screen reminded us that mobile-first development requires rethinking the desktop blueprint.

The JGit choice reinforced that reducing interruptions and helping developers maintain focus are more important than raw processing speed. A shell wrapper could execute the same underlying Git operations quickly, but the terminal’s handshake latency could be perceptible and disruptive in a way that a direct library call is...

code commit view cogo terminal phone

Related Articles