Fedi — Flutter open-source social network client. Part 5. Android Studio Plugins & Feature Plans.

Yevhenii Zapletin
3 min readJul 21, 2021

--

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:

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.

--

--