Project 4 - Tweeter Redux
Time spent: 21.5 hours spent in total
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):
- Better ways to implement controller layer between model and view so as to use the same view with multiple models.
- Way to implement multiple account authentication and switching for OAuth
Here's a walkthrough of implemented user stories:
GIF created with LiceCap.
- 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 made by Elegant Themes from Flaticon
- Icons made by Icon Works from Flaticon
- Icons made by ionicons from ICONFINDER
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.