Giter Club home page Giter Club logo

ios-team's Issues

Recruitment efforts

Please provide your rankings of candidates by 8pm Sunday. You can find them in "Recruitment" on Google Drive. Start with the README file. Email [email protected] if you have any questions.

Unable to insert message after search (on branch search)

Message inserted after hitting and dismissing the search bar would not be shown in the table view.
However, if you quit the app and then reopen it, the message would be in the table view.

Cause:

func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?)

is not called after hitting and dismissing the search bar. Not sure why this happens though

Hashtagging related issues

Objective:

  • Enable tagging by hashtags. To be more specific
    • Show hashtags in popularity order in TableView when the search bar is active and empty
    • Search the tag automatically when the tag is tapped

Currently, the following two methods related to hashtagging are completed right now.

  • Given a string, extract and return a list of tags
  • Retrieve all messages from Core Data and return a mapping from tags to countTags (the number of times a tag occured in all messages)

Problem:

  • The AnonymouseTableViewController and AnonymouseTableViewCell classes are integrated closely with the NSManagedObject class AnonymouseMessageCore and AnonymouseMessage and thus unable to show data types (e.g. popular hash tags)

Toolbar gets covered by UIKeyboard

When a user taps the textfield inside of the toolbar at the bottom of the screen, the keyboard appears
and covers the toolbar. We need the toolbar to stay on top of the keyboard as it appears, and stay at the bottom of the screen if the keyboard is not present.

Background Execution

I have found some ways to let the app continue to execute while in the background (apparently the default is to kill the app and reallocate all of its memory back to the phone), and it seems relatively simple. The info.plist must be changed (slightly), and I am not sure how to specify which methods should execute while in the background.

Here are a couple of links for it:
http://stackoverflow.com/questions/30426117/running-ios-application-in-the-background-new-developer

https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

I can try to edit and test it tomorrow afternoon at the Dude or BBB, but I figure the solution might be simple enough that if someone has the free time, they can check what exactly happens when that line is added tonight.

Adoption of Model-View-Controller Design Pattern

Since the project is getting larger and larger, we need a method to neatly modularize the project.
The project is currently roughly divided into files according to UIView(Controller)s and functions, which was fine, but as more UI definitions are added, it might be a better choice to split View and ViewControllers

Official Documentation: https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html
Other:
https://www.raywenderlich.com/86477/introducing-ios-design-patterns-in-swift-part-1

Extra space under search bar after dismissed

The table view looks like this before searching
wechatimg4

Once search bar is tapped, it looks like this (see that white space under the search bar)
wechatimg1

When the search bar is dismissed, the table view looks like this.
wechatimg2

I find that the extra space is not related to setting like

self.automaticallyAdjustsScrollViewInsets = falseself.automaticallyAdjustsScrollViewInsets = false

, which made no change, or setting like

self.moduleListTableView.contentInset = UIEdgeInsetsMake(-32, 0, 0, 0);

, which moved the whole tableview up by 32 BEFORE tapping search, but the tableview would look exactly like pic 3 after dismissing the search bar.

Display error after "Delete all messages"

Once "Delete all messages", the next message would not be displayed properly. (Seems that the the new message and the deleted messages shows in the same table cell.)

Module compiled with Swift 3.0 cannot be imported in Swift 3.0.1

After updating xcode to version Version 8.1 (8B62), the compiler complains at the import CryptoSwift that "Module compiled with Swift 3.0 cannot be imported in Swift 3.0.1".

I tried recompiling CryptoSwift and updating submodule, but neither of them worked.

Filter messages by rating

If a message has a rating of less than a certain cap, it should not be sent to the to other users. Furthermore, it should be deleted from the user's phone if they are the person who pushes it below the cap.

The textField needs to line wrap + toolbar's height needs to expand

Currently, the textField in the toolbar doesn't line wrap. Instead, adding more text than the textField can handle makes the text scroll forward. The textfield instead needs to grow in height and line wrap whenever excess text is added. The toolbar's size should expand correspondingly. This functionality is implemented in the default iOS messages app.

Stretch Goals

  • Add rating system to the app, so that users are able to rate messages. Have messages that are below a rating threshold die out in the network. Have messages that are highly rated have higher priority in the network. Design a chatboard that has highest-rated messages first.
  • Add a tagging/categorization system to the app (e.g. Local Events, Security/Safety Posts, Personal Blog etc.). Have users able to search through categories or tags of messages. Have distinct chatboards for major categories. Have users be able to "follow" specific chatboards and ignore others.
  • Add a friend/buddy system. Add a chatboard specifically for messages that were sent from friends. Add authentication algorithm to ensure that people who claim to be friends are actually friends. Add notifications for when friends are close-by.
  • Add support for additional media. Redesign the communication protocol to support additional media by opening a channel between phones through Multipeer Connectivity and then sending the media over the channel, as opposed to doing a signal bypass through Multipeer Connectivity. Add an option to ignore non-text media.
  • Add a settings pane. Allow users to customize their broadcast/network settings.
  • Add support for an infrastructure back-end. Design a web-server through which to route messages normally, and then bolster this with an ad-hoc network when desired/when services are unavailable. Have users able to receive both local and cloud messages based on settings. Integrate direct message/"friending" capabilities. Support media uploads.

User Interface

