A time-based Todo-list App with simple design, which is a side-project of mine
BusyWeek! is a time-based Todo-list App with simple, elegant design, which can help you manage your schedule by automatically convert time between
- What is the date that day?
- What day is it that day?
- How many days before/after that day?
and present a Todo-list sorted by date to you.
- Out of the box
- No annoying
- Cloud sync
- Material Design
This project is no longer maintained and would be rewrite using React.js.
Although Vue.js is a very simple, awesome, light-weight MVVM library and support Component System now days, but React.js does better in many way:
- Model and View is not strictly bound(limit each other), which is more flexible than ViewModel data-binding
- The Old Back-end MVC way is more simple and focused when deal with UI rendering than MVVM
- Represent UI as a state machine making UI logic predictable and easy to maintain
- UI template is more declarative with JSX than a template engine DSL
- Communication between components is clear with
props
,context
andcallback
. - Ecosystem is more active and strong.
- etc.
- Vue.js upgrade to 0.12.12 (from 0.11)
- Migrate to
gulp-connect
instead of own wroteserver.js
- Optimize for Cordova use
- Add npm script
- LogIn/SignUp/CloudSync support!
- Router use director.js
- Fix scrollTo() unusable when migrating to iScroll
- Using iScroll to fake native scrolling now!
- iOS
standalone
style support! (and Hybrid is ready!)
require.js
config optimizeGulpfile.js
addwatch
feature
- Using new vanilla-node
server.js
instead ofgrunt-connect
to local used server - Add
gulp serve
to exec thesupervisor server.js
(need supervisor installed globally)
mpi.scss
shrink downGruntfile.js
move to theoutdated
dir- Drop all grunt-dependencies in
package.json
- Try best to load all js file more async
- Add
async
defer
attr to the script tag load require.js - And using require.js
data-main
attr to load entry js file asynchronously
- Add
- Brand new Loading Screen! Gorgeous splash animation
- After using Require.js as the module loader, I put all
<script>
tag at the end of<body>
, which expose the rendering process in desktop ( Mobile will be waiting all script ready then render) - The second reason help to trigger this problem is that desktop will perform all "transition" at the beginning if you set
transiton: all
- So I fixed this issue by hack the CSS of Loading Screen
- If you try to use
display:none
to hidden all UI except Loading, It is truly expensive.
- DayPicker in newTodoView now support "选个日期" as the option out of range
- Using Autoprefixer as one task of the CSS pre-compile, mainly for Flexbox.
- Fix layout of the 3 pickers in newTodoView, by re-write the Flexbox style
- Code Optimization
- FAB now using iconfont instead of text, to fix the line-height issue
- Drawer is speeding up while touch moving by add a class to control
- Todo item now support Multi line!
- The view and edit of todo now decouple
- Brand new Material design! including icons and FAB (Floating Action Button)
- Responsive Design for Desktop is working
- Icon now support by icomoon (no more iconfont.cn)
- MPI.css is tiny down
- Abandon MPI.css
- Navigation Drawer is coming!
- Now you can FILTER todos by done or not
- Filter Mechanism
- No more border of todo items now, seeing the render issues
- Migrate to RequireJS as the JS module loader
- Using Gulp as workflow tool now
- Using Require.js Optimizer as build tool now
- We will no longer using Grunt
- Add weekdays display for newTodoView
- Since
window.screen.height != window.innerHeight
in iOS Safari, usewindow.innerHeight
to fix intelliScroll issues
- IntelliScroll!: we create a postion system to calculate to where should the list scroll when a new todo is added in.
- Motion improvement
- NewTodoView now display in fullscreen, to fix the input & keyboard issues (always in mobile)
- Add
push.sh
for master and gh-pages branch sync
- Fastclick now support by CDN
- First release!
- Using Vue.js as MVVM framework
- Using NPM as module management
- Using Grunt as task runner