robertodoering / harpy Goto Github PK
View Code? Open in Web Editor NEWa Twitter app built with Flutter ๐ฆ
License: GNU General Public License v3.0
a Twitter app built with Flutter ๐ฆ
License: GNU General Public License v3.0
While showing the home timeline, periodic requests with a filter to only request new tweets can automatically be added to the list.
Similarly to the official twitter app, when not on the top of the list an element can notify for new tweets.
Additionally the parent tweet should show before the first response has been received.
When logging into a different account the home timeline will display the old tweets while the new tweets are loading.
When transitioning from the UserScreen or RepliesScreen to the HomeScreen, the media images shouldn't have a hero animation.
When tapping on a Tweet to show its replies, if the Tweet itself is a reply and the parent is shown above it, it should be animated into the list.
Instead of the CircularProgressIndicator
Maybe a FloatingActionButton
that only shows when the user is not at the top and is currently scrolling up.
Using a nosql database will improve performance and be allow for migrating to a new version.
Currently duplicate tweets that exist for a user and the home timeline are cached separately.
Instead all tweets should be cached together and only the ids of the home timeline and the user timelines should be cached and used to retrieve the tweets.
When opening the app for the first time, the user should be greeted in a screen where they can set up their app and change the theme and ultimately log into their twitter account.
The default selected theme should be the light theme or the dark theme depending on the os setting.
You should be able to tweet and reply to existing tweets.
Also you need to be able to upload images/gifs and videos to append to your tweet.
The media player and image gallery for Twitter Media needs to be refactored and improved.
New features & changes include:
After adding the animated Harpy logo to the login screen, the layout changed to be different from the setup screen, even though they should be the same.
Additionally the package:auto_size_text can be used to make sure the user name scales according to the available space (like the Harpy logo in to login screen).
The auto size text could also be used in the UserProfileScreen
and other places for the user name.
When translating text the entities should be parsed properly and the media / quote url should get removed.
When clicking on a tweet in the list it should load and show replies to that tweet.
This isn't supported by the twitter api but can be worked around by using the tweet search api.
Implementation in a python lib: https://gist.github.com/edsu/54e6f7d63df3866a87a15aed17b51eaf#file-replies-py-L6
When set to true the media in the tweet tile should be collapsed by default.
Additionally it can be set to only collapse it when the user is using mobile data to prevent additional data consumption.
If one of the most recent tweets of the user contains a media player and is showing in the home timeline while opening the profile 2 of the same duplicate key exist in the same widget tree.
Media player should be refactored before this is fixed.
A dialog that is displayed when attempting to use a pro-version feature
A flutter update seems to have broken the animation.
Can just direct to the twitter.com registration page in a webview in the login screen next to the login button
When logging into the app for the first time the home timeline does not load the tweets.
An icon next to the name should show whether or not a user is verified.
Additionally enable support to swipe both up and down to dismiss an image.
When exiting the app, the list should be at the same tweet where it was before, then update and notify the user for new tweets at the top.
Maybe useful:
https://docs.flutter.io/flutter/widgets/ScrollNotification-class.html
When showing the replies to a tweet there is no need to cache the user / media images.
If the quoted tweet text contains a multi character emoji at the position it is cut off, it throws an "unformatted utf16" exception and causes the list to not render any subsequent tweets.
Only in the user profile screen.
Just like images in tweet media open in a fullscreen image gallery.
An icon for the free and pro version of Harpy.
The icon can also be used in the EntryScreen
to show when the app opens.
The package:shimmer can be used instead of a CircularProgressIndicator
while initially loading the Tweets for the list.
For the HomeTimeline
, UserTimeline
and TweetRepliesScreen
It should act similar to the name in the UserTile
.
The default video and image quality should be able to be changed in the settings.
When a user sends a report, it should automatically be sent via email.
The credentials should be loaded through a file similar to the api keys.
Using package:get_it for dependency injection makes the code more readable and maintainable
When an async tasks in a ChangeNotifier
completes we need to make sure it hasn't been disposed before notifyListiners
is called.
Example: open user profile and immediately go back.
Maybe don't use ChangeNotifier
when asynchronous tasks are involved.
Calling notifyListeners
doesn't break anything, it only fails an assert for debug builds but it should be best practice to avoid it.
If a tweet in the list of tweets is a reply to another tweet in the list, display them together below each other.
Maybe the pallete_generator package can be used to get the complimentary color for the user banner.
Or maybe just add a slightly translucent backdrop for the button (like the CircularButton
)
When set to true videos and gifs will automatically start playing when scrolling through the timeline.
Additionally it should allow to only autoplay when connected to wifi.
Should be on but only when connected to wifi initially.
Media player needs to be refactored for this option to get implemented fully.
Nice to have:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.