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.
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.
Allowing users to resize the panes in any dual fragment layouts.
Before:
After:
Before:
After:
Before:
**After:**Improved mouse capabilities with the following:
mouse.webm
hover.webm
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:
After:
Here's a list of the pull requests I created during GSoC 2024:
- introduces the ResizablePaneManager Utility class to handle all resizable screens and make DeckPicker resizable
- refactor DeckPicker resizable implementation, and make CardTemplateEditor resizable
- refactoring Card editor - Deprecate editor Title, wrap in CardView, show focus
- make cardBrowser Resizable and refactor shared pref of resizable screens into seperate shared pref
- rename NoteEditor to NoteEditorFragment
- refactor NoteEditor to use a AnkiActivity instead of SingleFragmentActivity
- rename note_editor.xml to note_editor_fragment.xml
- move mainToolbar to NoteEditorActivity and NoteEditorFragment NF cleanup
- fix: hide save button in fragmented activity to prevent duplication
- feat: add hover effects to divider in ResizablePaneManager
- feat: Right click to select in CardBrowser
- nf: Resizable Screens
- nf: Rename inFragmentedActivity to inCardBrowserActivity
- fix(deck-picker): hide resizing divider when collection is empty
- introduce right click context menus
- fix(resizable-pane): prevent parent from intercepting touch events during resizing drag
- Add Previewer to NoteEditor
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.
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.








