This is a basic twitter app to read and compose tweets using the Twitter API.
Time spent: 11.5h week 1, 9h10m week 2
Features
Required
- Week 1:
- User can sign in using OAuth login flow
- User can view last 20 tweets from their home timeline
- The current signed in user will be persisted across restarts
- In the home timeline, user can view tweet with the user profile picture, username, tweet text, and timestamp.
- User can pull to refresh
- User can compose a new tweet by tapping on a compose button.
- User can tap on a tweet to view it, with controls to retweet, favorite, and reply.
- Week 2: Hamburger menu
- Dragging anywhere in the view should reveal the menu.
- The menu should include links to your profile, the home timeline, and the mentions view.
- Week 2: Profile page
- Contains the user header view
- Contains a section with the user's basic stats: # tweets, # following, # followers Week 2: Home Timeline
- Tapping on a user image should bring up that user's profile page
Optional
- Week 1
- When composing, you should have a countdown in the upper right for the tweet limit.
- After creating a new tweet, a user should be able to view it in the timeline immediately without refetching the timeline from the network.
- Retweeting and favoriting should increment the retweet and favorite count.
- User should be able to unretweet and unfavorite and should decrement the retweet and favorite count.
- Replies should be prefixed with the username and the reply_id should be set when posting the tweet,
- User can load more tweets once they reach the bottom of the feed using infinite loading similar to the actual Twitter client.
- Week 2: Profile page
- Implement the paging view for the user description
- As the paging view moves, increase the opacity of the background screen.
- Pulling down the profile page should zoom the header image.
- Week 2: Account switching
- Long press on profile picture to bring up Account view with animation
- Tap account to switch to
- Include a plus button to Add an Account
- Swipe to delete an account
- Stuff I added
- Display a page control to indicate when the header changes.
- Allow links within tweets to be clickable