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