Git Product home page Git Product logo

onemyday_mobile's People

Contributors

dmitry-solomadin avatar promis avatar

Watchers

 avatar  avatar

onemyday_mobile's Issues

Story View. Add like button

Story view should have a like button. Button will be located after the story and before comments. If user already liked the story, button will have another text: "Liked".

Login. Add spinning wheel

When user clicks on login button it takes some time to actually login. Let's add a spinning wheel somewhere(above login button?) indicating that application is working.

User Profile. Implement top block.

Implement top block.

This block includes user name, user avatar, number of stories, number of followers, number of users who follow current user and edit button (currently inactive).

To get user info use following url: /users/<user_id>.json look at the json queries spec.

Look at the page at moqups for better understanding.

Loading stories from the bottom needs animation.

After you fixed the size of the empty space the issue is much less noticeable but still we need an animation instead of just removing the wheel. Look how it is done visually in pull to refresh plugin — they animate the height of the uiview till it becomes 0 and then remove it.

Start View. Hide the status bar

We don't need the status bar for the start view, it should appear only on subsequent views such as LoginView. Lets hide it (there was a code in app that hid the status bar I googled it and found on stackoverflow, it is weird but it works).

When the user scrolls to the bottom we should load more stories.

When the user scrolls to the bottom we should load more stories. The loading should start where there is 400-500px to the actual bottom is still left.

Probably you should compare stories by id and get 10 stories that has id lower then the minimum id of all our stories. Ask me how to do this correctly.

Strage bug with async story loading.

Right after application start new stories begin to load asynchronously, if the user taps on a story to see it's content while the loading is still in progress he will see a blank screen.

Login. Cache login status

When user logs in via email/password login we should cache this user locally.

For this we should save user id and name(?) in iphone local storage.

Ask me how to do this.

Home View. Enhance story cover photo.

Home View. Enhance story cover photo. It should have iphone2x_thumb photo dimensions, white 5px white border around it, remove furley_bg, add some other bg.

Story View. Add comment form

Story view should have simple forь that will contain text field(not text area) with submit button, which will add comment.

Form will be located at the bottom of the story view.

Please, see the request for creating the comment at the queries specification.

Finish Feed View

There are number of things that needs to be done:

  1. Show author name besides author avatar.
  2. Show how long ago story was created at the right side of the avatar.
  3. Create bottom half-transparent rectangle that will show story title in first line and number of views/likes/comments in the second one.

Story Editor. Add ability to add text to a story.

When user clicks on text button, a new view should slide in with text area and a keyboard. View should have cancel and done buttons at it's nav bar. When user clicks done a new text should appear in story editor view

Login. Implement sign up page.

Implement sign up with email page. User photo should use default iphone library/take photo controller.

See the post url on json queries specification.

Look on for page on moqups for better understanding.

Story View. Delete comments

Add ability to delete comments. Each comment will have small cross in the top right corner which will delete comment form a story.

Only story author or comment author can see the cross.

User Profile. Implement stories list.

User profile should display all user stories. Stories should be accessible to view them by tapping on them, basically they should act as the stories on the feed page.

Each remote request should have a fallback in case of bad connection.

Each remote request should have a fallback in case of bad connection. i.e when application sends request for new stories and the connection is bad and request is not coming back for lets say 30 sec. then we should cancel the request and display a text: "It appears that you have a bad connection." this text should be displayed in rounded semi-transparent rect in the center of the screen.

We have a couple of requests in the application: login, new/old story request. So this should be standardized.

Users should be stored id disk cache as well as stories.

I will add mechanism that will request user from server if the user is not in cache but we still need to save them to show the name and the avatar (we need the url). I guess there is no need to limit the cache at all. It is just text data so let's save all the users we get onto the disk.

There will be two points where users are retrieved, when stories are retrieved, an on individual user requests from UserStore, actually they both will probably go thru the parseUserData method of the UserStore so that will be a good place to save user to disk.

Important. Make sure that if you got user that is already been saved you will just update his data and do not re-save him to completely new record.

User Profile. Link users.

In the application there is couple of places when user names are displayed as links:

  1. Story author.
  2. Comment author.
  3. Activity.
    I might have missed something, there may be more.

When user taps on this user name he should see the this user's profile page. Note, that we shouldn't change a tab we will just push a viewcontroller on top of navigation view controller stack, pretty much how we do with stories.

Story view enhancments

Add nice black background(?) to text and make the font larger. Remove black background from images.

Story View. Show story comments

We need to add comments to the story view. Comments will be downloaded asynchronously after the story has been downloaded.

Comment should have author avatar his name and a comment text.

Cache should be written into some subdirectory of root directory.

Cache should be written into some subdirectory of root directory. Currently is is written and obliterated from the root directory. This may cause bugs in future. Let's create special subdirectory "images_cache" and write all images there.

Look how it is done in EditorStore.m => imagePathForKey: method

Activities. Implement list.

Activities tab should show the list of all user activities that he has.

We don't need to use cache for activities, however, loading of activities should be displayed with loading wheel at the top like on stories page. We should load only 10 recent activities in this task.

Look in json queries specification for url to get user activities.

Look at the page on moqups for better understanding.

Story request should get only new stories.

Story request should get only new stories.

You should compare stories by id and get 10(+1) stories that has id higher then the maximum id of all story in the cache. Ask me how to do this.

If there are no stories in the cache then we should just get top 10 stories.

When we get 10(+1) new stories from server and we have stories in cache, we should check if stories that we've got intersect with the stories in cache. If they do we should display only those stories that are actually new. If there is no intersections it means that there are lots of new stories since last update. That's when we need this +1 eleventh story. We check if this story in the cache if it is then just follow previous steps(display 10 new stories) but if it is not then we will obliterate cache completely, display 10 new stories and insert then as new cache.

Cache loaded stories.

When story has been loaded it's id, title, photos and photo captions should be cached locally. Let's limit local cache to 10 stories.

Upon application start a request for stories will be made but if the storyId that has been return from the server matches storyId in the cache we won't do additional request for photos instead loading images from the cache.

Also when application is loaded we will instantly display the stories from the cache.

Instead of using Core Data and sqlite database let's use NSKeyedArchiver(lots like serialization in java) for the story data, and file system(NSFileManager) for story images.

Feed View. Pull to refresh

We should implement pull to refresh pattern (google it) on feed view(home). Probably it is reasonable to use some kind of component to implement it.

Find decent alternative to AsyncImageView

Currently AsyncImageView sometimes shows black rectangle instead of an image. Also spinning wheel that is showed while image is loaded is not centered in the view.

I suggest to find an alternative to this class.

Stories in cache are duplicated.

Currently I have couple of duplicating stories. Before writing story into cache we should check if the story exists in the cache already and if it does we should not write it into cache and we should not display it on the view again.

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.