Git Product home page Git Product logo

cineaste-ios's People

Contributors

christiannorbertbraun avatar dependabot[bot] avatar fbernutz avatar marcelgross90 avatar wtimme avatar xavierlowmiller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cineaste-ios's Issues

Fix encoding/decoding issue of movies

It's an issue about using different style of keyDecodingStrategies and having different formatters for Dates.

  • This affects two tests in MovieTests.swift.
  • This also is visible when refreshing movies with pull-to-refresh and the release date is then Date.distantFuture.

Filter Movies by Genre

Is your feature request related to a problem? Please describe.
Most people want to search for specific genres, like Horror or Comedy, etc.

Describe the solution you'd like

Display the genre of a movie:

  • in MovieDetail
  • in SearchCell

Add an option to add a filter for a genre in the search list.

Slide hint not visible when opening "Add movie" for the very first time

Describe the bug
The very first time the user opens "Add movie", the hint for the table view cell's slide action is not visible. Only after closing and opening the screen for a second time, the hint is visible.

To Reproduce

  1. Remove the app from the device (to reset UserDefaults)
  2. Install and start the app
  3. On the first screen, tap "Add movie"
  4. Wait until the "trending" movies are displayed

Closely watch the first cell.

Expected behavior
The "slide action" hint is visible.

Observed behaviour:
The "slide action" hint is not visible.

Smartphone (please complete the following information):

  • Device: iPhone X Simulator
  • iOS: 11.0.1
  • App-Version: 1.10.0 (452)

Additional context
I encountered the bug while testing #104.

Run automated tests for all supported iOS versions (iOS 10, iOS 11 and iOS 12)

It would be nice to run automated tests on CI for all supported iOS versions.
This would be one simple change in the Fastfile:

 lane :test do
   run_tests(
-    device: "iPhone 7",
+    devices: ["iPhone 7 (10.0)", "iPhone 7 (11.4)", "iPhone 7"],
     scheme: "Testing",
     code_coverage: true
   )

Sadly there are some problems.

Run tests locally in Xcode:

  1. Locally in Xcode - iOS 10: ❌there is an error "No such module 'Cineaste_App'" on every test file on @testable import Cineaste_App
  2. Locally in Xcode - iOS 11: ❌Test failed
  3. Locally in Xcode - iOS 12: ✅

Run tests with fastlane test:

  1. Fastlane - iOS 10: ❌no such module 'Cineaste_App'
  2. Fastlane - iOS 11: ❌Cineaste App.app (36013) encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted. (Underlying error: Test runner exited before starting test execution.))
  3. Fastlane - iOS 12: ✅

Wrong count in MovieNight

Describe the bug
When two persons want to watch the same movies, in the cell "All Together" is displayed the sum of the number of movies from both persons. But we have to check if they are the same movies.

To Reproduce
Steps to reproduce the behavior:

  1. Start Movie Night
  2. Use tripple tap in DEBUG to show some "nearby friends"
  3. The cell "All Together" displays 6 movies
  4. Tap on the cell
  5. In the detail there are 4 movies displayed

Expected behavior
The cell "All Together" should only show 3 movies.
The detail view should only show 3 movies.

Screenshots

Movie Night Movie Match
Simulator Screen Shot - iPhone 8 - 2019-11-29 at 22 33 02 Simulator Screen Shot - iPhone 8 - 2019-11-29 at 22 37 52

|

Addition Context

There is a comment in code where this issue should be fixed.

Movie added to Watchlist misses runtime

