Skip to content

Haz3-jolt/AnkiDroid-GSoC-Report

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 

Repository files navigation

Hari Srinivasan

Tablet & Chromebook UI - Google Summer of Code 2025

ย  GitHub | LinkedIn


๐Ÿฆ‰ Mentors


๐Ÿ“š Organization Overview

AnkiDroid is an Android application for Anki, a powerful flashcard program that aids in learning and memorizing various topics through spaced repition and has been proven an effective tool in multiple peer-reviewed studies.

๐ŸŽฏ Project Goal

My work focused on enhancing the user experience of AnkiDroid on larger devices like tablets and Chromebooks. The project aimed to improve usability, readability, and overall aesthetics, ensuring AnkiDroid remains intuitive and efficient across a wider range of devices and introduce a more desktop-esque UX to more effectively use the larger screen real estate.


๐Ÿš€ Project Achievements

1. Resizable Layouts

Allowing users to resize the panes in any dual fragment layouts.

Deck Picker

Before:

ย  ย  image8

After:

ย  ย  DeckPicker

Card Browser

Before:

ย  ย  image7

After:

ย  ย  CardBrowser

Card Template Editor

Before:

ย  ย  image18

**After:**

ย  ย  CardTemplateEditor

2. Mouse Improvements

Improved mouse capabilities with the following:

Right Click to select cards in card browser

mouse.webm

Hover effects for resizable divider

hover.webm

Right Click Context Menus

478200199-605107d9-a57f-413a-8b6b-c87dfecf523d

3. Add Previewer to NoteEditor

Introduces a dual-pane layout for the Note Editor, integrating a live previewer. Users will be able to edit notes while simultaneously seeing a real-time preview of the generated cards. This change consisteted of many smaller steps including splintering the note editor into a seperate fragment and activity, and creating a interface for the noteeditor to send information on changes to the previewer.

Before:

ย  ย  image12

After:

ย  ย  NoteEditor


๐Ÿ“‚ Pull Requests

Here's a list of the pull requests I created during GSoC 2024:

  1. introduces the ResizablePaneManager Utility class to handle all resizable screens and make DeckPicker resizable
  2. refactor DeckPicker resizable implementation, and make CardTemplateEditor resizable
  3. refactoring Card editor - Deprecate editor Title, wrap in CardView, show focus
  4. make cardBrowser Resizable and refactor shared pref of resizable screens into seperate shared pref
  5. rename NoteEditor to NoteEditorFragment
  6. refactor NoteEditor to use a AnkiActivity instead of SingleFragmentActivity
  7. rename note_editor.xml to note_editor_fragment.xml
  8. move mainToolbar to NoteEditorActivity and NoteEditorFragment NF cleanup
  9. fix: hide save button in fragmented activity to prevent duplication
  10. feat: add hover effects to divider in ResizablePaneManager
  11. feat: Right click to select in CardBrowser
  12. nf: Resizable Screens
  13. nf: Rename inFragmentedActivity to inCardBrowserActivity
  14. fix(deck-picker): hide resizing divider when collection is empty
  15. introduce right click context menus
  16. fix(resizable-pane): prevent parent from intercepting touch events during resizing drag
  17. Add Previewer to NoteEditor

๐Ÿ’ก Outcome

This project successfully improved the accessibility and user experience of AnkiDroid on large screens. By introducing resizable dual-pane layouts and enhancing mouse support with features like right-click menus, the app now provides a more intuitive and efficient interface for tablet and Chromebook users. This work lays a strong foundation for AnkiDroid's continued evolution on large-screen devices.


๐Ÿ”ฎ Future Work

A key next step is the expansion of bounding box functionality. This is a planned addition to the Note Editor and all dual-fragment screens, which will force the panes to collapse back into a single-pane activity when a certain screen size threshold is met. This will ensure a more fluid and responsive experience for users who frequently resize or re-orient their devices. I also plan to add right-click context menus to more screens to further enhance large-screen usability.


Feel free to connect with me on LinkedIn or check out my other projects at GitHub.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors