Skip to content

Crissium/SilverDict-mobile

Repository files navigation

Description

Crowdin

Get it on F-Droid

Guide

This is the mobile (Android & iOS) client of SilverDict, considered feature-complete now.

I cannot develop the iOS version because I don't have a Mac or a 99 USD/year Apple Developer account. If you would like to help, please contact me.

Roadmap

Perhaps before I do anything else, I should switch to Kotlin (which would make so many things easier) since I won't develop for iOS.

Kotlin's all Greek to me, so I'll stick with JavaScript for now.

  • Basic UI (Search, History/Suggestion, Settings, etc.)
  • Go back/forwards in local history
  • Zoom in/out and remember the zoom level
  • Find in page
  • Tap to search
  • Dictionary/Group management
  • Two-column view on wider screens
  • Localisation
  • Launch SilverDict from context menu (that is, when you select a word in another app, you can choose to search for it in SilverDict. Also this would make it integrate better with e-book readers.)

Issues

  • Dynamic screen width in WebView (if you rotate from portrait to landscape, the WebView will not be resized)
  • The WebView takes too long to load (1 - 300 ms). When the entire Dark Reader library is loaded, the minimum could be as long as 100 ms.

Development

Prerequisites

  • React Native (without Expo), Android SDK, Xcode, etc.
  • A working SilverDict server for testing
  • React Native Paper
  • React Navigation

Build

yarn install
yarn start
yarn android

Note

The Dark Reader extension is taken from the NPM package, uglified and turned into a string to make it injectable into the WebView.

There has been a huge update to the web UI recently, which might supersede this project completely, since it doesn't have any Android system integration yet…