Todoist (http://todoist.com/) is flexible, and can do both of those. They've got native apps for ios and android, and good integration with gmail. It has good support for recurring dates, subtasks, and some other niceities, but is also good as a basic list keeper.
amix|13 years ago
Our desktops apps are really useful to structuring coding projects and I use it all the time while coding (as Todoist supports shortcuts and outline like nested structures) - - and it's really fast to use. Here's one of my recent projects, for an idea: http://cl.ly/image/1C2p1j1b0r3B
This is great because you can assign due dates and priorities to sub-tasks - - and you can hide/show Todoist while you develop (via a global keyboard shortcut).