spacepandas / cineaste-ios Goto Github PK
View Code? Open in Web Editor NEWAn iOS application to manage movies you would like to see and movies you have seen.
License: Apache License 2.0
An iOS application to manage movies you would like to see and movies you have seen.
License: Apache License 2.0
It's an issue about using different style of keyDecodingStrategies and having different formatters for Dates.
MovieTests.swift
.Date.distantFuture
.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:
Add an option to add a filter for a genre in the search list.
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
UserDefaults
)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):
Additional context
I encountered the bug while testing #104.
Design themes
There are two disabled SnapshotTests in MoviesViewControllerSnapshotTests.swift
which have a problem with updating the empty state on main thread.
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.
@testable import Cineaste_App
Test failed
fastlane test
:no such module 'Cineaste_App'
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.))
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:
Expected behavior
The cell "All Together" should only show 3 movies.
The detail view should only show 3 movies.
Screenshots
Movie Night | Movie Match |
---|---|
|
Addition Context
There is a comment in code where this issue should be fixed.
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:
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.
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.
Idea: Use Transaction
or Rollback
for import (NSManagedObjectContext documentation)
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
Implement nearby feature:
functionality to start a movie night with Nearby from Google (documentation)
README.md
on how to build the app.gitignore
swiftlint
? (Maybe use a precommit hook with Komondor
, see this as example)update-dependencies.sh
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()
UINotificationFeedbackGenerator
)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:
Observed behavior
The status bar's color turns black.
Expected behavior
The status bar's color should remain white.
Smartphone:
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.
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.
Home screen quick actions on the appIcon to start a movie night (Home Screen Quick Actions - Developer)
Implement with scheduled local notifications.
For more information about how this should work:
https://developer.apple.com/documentation/usernotifications/scheduling_a_notification_locally_from_your_app
Both lists: Add filter or sorting options, like alphabetic sorting, release date or manual sorting (saved in database).
Watched List: Sorting options for "watched date"
Automatically sync your movie lists to iCloud, so you can use Cineaste App with more iOS devices.
3D-Touch to peek and pop the detail view of a movie (3D Touch - Developer)
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
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.
Smartphone (please complete the following information):
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.
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:
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.
Change buttons for "move to watch or watched list" action in the detail view of watch and watched list.
SeenMovieCell
After searching movies and touching one cell to navigate to the detail page, the navbar is gone.
The navigation bar should always be present to navigate back.
After touching one of the buttons want to see
or seen
the navigation bar reappears.
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:
Expected behavior
The background of the cell should not change its background color to white.
Screenshots
Smartphone (please complete the following information):
Additional context
This layout bug is iOS 14 only.
Maybe these articles are helpful:
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.
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:
Expected behavior
When the movie is on watchlist, I want to see "Delete from list" as action and not "Add to Watchlist"
Screenshots
Preview |
---|
Additional context
There is a comment in the code where this bug should be fixed
Maybe we can also reduce some complexity in the SearchMoviesVC
with this.
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.
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.
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:
Expected behavior
The Segmented Control is readable
Screenshots
Light Mode | Dark Mode (is fine) |
---|---|
Smartphone:
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
At the moment the controller gets its models from the configure(with userName: String, messagesToMatch: [NearbyMessage])
function.
Describe the bug
Broken layout for ActionButton
when using dynamic type.
To Reproduce
Steps to reproduce the behavior:
MovieDetail
Expected behavior
Have a beautiful design, even with a large system font.
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".
It is common in iOS to undo a recent change with a shake gesture. This could be really useful, when the user wants to undo some actions like moving or deleting a movie.
some information:
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.
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.
(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.
Like e.g.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.