Title says it all. This project needs a functional user interface.
That includes, at the very least:

  • A way to view/edit one's profile
  • A tabular interface for viewing the list of local messages

Stretch goals include:

  • A way to favorite messages and view favorited messages
  • Different views for different types of messages (e.g. sorted by best rated, by post time, etc.)
  • A tagging system to tag messages by, and then view categories of messages
  • Automated message boards for local events

Factor messageHashes out of RoarTableViewController

Currently, the message hashes are stored in a property of RoarTableViewController, which is clunky and is leading to an error where invisible message hashes exist after the table is cleared.

This property needs to be removed and the hashes need to be stored in the data model.

Priority list of issues

1.) Number of likes go out of control

2.) Clicking like twice unlikes. Clicking unlike results in -2 if starting from liked state. Determine whether “-1 : +1” or “-1 if 0, +2 if -1 : +1 if 0, -2 if 1” is more intuitive.

3.) Each one of Sharon, Dodolo and Jackie has one comment of others that didn’t deliver (Comments delivery are inconsistent)

4.) @ is confusing when commenting. Is directing to whoever wrote the post or whoever is commenting

5.) In a long post containing emojis, can only see first line even if I click on the post. Does this wrap without spaces?

6.) Can only update username once per week. Why this design decision?

7.) Messages reappeared after confirmed deletion of all messages]

8.) Messages reappeared after restart after confirmed deletion of all messages (unless deleted simultaneously)

9.) Comments randomly disappear in “Most Recent” but still visible in “Favorites”.

10.) When you try to write a post, “Edit” wasn’t noticeable

11.) When I try to write comments, clicking the post was not intuitive (Fb style)

12.) Bugs with SearchViewController which, after resumed, cannot resize the UITableView for new messages

13.) All the content went blank and the content is in the title

14.) Bugs with SearchViewController which, after resumed, cannot resize the UITableView for new messages

15.) Others receive messages even when my phone is in stop broadcasting mode.

16.) Doesn’t support landscape mode.

17.) When WiFi is off and BT is on, messages are inconsistently received.

18.) No indicator for number of replies in the main screen

19.) No optimization for allowing pagination

20.) After posting many spaces, didn’t see own message.

21.) If contents are long, it went over the box

22.) On iPad, I wasn’t able to see what I wrote on profile section

23.) Poor performance in bluetooth only mode

24.) “Here be you” in configuration page for profile is unhelpful and not English.

Persistent Storage

I need a dedicated iOS developer to fully understand how Core Data works.

That individual then needs to review how it is used in this app, and perform tests to validate that it
works correctly in all environments.

If flaws are found with the current storage methods, or if improvements need to be made,
then they should be merged in with the current master as soon as possible.

Finish favoring feature

  1. a separate bar between favorite button and downvote button
  2. add a page listing all the favorited messages
  3. show messages favorited on the favorite page

Cap stored number of messages

Currently, a user can receive an arbitrary number of messages. We need to cap that at a hard-coded number, say 1000.

Test the app on different models of iPhones (iPads)

The layout sometimes looks different on different devices, need to test it on different devices and fix potential bugs.
This are small errors so far when I tried the app on iPhone5:
Message go out of the cell:
screen shot 2016-11-10 at 5 43 54 pm

Message overlap with the count:
screen shot 2016-11-10 at 5 44 13 pm

Return Key doesn't send messages

When the send button is pressed, the app correctly sends a message. However, when the return key is pressed, the same thing should happen. Currently, nothing happens when the return key is pressed.
Implement the same action that the send button activates when the return key is pressed.

Persistent Storage -- Encryption before saving

  • Check Objective-C syntax and the difference from Swift
  • Enable calling Objective-C function from Swift
  • Install the submodule encrypted-core-data in the current repo and write it a note
  • Enable encryption of .sqlite file before saving

The addMessage method in MCChatTableViewController needs to be animated

Currently, when a message is added to the MCChatTableViewController, it appears on the tableView without animation. This should have a more visually pleasing animation, like the one that the standard iOS Messages app uses. I'm not sure how this can be done, but whoever tackles this problem needs to look into how the Messages app does its send/receive animations.

Backend is not linked to the front end

We have a "back-end" implemented in the MCTests app, and a "front-end"
implemented in the MCConnect. We need to implement the back-end message sending and receiving
into the MCConnect app. The MCConnect app should be constantly browsing for new messages, and constantly be advertising the most recent sent message.

Connection Protocols

Someone needs to review and understand how this project sends messages across phones, and perform tests to verify that the protocols currently in-place work in all circumstances.

If flaws in the protocol are found, or if improvements can be added, they should be merged into
the project as soon as possible.

App currently does not save messages across closing

Currently, if you close the app and then open it again, you'll notice that all of the messages from the previous session have been erased. We need the app to be able to remember things after it has been closed. This is called "Persistent Storage" or "Persist Data" in swift terms. Look this up and figure out how to save messages after the app has been closed.

Text display bug in compose view

Sometimes my input text doesn't show up on the compose view screen. This bug happened in my and Sindy's phones during test. Still trying to figure out when this bug happens and how to solve it.

img3

Design Style Guidelines

To keep the design consistent throughout the app, it would be beneficial to have a document that details our style guideline for design. This would include aspects such as color scheme, layout of views, types of views, standardized icons and standardized view transitions and animations.

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.