Fedi — Flutter open-source social network client. Part 5. Android Studio Plugins & Feature Plans.
List of Android Studio Plugins used during Fedi development and features which not implemented in Fedi but should be in the next updates.
Fedi is an open-source client for Pleroma and Mastodon social networks written using Flutter available on iOS(Beta) and Android(Beta)
Series:
- Part 1. Architecture.
- Part 2. Code.
- Part 3. Build & Config.
- Part 4. Used packages.
- Part 5. Android Studio Plugins & Feature Plans.
In this part:
· Android Studio Plugins
∘ .env files support
∘ Dart Data Class
∘ Database Inspector
∘ Flutter Enhancement Suite
∘ Flutter Intl
∘ Grep Console
∘ Indent Rainbow & Rainbow Brackets
∘ Key Promoter X
· Future plans
∘ Navigator 2.0
∘ Continues Integration & Continues Development
∘ REST API Wrapper
∘ Forms
∘ Platform Widgets
Android Studio Plugins
.env files support
Syntax highlighting in .env files
Dart Data Class
- Named argument constructor generator
- copyWith() method generator
- toMap() / fromMap() methods generator
Database Inspector
Explore SQLite database dump in Android Studio
You can make dump from the Android emulator
Flutter Enhancement Suite
Several Dart/Flutter enhancements including:
- View Pub Package’s Documentation & Changelog
- View Test Coverage Report — You can explore test coverage in Andoird Studio
- Dart & Flutter Code Snippets
Flutter Intl
Automatically regenerates intl dart files once you change .arb files
Grep Console
A lot of enhancements for console window in Android Studio including:
- Grep(filter) console output by Regex
- Customizable console highlight
It is very useful when you define log tag for each file.
Indent Rainbow & Rainbow Brackets
Colorize brackets and indents
Key Promoter X
It helps learn Android Studio shortcuts.
Useful articles about shortcuts:
Future plans
There are several things that look important to me but are not implemented or refactored yet in Fedi.
∘ Navigator 2.0
∘ Continues Integration & Continues Development
∘ REST API Wrapper
∘ Forms
∘ Platform Widgets
Navigator 2.0
Fedi uses the old Navigation approach
- It does not work for web
- It increases dependencies count between features
- It doesn’t have a place to describe all routes
- It is hard to restore state if app comes back from the background
Navigator 2.0 logic looks too complex but there are several libraries that simplify routing:
Continues Integration & Continues Development
Manual Test Running and preparing builds requires a lot of time and is unstable due to the human factor. It is important to set up CI/CD pipeline once you often release updates.
REST API Wrapper
Custom logic should be replaced with packages for easier support:
Media uploading progress is still not supported
Do you know that currently it is not possible to implement file uploading progress with Flutter?
Callback just doesn’t exist and there is no way to implement it now. You can use something like multipart_request but actually these are hacks that count read bytes from file (not sent)
Forms
Currently, Fedi uses its own solution for Forms and Fields, which should be refactored or replaced by package from pub.dev:
Platform Widgets
Fedi has the same design on Android & iOS. It will be a good UI similar to other apps on the platform. flutter_platform_widgets will help with that.
Final Words
Feel free to comment and fill issue if you don’t agree with something or have suggestions.
Start using Pleroma and Mastodon with Fedi if you still not in Fediverse: iOS(Beta) and Android(Beta). Any feedback is welcome.
If you are interested in Fedi and want to help to develop it you can start from Readme.