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
If a tweet in the list of tweets is a reply to another tweet in the list, display them together below each other.
When translating text the entities should be parsed properly and the media / quote url should get removed.
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.
When showing the replies to a tweet there is no need to cache the user / media images.
Instead of the CircularProgressIndicator
The media player and image gallery for Twitter Media needs to be refactored and improved.
New features & changes include:
A dialog that is displayed when attempting to use a pro-version feature
The package:shimmer can be used instead of a CircularProgressIndicator
while initially loading the Tweets for the list.
For the HomeTimeline
, UserTimeline
and TweetRepliesScreen
The default video and image quality should be able to be changed in the settings.
When logging into a different account the home timeline will display the old tweets while the new tweets are loading.
Can just direct to the twitter.com registration page in a webview in the login screen next to the login button
Maybe a FloatingActionButton
that only shows when the user is not at the top and is currently scrolling up.
It should act similar to the name in the UserTile
.
Nice to have:
Using package:get_it for dependency injection makes the code more readable and maintainable
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.
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 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 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 flutter update seems to have broken the animation.
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.
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.
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.
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.
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 transitioning from the UserScreen or RepliesScreen to the HomeScreen, the media images shouldn't have a hero animation.
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.
Additionally enable support to swipe both up and down to dismiss an image.
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.
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 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.
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.
Additionally the parent tweet should show before the first response has been received.
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
)
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.
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.