Describe the bug
After adding a movie to watchlist, it misses some information as runtime (this is displayed in the UI, so we can see it's missing).

To Reproduce
Steps to reproduce the behavior:

  1. Go to Search
  2. Click on a movie and add it to watchlist
  3. Go to watchlist and see information of runtime is missing

Expected behavior
All information are loaded from the internet when adding the movie to watchlist (or history)

Additional context
After using pull-to-refresh on watchlist, all missing information (for movie detail) are loaded and displayed.

Improvement: Restore old database when import failed

Handle the use case that something failed when importing new movies.
Distinguish between if only some movies could not be imported or all movies could not be imported.

  1. only some movies could not be imported: display an alert with how many could be imported and how many failed? (better solutions are welcome)
  2. all movies could not be imported: restore old database (if there were movies saved before)

Idea: Use Transaction or Rollback for import (NSManagedObjectContext documentation)

Add support for TV Shows

Is your feature request related to a problem? Please describe.
The app is great so far, thanks a lot! It helps me get rid of a (not-very pretty) list I kept in Notes.app.
Another list that I have is the one with the TV shows I plan on watching. I would like to be able to add them to the app.

Describe the solution you'd like
I want to be able to search for TV Shows and track them, similar to movies. When I tap the "+" button, I should be able to search for TV Shows.
Visually, the app could present a segmented control with the options "Movie" and "TV Show".
The information displayed for TV Shows could initially be the same as for movies.

Documentation

Use Swift Package Manager instead of CocoaPods

Tasks

  • Update README.md on how to build the app
  • Update .gitignore
  • What to do with swiftlint? (Maybe use a precommit hook with Komondor, see this as example)
  • Update GithubAction Workflow (no need to install Pods anymore but resolve Packages?)
  • Update update-dependencies.sh
  • How to update License in App and Settings of App? This is generated by CocoaPods right now.

Not insert every movie with init from decoder

We need to find a way to not always insert a movie from an import. When a movie already exists, we have to update the movie. Having StoredMovie as NSManagedObject and Codable together is a problem here :S (But at least it somehow doesn't end in a weird behaviour for the user, the imported movie is not shown twice)

This has something to do with this line of code self.init(entity: entity, insertInto: context).

There is a test for this, which is at the moment disabled, because it is red. ImporterTests.disabledtestImportMoviesFromUrlShouldUpdateMovie()

Status bar color turns black when tapping "Search" keyboard key

Describe the bug
On the "Add movie" screen, the status bar (clock, battery indicator, etc.) turns black ("default" style) when tapping the "Search" keyboard key.

To Reproduce
Steps to reproduce the behavior:

  1. Tap the "+" icon in the top-right corner
  2. Tap on the search field. This should make the keyboard appear
  3. Enter at least one character
  4. On the keyboard, tap the "Search" key and wait for 1-2 seconds

Observed behavior
The status bar's color turns black.

Expected behavior
The status bar's color should remain white.

Screenshots
IMG_FCD59B45C269-1

Smartphone:

  • Device: iPhone X
  • iOS: 12.3.1
  • App-Version: 1.10.0 (452)

[Meta] Add Accessibility to the GitHub issue template for features

Is your feature request related to a problem? Please describe.
The GitHub for creating new features helps me to clearly communicate my thoughts about a new feature. In my opinion, the template is lacking an "Accessibility* section.

Having such a section would help me to keep Accessibility in mind when writing a new issue.

Describe the solution you'd like
Modify the GitHub issue template for feature requests and add a section before "Additional context":

**Accessibility**
Is there anything we need to keep in mind in terms of having an accessible UI?
(For example, do we need to specify `accessibilityLabel`s or `accessibilityValue`s?

Describe alternatives you've considered
We could also put this into the README as part of our "coding guidelines". For me, however, it helps to follow this template when creating new issues.

Handle TMDB rate limit

Is your feature request related to a problem? Please describe.
A user with 40 or more movies could exhaust the rate limit when refreshing movies.

Describe the solution you'd like
The requests are cached using the ETag system, which is great news for the user's data plan, but apparently, the cache hits still count against the rate limit. A possible solution can be to create a queue for requests and call them after some seconds.

Additional context
More information about rate limit.

Post Notification when Movie from Watchlist is released

Implement with scheduled local notifications.

  1. When a user adds a not yet released movie to the watchlist:
    Schedule one local notification for 10h on the release date "{Title of movie} is released today!"
  2. When a user removes the movie from the watchlist:
    Delete the local notification again

For more information about how this should work:
https://developer.apple.com/documentation/usernotifications/scheduling_a_notification_locally_from_your_app

Slide hint is animating in the second instead of the first cell when searching

Describe the bug
When searching for a movie and reviewing the details for search results, the "slide" hint is animated in the second cell, not the first one.

To Reproduce

  1. Start the app
  2. Tap on the "+" button
  3. Tap on the search bar and enter at least one character, e. g. "f"
  4. Wait for the search results to load, and make sure it's more than two
  5. Tap on the first result
  6. Use the navigation bar to get back to the list

Closely watch the first two cells.

Expected behavior
The "slide action" hint is visible on the first cell.

Observed behaviour:
The "slide action" hint is visible on the second cell.

Screenshots
slide-hint-on-second-cell

Smartphone (please complete the following information):

  • Device: iPhone X Simulator
  • iOS: 11.0.1
  • App-Version: 1.10.0 (452)

Feature Request: Show List of Streaming Providers in Movie Detail

Is your feature request related to a problem? Please describe.
In these days of the pandemic, going to the cinema happens rarely. I want to continue watching already older movies from my watchlist at home but I need to know on which streaming provider the movie is available.

Describe the solution you'd like
The TMDB API has a "new" API to get a list of streaming providers. A list of icons or at least the names of the providers should be displayed in the movie detail view.

Additional context

☝️ In order to use this data you must attribute the source of the data as JustWatch.

MovieDetail lacks information until everything is loaded

Describe the bug
When searching for a movie with semi good internet connection, you see nothing when tapping on a movie in the movie details. You have to wait until everything is loaded even though you see poster, title and some other information in the search.

To Reproduce
Steps to reproduce the behavior:

  1. Open Search
  2. Click on a movie (with bad internet connection)
  3. You see placeholder elements
  4. Wait a few seconds, you see the movie details

Expected behavior
At least the information from the search should be displayed in the movie detail. Otherwise a loading indicator would make it obvious for the user, that information have to be loaded.

Navigation bar dissappears after searching and navigating to movie detail

What happens

After searching movies and touching one cell to navigate to the detail page, the navbar is gone.

What should happen

The navigation bar should always be present to navigate back.

Other weird behavior

After touching one of the buttons want to see or seen the navigation bar reappears.

How to reproduce

  1. Click the plus button
  2. Search for any movie
  3. Touch one of the displayed cells

Wrong Background Color of MovieCell in Landscape Mode

Describe the bug
When using the app in landscape mode, tapping on movies in lists will result in a layout but. The background ha no clear color anymore but is white.

To Reproduce
Steps to reproduce the behavior:

  1. Add a movie to watchlist or history
  2. Navigate to the list
  3. Long tap on the movie
  4. See error

Expected behavior
The background of the cell should not change its background color to white.

Screenshots

Simulator Screen Shot - iPhone 11 Pro - 2020-12-24 at 13 39 23

Smartphone (please complete the following information):

  • Device: e.g. iPhone 11 Pro
  • iOS: min. iOS 14
  • App-Version: 1.24.1

Additional context
This layout bug is iOS 14 only.

Maybe these articles are helpful:

Show Feedback when a movie is added to a list or removed from a list.

Is your feature request related to a problem? Please describe.
Sometimes it's not clear enough what happens when you add a movie to your watchlist or if you removed it.

Describe the solution you'd like
Show a temporary information view about what happened. It should hide itself again after some moments.

Additional context
As a reference, I would try a similar solution like Spotify.

spotify

Display correct ContextMenu Actions for MovieMatchVC

Describe the bug
When you are in a movie night and use contextual menu actions on a movie in MovieMatch, there are the wrong context menu actions displayed.

To Reproduce
Steps to reproduce the behavior:

  1. Start Movie Night
  2. Click on "All Together"
  3. Use long tap on a movie (a movie you have on watchlist)
  4. Wrong actions are displayed

Expected behavior
When the movie is on watchlist, I want to see "Delete from list" as action and not "Add to Watchlist"

Screenshots

Preview
Simulator Screen Shot - iPhone 8 - 2019-11-29 at 22 28 21

Additional context
There is a comment in the code where this bug should be fixed

Manually change seen date

Is your feature request related to a problem? Please describe.
Sometimes you don't mark a movie as seen directly after you've seen the movie.

Describe the solution you'd like
Implement an option to change the date.

Add High Contrast Mode

At the moment, the app uses Color Assets with custom colors for light and dark mode. We have to activate the checkmark for "High Contrast" and add updated colors for high contrast. Currently activating High Contrast doesn't change anything.
For more information, see the documentation.

With this setting, you should check your text has around 7:1 contrast ratio with your background.

Fix Colors for SegmentedControl with Dynamic Type

Describe the bug
When using the app with dynamic type, the colors of the preview of the segmented controls are not readable (white font on white background).

To Reproduce
Steps to reproduce the behavior:

  1. Use Accessibility Large Font
  2. Open Movie Detail
  3. Select "On Watchlist" or "Already Seen"
  4. Long Tap on Segmented Control
  5. See Bug

Expected behavior
The Segmented Control is readable

Screenshots

Light Mode Dark Mode (is fine)
Simulator Screen Shot - iPhone 11 Pro - 2019-11-02 at 21 21 22 Simulator Screen Shot - iPhone 11 Pro - 2019-11-02 at 21 21 37

Smartphone:

  • Device: all iPhones
  • iOS: iOS 13.2
  • App-Version: 1.13.1

Add iOS 13 Contextual Menus for shortcut actions

Since iOS 13 Peek & Pop is deprecated and on devices without 3D Touch the shortcut actions are not available anymore. Add Contextual Menus.

UIContextMenuInteraction
     •    Rich previews
     •    Complex hierarchies (nested sub-menus, in-line sections)
Consistent gestures, based on device capabilities:
     •    3D Touch
     •    Haptic Touch
     •    Long press
     •    Secondary click
UIMenu and UIAction
     •    Hierarchical menu construction system
     •    UIMenu are composable
// Create a UIContextMenuInteraction with Some Delegate
let interaction = UIContextMenuInteraction(delegate: self)

// Attach It to Our View
menuSourceView.addInteraction(interaction)
UIContextMenuInteractionDelegate
     •    One required method
     •    Return a UIContextMenuConfiguration to start
     •    Return nil to prevent interaction
func contextMenuInteraction(_ interaction: UIContextMenuInteraction, configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration?
let actionProvider = (suggestedActions: [UIMenuElement]) -> UIMenu? {
  let editMenu = UIMenu(title: "Edit...", children: [
    UIAction(title: "Copy") { ... },
    UIAction(title: "Duplicate") { ... }
  ])

  return UIMenu(children: [
    UIAction(title: "Share") { ... },
    editMenu,
    UIAction(title: "Delete", style: .destructive) { ... }
  ])
}

return UIContextMenuConfiguration(identifier: "unique-ID" as NSCopying, previewProvider: nil, actionProvider: actionProvider)
UITableView and UICollectionView
// UITableViewDelegate
optional func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAtIndexPath indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration?
     •    Deprecates Peek and Pop
     •    Replace long-press driven menus
     •    Adopt it alongside Drag and Drop

Use ReSwift in MovieMatchVC

At the moment the controller gets its models from the configure(with userName: String, messagesToMatch: [NearbyMessage]) function.

Broken layout of Action Button with dynamic type

Describe the bug
Broken layout for ActionButton when using dynamic type.

To Reproduce
Steps to reproduce the behavior:

  1. Enable Large Text on your iPhone.
  2. Activate a large system font.
  3. Comment out the code, related to this issue.
  4. Go to MovieDetail
  5. See broken layout in the action buttons

Expected behavior
Have a beautiful design, even with a large system font.

Screenshots
Screenshot 2019-03-24 at 19 32 41

Automatically show keyboard when tapping "+"

Is your feature request related to a problem? Please describe.
For me, the most common usecase of "Add movie" is when I get a recommendation from a friend, and they usually tell me the title (or parts of it). When I then want to search for it, I need to tap two times before I can actually enter text.

Describe the solution you'd like
When I tap the "+" button in the top right corner and the "Add movie" screen becomes visible, the search bar should automatically be focused, with the keyboard visible, so that I can start typing.

Describe alternatives you've considered
People might want to use the "popular" movies and are not interested in searching, so they might be annoyed by the proposed behaviour. We could configure the keyboard so that it is dismissed when the user scrolls, removing the need to tap "Cancel".

Only show "slide" hint on "Add Movie" screen only once

Is your feature request related to a problem? Please describe.
Whenever I enter the "Add Movie" screen, the first table view cell is animated as some kind of "hint" to remind me that the cell has available actions. This helped me the first time I interacted with the app and I like it, however, now that I know this gesture exists, I would like this animation to no longer appear.

Describe the solution you'd like
The app should understand that the user is capable of learning, and should only show this hint a couple of times (e. g. only once or twice).

Describe alternatives you've considered
The app could also show this hint until the gesture/actions were used. I feel like this "forces" the user to make use of these actions, and would therefore recommend against this approach.

Rethink "Seen on [date]" in list of seen movies

Is your feature request related to a problem? Please describe.
When I start using the app, I want to put movies that I have already seen on the (empty) "History" list. After adding a movie, the list says "Seen on [current date]". This is not correct - I have only marked it as seen at that date.

seen

(I've seen this movie a couple of years back - not just some minutes ago.)

Describe the solution you'd like
For the MVP, I propose we rephrase this to "Added on [current date]".

Describe alternatives you've considered
I might not be getting the purpose of this "History" screen.

Additional context
Personally, I initially thought of this as a list of movies that I watched and can recommend. Especially since the "call to action" in the empty state is worded like this:

You don't have any movies you have already seen on this list.
Go ahead and add a new movie.

As a new user, this sounds like I could have a collection of movie recommendations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.