README.md 2.49 KB
Newer Older
Waweic's avatar
Waweic committed
1
2
3
4
5
6
7
# Gemini Client for Android

I read about the [Gemini Protocol](gemini://gemini.circumlunar.space/) some days ago and noticed that there was no native client for Android.
The protocol is really simple, so I decided to have a go at implementing it in a Language I didn't (and still don't) know (Kotlin). This client is far from complete, but it works to a certain degree and can serve as a client for Android until there is something real.
I am not good at programming, especially not with stuff that has a GUI and even less with adding networking functionality to it. I expect many flaws to be in my code and so should you, if you use it. Expect crashes on a regular basis.
If anyone finds this interesting, I might actually put a little more of my time into it, but until then, this will probably stay as-is.

Waweic's avatar
Waweic committed
8
If you want to download the Application without building it yourself, you can download the latest APK [from the releases](https://framagit.org/waweic/gemini-client/-/releases), although I do not recommend this.
9
Alternatively, you could probably download the latest bleeding-edge build [here](https://framagit.org/waweic/gemini-client/-/jobs/artifacts/master/raw/app/build/outputs/apk/debug/app-debug.apk?job=assembleDebug)
Waweic's avatar
Waweic committed
10
11
12
13
14
## Stuff that works
* Requesting information via Gemini
* Viewing formatted text/gemini documents
  - Clickable links
  - Bullet points
Waweic's avatar
Waweic committed
15
  - Headings
Waweic's avatar
Waweic committed
16
17
18
19
* Viewing other text/* documents
* Open application when gemini:// link in other app / browser is clicked
* Open other application when a link is clicked that has a scheme the client can't handle
* Basic redirection
Waweic's avatar
Waweic committed
20
* Does not start a new Activity when you click anywhere (thanks to a much appreciated hint by [@utf8equalsX@fosstodon.org](https://fosstodon.org/@utf8equalsX))
21
22
23
* Avoiding redirection loops
* The "Back"-button
* An (internal and temporary) browsing history
Waweic's avatar
Waweic committed
24
* Gemini INPUT
Waweic's avatar
Waweic committed
25
* Connecting to hosts with self signed certificates
Waweic's avatar
Waweic committed
26
27
28
29

## Stuff that doesn't work (aka wishlist for the future)
* Certain SSL/TLS Versions on older Android versions (I probably can't fix this)
* Downloading anything that is not of type text/*
30
* Crashes when page is too big (feels just like a "real" web browser! #inabiaf)
Waweic's avatar
Waweic committed
31
32
33
34
35
36
37
* Caching for offline use
* Useful error messages
* Graceful error handling
* Markdown
* Code quality / structure
* Client certificates
* Security
Waweic's avatar
Waweic committed
38
* Preformatted Text in Gemini documents
Waweic's avatar
Waweic committed
39
40

## Stuff that probably should be done differently
41
* Handling other character encodings than utf-8
Waweic's avatar
Waweic committed
42
* Implement some form of TOFU for self signed certificates
43
* Probably a lot