Hello Illya and Pawel,
I am having the same issue as Pawel - no footer online/offline status (independent of actual status in browser(wifi on/off) or iPhone (airplane mode on/off); initial list is blank (but appears when a task is added; and changes to list (deletes and adds) are not reflected in the database. Yes, I refreshed the DB... several times 
Prior to writing, I checked the debugging tips and learned how to look at the localStorage resources via the Chrome dev tool (Thank You!). The variables for the 4 list items I added were logged locally. So the entries were being captured and reflected as offline items.
My hypothesis is that the lack of an online/offline status is reflected in the _isOnline variable needed in the sync and child functions to have the DB and local storage sync as intended.
I tested your #1 suggestion - I had a list service engaged after tutorial #1, but deleted it to have my events list match the "how to" pictures - I assumed, like other events that were static from the basic App, it was no longer needed. If some are still needed, the "how to" should show or make mention of this fact. 
After adding it back in, I now see the full list of DB logged tasks. Unfortunately, my local items now appeared as "undefined" at the bottom of the list.
When I clicked the single item to see if details would be shown - it deleted - as did all the elements in the {tasks} object in localStorage per the Dev tool view.
Also, since adding back this service, I can no longer delete or add tasks in offline mode. At all.
I believe this is because the _isonline variable stays at "1" after the initial load and does not update to "0" as would be suggested given the Event handler for "offline" running the JS function call to onOffline().
I will continue to work on how to go around this - but suggestions are welcome 
as to #3 - the footer is most certainly in the tutorial as well as the Javascript in the tutorial. I cannot see how the JS will properly operate if the footer is not set and thus available for the .getItem
// On online
function onOnline() {
localStorage.setItem('_isOnline', 1);
$('[dsid="footer"]').text('Online');
startSynchronization();
// Start synchronization of tasks with cloud
function startSynchronization() {
var isOnline = localStorage.getItem('_isOnline');
// i believe this comes from the footer?? if not, where does it come from?
if (isOnline == 1) {
var task;
:
There does appear to be some small things amiss, but not sure if it is the above, or one of the 2 other JS code issues I also noted, that may be causing issues (sorry I am just learning JS so my debugging skills are in the relm of little-educated guesses).
1) is the use of eval() in the startSynchronization() sections for Deleting and Creating. My understanding is that newer browzers using strict mode, will kick this back (best practice security says this is a no no)- there is an error message in the Appery JS editor.
Until I can get the other issues resolved, I cannot hope to test an alternative approach as this line is directly impacting the synchronization logic and syntax. But here is what I think will work. any comments appreciated.
2) the same variable was recycled inconsistently in the create section.
// Creating
tasks = localStorage.getItem('tasksToCreate');
if (tasks) {
var tasksArr1 = eval('([' + tasks + '])'); // added "1" here differs from delete
while (tasksArr.length) { // same as delete block
task = tasksArr.shift(); // same as delete block
if (task.name) {
create_service.execute({data:{task: task.name}});
}
}
localStorage.setItem('tasksToCreate', '');
}
I changed this variable to be "tasksArrC" consistently and as stated earlier, I was successfully adding each task to the end of the localStorage object.
Any help you can offer is greatly appreciated - I will need a similar functionality for an App I am developing - which will often find itself in an offline situation and still need to capture data.
Barb