dmitry-solomadin / onemyday_mobile Goto Github PK
View Code? Open in Web Editor NEWiphone application for onemyday
Home Page: onemyday.co
iphone application for onemyday
Home Page: onemyday.co
Add ability to publish story.
Home View. Add author name and time ago created to the ThumbStoryView. Author name should be tappable, it will lean to profile screen of this user.
Show alert block with message something like "There might be no internet connection".
When user is logined the MasterViewController should be showed immediately. Currently application first loads the StartViewController then displays it then checks if the user is login the goes to the MasterView if he is.
Check how logout works after fixing this.
Story Editor. Add background to the view, maybe darken bg behind story title.
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".
Story editor should have tab bar with three tabs: photo, library, text.
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.
This footer should contain story name at the first line, number of story likes, comments, views in the second line (view moqups for details).
Activities list should have the same pull to refresh pattern as stories list does. Also, it should have the same load from the bottom pattern. Activities will be loaded 10 per one request.
When user long taps on the item it starts to shake a bit and becomes draggable
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.
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.
When user taps on text the text view should be opened.
I think to make them round.
Maybe take inspiration in Path.
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).
We need to integrate either of these libraries for the cool image filters:
https://github.com/esilverberg/ios-image-filters
https://github.com/gobackspaces/DLCImagePickerController
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.
Check why sometimes images are loading forever
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.
User should be able to delete items by swiping it to the side.
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. It should have iphone2x_thumb photo dimensions, white 5px white border around it, remove furley_bg, add some other bg.
Starting spinning wheel should have more space allocated for it. I think it should have space that equals height of the wheel + 5px margin at the top and at the bottom.
Story Editor. Add ability to add/change story name. This should be implemented as a text field at the top of the editor view.
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.
There are number of things that needs to be done:
Add little roundness and shadow to the image.
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
Story request is always performed on the application first run. Is it for testing purposes or it is a bug?
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.
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 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. 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.
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.
Rework bottom tab bar. It should have more nicier selection style.
In the application there is couple of places when user names are displayed as links:
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.
Add nice black background(?) to text and make the font larger. Remove black background from images.
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. 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 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.
After loading stories from the bottom scroll sometime disappears.
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.
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.
When user clicks on photo tab in story editor, camera view should show up, after the photo has been taken it should be added to Story Editor.
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.
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.
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.
When user taps and holds on a photo, a x button appears in the top right corner of the photo. When user taps on it — the photo should be removed.
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.