CodePath Week 4 Assignment: Tweeter Redux. This builds on the original Tweeter app by adding new features, developed in Swift.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Pods
Tweeter.xcodeproj
Tweeter.xcworkspace
Tweeter
.gitignore
Podfile
Podfile.lock
README.md

README.md

Project 4 - Tweeter Redux

Time spent: 21.5 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
    • Shows the users timeline
  • 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:

  • Tap gesture recognizer "outside" of presented modal to dismiss it
  • Customized navigation bar colors and hamburger menu
  • Added more animations
  • Tap to open and dismiss hamburger menu (not just swipe gestures)

Please list two areas of the assignment you'd like to discuss further with your peers during the next class (examples include better ways to implement something, how to extend your app in certain ways, etc):

  1. Better ways to implement controller layer between model and view so as to use the same view with multiple models.
  2. Way to implement multiple account authentication and switching for OAuth

Video Walkthrough

Here's a walkthrough of implemented user stories:

Tweeter Redux Video Walkthrough

Add Account Video Walkthrough

GIF created with LiceCap.

Notes

  • Faced some challenges implementing the controller layer between model and view so as to use the same view with multiple models. Initially, just implemented the home timeline and mentions timeline with duplicate files before cleaning them up.
  • Some challenges with what I thought were UI navigation bugs when using the hamburger menu in lieu of the tab bar or nav bar (i.e., built-in iOS functionality); but it ended up being logical errors in how the data was being presented in the code
  • Some difficulties implementing gesture recognizers on certain types of views (e.g., UIButton). I expect the gesture recognizers I attempted to add were a lesser priority than the built-in gesture recognizers for these views.
  • There's more duplicate logic and code here than I'd like due to time pressures to complete the assignment tasks which should be cleaned up.
  • Many issues faced with adding a new account (implemented), then tapping to select an account and expect the app to refresh (not implemented).

Icons

License

Copyright 2016 Bianca Curutan

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.