Flickster is an app that allows users to browse movies from the The Movie Database API.
- (5pts) User can tap a cell to see more details about a particular movie.
- (5pts) User can tap a tab bar button to view a grid layout of Movie Posters using a CollectionView.
- (2pts) User can tap a poster in the collection view to see a detail screen of that movie.
- (2pts) In the detail view, when the user taps the poster, a new screen is presented modally where they can view the trailer.
Describe any challenges encountered while building the app.
- (2pts) User sees an app icon on the home screen and a styled launch screen.
- (5pts) User can view and scroll through a list of movies now playing in theaters.
- (3pts) User can view the movie poster image for each movie.
- (2pt) User can view the app on various device sizes and orientations.
- (1pt) Run your app on a real device.
- IOS Swift Storyboard == Android XML
- a bit more better integrated, Android requires a bit more manual calling of scenes whereas a storyboard can contain multiple/different scenes
- swift == java
- Cocoa touch class for creating a view controller
- Add images by drag and drop into the opened Assets folder
- Launch screen is essentially a static display, can't link w/ code
- Use UITableView
- Adopt a strict approach when following and using the code when practicing/learning the basics
- IMPORTANT: configure project to use Storyboard as the main UI
- ensure DEBUG is disabled ie ensure breakpoints are turned off b/c the DEBUG mode is not the usual intelliji UI
- Outlets are similar to Android's view.findSomeViewVar(R.id.someViewVariable)
- Swift requires casting of objects -- to what extent? does it only apply to strings, UDTs? what about integers, floats, doubles
Pod Notes:
- Usage of pods require opening the xcode project file from the <proj_name>.xcworkspace file instead of the <proj_name>.xcodeproj
- Initialize the pod
pod init
- Installing external dependencies
pod install
- Remove all traces of pods
- Install tool for removing all traces of pods
sudo gem install cocoapods-deintegrate
- Run command in project
pod deintegrate
Creating a table viewer(Design):
- Select [+] from top right
- Select table view and resize appropriately
- Do ctrl + drag on table view to the associated controller code
Creating a table viewer(Code):
- inherit from the necessary classes: UIViewController, UITableViewDataSource, UITableViewDelegate
- Implement the required funcs as a result of inheritance
- Implement client fetching of data within the controller viewDidLoad
- Call reloading of the TableView member variable after the client completes data fetching
Debugging Reminders:
- utilize print statements to be called within each func -- "sprinkling breadcrumbs"
- "key-compliant" error due to outlet