Pachli è un client Android completo per Mastodon: La timeline viene memorizzata nella cache locale, in modo da poterla leggere anche quando si è offline Bozza dei post ora per finirli in un secondo momento Scrivere i post ora e programmarne l'invio in un secondo momento Leggere e pubblicare da più account Gestite chi seguite con più elenchi Utilizzare diversi temi per personalizzare l'interfaccia utente Una varietà di font accessibili in diverse dimensioni Pieno controllo su come e quando si ricevono le notifiche https://mastodon.it/it/Quale-app-mastodon-utilizzare
Go to file
Nik Clayton a3d45ca9ec
refactor: Convert from Gson to Moshi (#428)
Moshi is faster to decode JSON at runtime, is actively maintained, has a
smaller memory and method footprint, and a slightly smaller APK size.
Moshi also correctly creates default constructor arguments instead of
leaving them null, which was a source of `NullPointerExceptions` when
using Gson.

The conversion broadly consisted of:

- Adding `@JsonClass(generateAdapter = true)` to data classes that
marshall to/from JSON.

- Replacing `@SerializedName(value = ...)` with `@Json(name = ...)`.

- Replacing Gson instances with Moshi in Retrofit, Hilt, and tests.

- Using Moshi adapters to marshall to/from JSON instead of Gson `toJson`
/ `fromJson`.

- Deleting `Rfc3339DateJsonAdapter` and related code, and using the
equivalent adapter bundled with Moshi.

- Rewriting `GuardedBooleanAdapter` as a more generic `GuardedAdapter`.

- Deleting unused ProGuard rules; Moshi generates adapters using code
generation, not runtime reflection.

The conversion surfaced some bugs which have been fixed.

- Not all audio attachments have attachment size metadata. Don't show
the attachment preview if the metadata is missing.

- Some `throwable` were not being logged correctly.

- The wrong type was being used when parsing the response when sending a
scheduled status.

- Exceptions other than `HttpException` or `IoException` would also
cause a status to be resent. If there's a JSON error parsing a response
the status would be repeatedly sent.

- In tests strings containing error responses were not valid JSON.

- Workaround Mastodon a bug and ensure `filter.keywords` is populated,
https://github.com/mastodon/mastodon/issues/29142
2024-02-09 12:41:13 +01:00
.github ci: Allow gradle to set the number of workers (#416) 2024-02-04 21:13:04 +01:00
.idea refactor: Transition from Tusky to Pachli 2023-09-05 13:33:37 +02:00
app refactor: Convert from Gson to Moshi (#428) 2024-02-09 12:41:13 +01:00
assets refactor: Remove unnecessary SVG metadata 2023-09-20 19:05:35 +02:00
build-logic refactor: Modularise core activity classes, (#393) 2024-01-30 11:37:00 +01:00
checks chore(deps): update plugin ktlint to v12 (#357) 2024-01-08 23:26:46 +01:00
core refactor: Convert from Gson to Moshi (#428) 2024-02-09 12:41:13 +01:00
docs docs: Update translation instructions with new modules (#398) 2024-01-30 16:40:43 +01:00
fastlane/metadata/android fix(l10n): Update Indonesian translations 2024-02-03 15:26:43 +01:00
feature change: Disable SyntheticAccessor lint rule (#424) 2024-02-06 19:51:37 +01:00
gradle refactor: Convert from Gson to Moshi (#428) 2024-02-09 12:41:13 +01:00
licenses feat: Allow the user to choose a different font 2023-09-04 20:22:07 +02:00
plugins/markdown2resource refactor: Modularise "about" activities (#405) 2024-02-02 15:14:31 +01:00
tools refactor: Convert from Gson to Moshi (#428) 2024-02-09 12:41:13 +01:00
.editorconfig fix: Improve parsing of Friendica (and other server) version formats (#376) 2024-01-23 20:27:25 +01:00
.gitattributes
.gitignore chore: Update .gitignore for gradle-profiler (#176) 2023-10-15 22:18:13 +02:00
CHANGELOG.md chore: Prepare release 2.2.0 (versionCode 11) (#392) 2024-01-29 10:09:57 +01:00
CLA_ENTITY.md docs: Add contributor license agreements (#1) 2023-09-05 14:35:07 +02:00
CLA_IC.md docs: Add contributor license agreements (#1) 2023-09-05 14:35:07 +02:00
CODE_OF_CONDUCT.md docs: Adopt the Contributor Covenant Code of Conduct 2023-09-05 13:40:58 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md (#31) 2023-09-12 13:18:50 +02:00
COPYRIGHT.txt docs: Add COPYRIGHT.txt 2023-09-01 18:26:21 +02:00
LICENSE.txt
PRIVACY.md docs: Be more specific about data in the privacy policy (#136) 2023-09-30 12:56:48 +02:00
README.md docs: Mention translation support in the documentation (#253) 2023-11-15 15:59:31 +01:00
Release.md
build.gradle refactor: Break navigation dependency cycles with :core:navigation (#305) 2023-12-07 18:36:00 +01:00
crowdin.yml Update Crowdin configuration file 2024-01-30 12:29:47 +01:00
gradle.properties chore(deps): Update to AGP 8.1.1 (#130) 2023-09-27 18:06:14 +02:00
gradlew chore(deps): update dependency gradle to v8.5 (#170) 2024-01-08 12:51:34 +01:00
gradlew.bat chore(deps): update dependency gradle to v8.6 (#411) 2024-02-03 15:05:43 +01:00
renovate.json
runtools change: Add tools/mklanguages 2023-09-04 20:22:05 +02:00
runtools.bat change: Add tools/mklanguages 2023-09-04 20:22:05 +02:00
settings.gradle.kts chore(deps): update dependency gradle to v8.6 (#411) 2024-02-03 15:05:43 +01:00

README.md

Contributor Covenant Contributor License Agreement Translate - with Weblate

Get it on Google Play Get it on F-Droid

Pachli

Pachli is a full-featured Android client for Mastodon, with a cooperative development model.

Features include:

  • Read, reply, filter, post, favourite, and boost posts
  • Translate posts from other languages
  • Your timeline is cached locally, so you can read when offline
  • Draft posts now to finish them later
  • Write posts now and schedule them to send later
  • Read and post from multiple accounts
  • Manage who you follow with multiple lists
  • Use different themes to customise the UI
  • A variety of accessible fonts in different sizes
  • Full control over how and when you receive notifications
  • Explore trending posts, links, and hashtags

Pachli is open source.

Install the newest release from the list of releases, or from Google Play and F-Droid.

Support

Contributing

We actively welcome new contributors. Please read CONTRIBUTING.md for more information.

More information

More information about the application and the principals underpinning its development are at https://pachli.app.