Interactive timeline that allows to add tasks and manipulate them on the timeline.
Project under early development.
This project is intended to develop my iOS UI skills by creating timeline inspired by Hours app [https://www.hourstimetracking.com].
- Define functionality of the timeline.
- Breakdown functionality into tasks.
- Write tasks along with unit tests (not necessary using TDD).
- Look for further app purpose.
- Written without external libraries
- Based on CGLayers - use as small UIViews as possible
- Do not use XIBs or Storyboards
- Design primarly on iPhone
- Supports iOS 11 and up
- Animated
- Updates with time. Timeline will slowly moves as times goes.
- Tap to add. Tapping on empty time slot will create task with it bounds. If no bound is defined then nearest rounded hour is taken.
- Tap to edit. If taken block is tapped, edit box is shown.
- Deletable. Task can be deleted.
- Task bounds can be edited. If bound reaches another task bound, then it is moved.
- Task cannot be smaller than 5 minutes.
- Scrollable. Timeline can be scrollable within last 24 hours (+1 one hour onward).
- Scaling. Time axis can be scalled by piching.
- Task must have name assigned.
- Duration shown. Task on timeline has its duration written.
- Timeline must have time axis described and current time should be marked.
- Create project and upload it on GitHub
- Remove Storyboards
- Create simple ViewController view using code
- Create static timeline axis
- Make timeline scrollable
- Make timeline show last 24h and 1h onward
- Create nice time axis labels (every 5 min and every hour with label)
- Make timeline dynamic (changes with time)
- Add static blocks into timeline.
- Improve static block view
- Allow multiple static views on timeline.
- Create started block (not finished) that enlarges during time
- Create edit dialog after block is clicked
- Add to dialog possibility of change title and time bounds.
- Make dialog changes immediately change blocks
- Animate dialog appearance
- Scale timeline according to pinch gesture
- Enable block bounds edit by long clicking bound and drag it.
- Make neighbor bonds move along block's bounds
Just open InteractiveTimeline.xcodeproj in Xcode and launch it.
Play with timeline ;)
Any suggestions will be appreciated :)