Skip to content

LeanMark 0.2.0

Latest

Choose a tag to compare

@abooodbah abooodbah released this 06 Nov 14:03
b4f61a3

LeanMark for Android 0.2.0

LeanMark for Android 0.2.0 brings the reader settings of desktop LeanMark
0.6.0 to the phone, shows "On this page" on a phone with the section you are
reading highlighted, and is about half the size.

On Google Play this app is in a closed test. To join:
https://abooodbah.github.io/leanmark-android/

What changed

  • Settings sheet. The new settings button opens a sheet at the bottom of
    the screen with the theme, the text width and the zoom. Back closes it.
  • Text width. Narrow, Wide or Full, remembered. On a phone held upright
    the three look the same, because the screen is narrower than the Narrow
    column; they differ in landscape and on tablets.
  • Zoom enlarges only the document. The toolbar keeps its size. A pinch
    steps through the same zoom levels as the sheet's buttons. The system font
    size still applies to the whole page. A zoom level saved by 0.1.x opens at
    the same text size.
  • Theme dot. The theme button shows a coloured dot for the current theme.
  • On this page. A round button in the bottom corner opens the document's
    sections as a sheet. The section you are reading is highlighted and kept in
    view, with the same look as on the desktop in all five themes. On a wide
    screen the list sits beside the document instead.
  • Missing images. The note shown in place of an image that cannot load
    now uses the theme's colours.
  • Smaller. The APK is 2.3 MB instead of 4.1 MB, and Google Play
    downloads 1.3 MB to an arm64 phone instead of 1.5 MB.
  • Light and dark. Switching the phone between light and dark keeps
    your place in the document. With the System theme the page takes the new
    colours; a chosen theme stays as it is.
  • Keyboard. With a hardware keyboard, the reader's shortcuts work as soon
    as a file opens.

Still no permissions and no network.

How it was measured

On an API 34 emulator without a GPU, in the CI budgets job, release builds
of 0.1.2's code and of 0.2.0 measured in turns:

  • APK, all ABIs: 4,103,101 bytes for 0.1.2, about 2.25 MB for 0.2.0. The
    native library now exports only its JNI entry points, so the linker drops
    the unused C++ runtime (1,113,648 to 411,128 bytes on arm64).
  • Java allocations up to a 1 MiB document on screen: about 13.6 MB before,
    8.9 MB now, from two fewer copies of the document.
  • Rotating a 1 MiB document takes the same time as before (155 and 165 ms
    against 172 ms).
  • Zooming a 1 MiB document takes the same time as before.
  • Start time is unchanged. Fifteen cold starts of each build, taken in
    turns, gave 1,166 ms to the document on screen for 0.2.0, 1,138 ms for
    the same build installed again, and 1,206 ms with the 0.1.2 reader page.
    The phone budget is under 1 s from an empty app's start.
  • Switching the phone between light and dark no longer reopens the
    document: on a 1 MiB document the new colours are on screen in 1,198 ms
    against 1,369 ms, its diagrams are drawn again in 3,228 ms against
    4,550 ms, and the reading position is kept.

The emulator has no GPU, so start time and smoothness on a phone are not
measured here; PROGRESS.md has the phone test.

Known gaps

  • Checked on emulators (Android 8 with WebView 69, Android 14 with WebView
    113), not on a real phone.
  • On a phone held upright the three text widths look the same.
  • WebView 69 lays out the sheet's choices one per line.
  • Images next to the Markdown file and links to other local files are still
    not shown.

Files

Each file has a .sha256 next to it. LeanMark-0.2.0.apk is the build to
install. It is signed with the same release key as 0.1.2, so it installs over
0.1.2.