/ios_twitter_redux

Adding on features to the Twitter Client

Primary LanguageObjective-C

Project 4 - Chitter Redux

Time spent: 23 hours spent in total

User Stories

The following required functionality is completed:

  • 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.
    • The menu can look similar to the example or feel free to take liberty with the UI.
  • Profile page
    • Contains the user header view
    • Contains a section with the users basic stats: # tweets, # following, # followers
  • Home Timeline
    • Tapping on a user image should bring up that user's profile page

The following optional features are implemented:

  • Profile Page
    • Implement the paging view for the user description.
    • As the paging view moves, increase the opacity of the background screen. See the actual Twitter app for this effect
    • Pulling down the profile page should blur and resize the header image.
  • Account switching
    • Long press on tab bar 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

The following additional features are implemented:

  • Use of UIWebview based controller to enable the app to clean up web cookies related to Oauth tokens so that the user can have a clean logout and login experience
  • Once user switches accounts, the home timeline and Mentions screens will correctly show the autenticated user's timeline and mentions.
  • The menu has an additional 'Logout' and 'About' section
  • Added a hamburger icon, which when tapped will toggle the reveal of the hamburger menu.
  • In the accounts view, if the current account is deleted the user will be switched to the next available account. If there are no other accounts available then the user will be logged out after a prompt.

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthrough

GIF created with LiceCap.

License

Copyright 2017 Akshay Bhandary

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.