16 Lectures - G1 Apps and Games

I have developed an application which is a simple task manager.
I noticed my tasks were numerical in nature. In order to study for this exam, I had to review 16 lectures, hence the name. Because tasks are incremental and decremental in nature, this application also serves as a bean counter. You can use this application to keep balls and strikes in a baseball game.
I have a personal todo list on this application, but I want to know if this would be useful for anybody and what features you'd like to see. This is still a work in progress: I started Android development two days ago.
Menu to Add tasks / Save data (not sure if this is necessary)
Single press on task to edit
Long press on task for context menu

Related

[Q] Linux like workspace switcher/screen splitter

I wanted to know since the tab has a screen that is 3x as big as a Galaxy S (3 phones put side by side on the tab) is there an app or a home launcher or something that will allow me to have multiple things running on different screens.
For example, I need to take information from one document and organize with another and I can easily switch between them on Windows and Linux.
I then need to tag along to other places and want to continue to edit both documents on my tab, I have to keep opening one document then remember a sentence or piece of information for a second and close that document and open the second one to continue typing it up.
It is a real hassle and very time consuming and frustrating. Our tabs are pretty big and I would like to utilize it to the fullest of its capabilities as a tablet/big smartphone.
What my suggestion is if anyone feels like making an app that I can do just this and more on my tab, they couod design an app that works like the home screen.
For instance you open a document, email, or webpage and want to look at another document or note you made for yourself or another email. All you do is swipe to the left or right and it is a clear home screen or something to that effect or maybe a list of documents, notes, emails, webpages you can open. You then choose/open what you need and can continue with the first page having the second one open for reference or whatever the case may be.
You can then easily switch between the 2 or however many pages you have opened just by swiping the screen just like you would your homescreen.
If someone knows of such an app or had the resources to make one please let me know.
Also this would make for a great multi-tasking app if made correctly.
What might be an issue here is that most programs themselves are going to detect the loss of focus and handle things. Either saving/reverting to front screen/closing down completely, or leaving things up and running.
I can see what you're after, more a 'cards' type thing, and it might be possible, but you'd have to override what the OS is sending to the apps (don't send the lose focus thing), or get the apps to handle things differently.
Either going to be impossible, or trivial. And even if it was possible to be hacked, apps are going to be assuming their running and might use more power. The way it works at the moment is to assume you're being shut down, and handle that gracefully so you're using minimal resources on a phone.
If one were to change how android handles the multi-tasking, would this sort of app be possible?
Another question is, are there any document editors that can do something like this?
I have an iPod Touch and an app named iFile, and it has multi-window type thing that I am describing where I can open many pages and view many documents at a time.
That's the main thing I want it for, editing documents without having to open and close constantly.
I was thinking of this the other day. This would be something you'd have to build into a ROM. It'd be a nice mod, and since Android already takes screenshots for the recent apps bar, it wouldn't be too hard to implement once the source is released. My thought is it would be a four or five finger gesture left or right. It could possibly zoom out similar to how the screens zoom when you drag an icon on the launcher so that the other tasks could be visible at the same time. The normal activity lifecycle would continue as usual (i.e. onPause() would be called as soon as the gesture starts, and onStop() once the activity is off the screen). A screenshot would be used in place of the actual Activity until the gesture is over (meaning the Activity has "snapped" into place).

Intent Evolution Idea: Sentence

Hey guys, random thoughts/rant for a software idea.
I was thinking of the next evolution of the Intent system on Android. I always thought OSs seemed to spend almost no effort on integrating softwares on it. It was almost like an afterthought every time. Android was a huge step in the right direction. The next step would have to be very definitive, and backwards comparable of course. It would have to be something users want, and make it easier on the developers as well.
This system would be called something along the lines of 'Sentence'. It evolves with developer and end-user choices and, if I'm right (here's the big pitch, would have the potential to make software measurably more stable, secure, efficient, and user-oriented without really changing any behavior on the developer's side. Of course it has the same potential to be stagnant, but I think the users would punish (unwittingly) developers who lagged behind or didn't put in the effort.
The sentence system allows a user to build a sentence to discover not only the correct application, but an infinitely specific task before ever encountering UI. It is reminiscent of auto-completing sentences in Google Search. An example is the quickest way of demonstrating. The [] specify user interaction and ** specify user choice (probably a button press):
I would like to
[*send*] [search] [open][...
[a][*multiple*][...
[2][*3*][4][5][CUSTOM][UNTIL...
[files][emails][smss][*pictures*][...
[*to*][GO][...
[emily][drake][*george*][...
[*and*][GO][with message][...
[emily][*drake*][george][...
[and][GO][*with message*][...
[CUSTOM][*check this out*][...
[*GO*][and]
this immediately opens the camera app for exactly 3 pictures. Once the 3rd picture is taken, the UI informs the user that the next action is about to take place. After a short time out, the 3 pictures are sent to George and Drake. After the first shot, the user can shut off the screen or pocket the device knowing the timeout will occur and then the task will continue. Being an OS-level function, the user can trust it regardless of the app.
Unless the app task fails. If Apps that use this system can't provide tasks that don't fail, they will become unpopular far quicker than the tasks that do fail that users just deal with anyway.
Furthermore, many apps can be published virtually without any UI at all, significantly cutting down on development time and allowing the dev to focus on the task and functionality.
This could turn around voice activation as well, since the user quickly understands the routine task format to get the best results, and would be more confident to provide far more complex long-winded sentences that the OS could understand perfectly to the detail.
While some sentence lines will be defined by the OS, the developers and users alike will be able to define the evolution of the sentence tree. Developers will make the smart decisions, while the users will crowd-source the popularity of each possible route. The most logical and/or common sentences would quickly be the norm. If the OS prioritizes specific routes over general ones, then developers will be incentivised to make their apps as task-specific as possible as well as as task-plentiful as possible.
The losers in this quickly become apps that use ads, apps that rely on 'convincing' the user of something with UI, and of course utility apps. Of course, this brings back the main reason for 'pro' apps: functionality. The pro version will have these features. The free version will only have these.
There wouldn't be a way to exploit the system or flood it. If the functionality doesn't work, the app becomes not only intrusive and annoying, but offensive to the user as it promised a specific task and performed something else entirely. Those apps simply wouldn't survive.
Of course, application for this kind of thing would have to be imposed by Google et all for it to exist, but there is another way. It can be implemented as a shared library that provides the necessary interfaces and cache all the necessary information for other compatible apps. That would work for a full implementation, and I can't see any features that would be missing. Backwards compatibility would still work just fine, as the app would simply fit existing intents into this sentence tree as well as it can. The sentences would simply end up being smaller. The best part is that with the right effort, this sentence tree could act as an 'Intent builder' for existing android apps. I bet I could build a handler for the tree that would get me through the above demonstration with the standard Gmail app using known intents. See where I'm going with that?
I would build it myself if I had more time, but I'm def interested in helping (or instructing) anyone who would like to take a crack at it. I think if someone got this idea into Cyanogenmod, we'd have a pretty huge win, and Cyanogenmod would have an incredibly unique UI gem to show off to stock users.
Honestly, I see no way that a system similar to this won't be built and become the standard within a decade. It would be trivially easy to build as well although some of the decisions to be made might not be so easy. So yeah, that's it. Rant over.

[COMPETITION] Food Trucks - 1.0 on Pebble App Store

I am developing a new Pebble watch app to display which street food trucks are currently open for business and its current location for a given city.I will be using an API that currently collects this information for food trucks in 9 different cities.
I backed the Pebble kickstarter project and I have since written several watch apps, mostly in the transportation area, including one for various bus systems and the BART train. I wrote the apps for myself, but they have also been proven to be useful to thousands of other users.
I also wrote several watch face style apps that aggregated open sourced watch face apps, which enables users to have over 40 ACTIVE watch faces (not in the locker) that will only use up 3 of the 8 watch face slots.
Outside of Pebble, I have been working full time as a senior software engineer for many years and I am very into starting with a well-thought-out design and using the agile process and test first. Anyone monitoring my checkins will see how I will build and unit test each portion of the app. I've had several weeks to work out the design, so I'm ready to start the coding for tomorrow's official start.
Update: The API now supports 14 cities. I have enabled only the 13 cities that actually have trucks signed up for the service that are reporting their schedules. This is more than the 9 cities originally promised by my pitch.
iOS users can download the latest pbw from the downloads section of this project. See my reply below for instructions. Android users can download the latest app from the Pebble App Store.
source code link: http://github.com/mikebikemusic/FoodTrucks
XDA:DevDB Information
Food Trucks, ROM for the Pebble
Contributors
pebblemike
Version Information
Status: Stable
Current Stable Version: 1.0
Stable Release Date: 2014-09-03
Current Beta Version: 0.3
Beta Release Date: 2014-08-21
Created 2014-08-14
Last Updated 2014-09-04
What cities are you supporting? I just moved to Austin and could use a method for navigating the 10,000,000 trucks here.
mcongrove said:
What cities are you supporting? I just moved to Austin and could use a method for navigating the 10,000,000 trucks here.
Click to expand...
Click to collapse
Unfortunately, the API I will use does not yet support Austin or for that matter, the SF Bay Area where I live. The cities in the current API are Boston and Tallahassee in the US and Vancouver, Victoria, Ottawa, Edmonton, Halifax, Calgary and Toronto in Canada.
Like you, the first thing I asked the API developer when I contacted him was when he would cover Oakland. He is very interested in expanding. In fact, 3 of the cities on the above list are new. He said it takes some time to contact and get the truck drivers to buy into reporting their schedules into his app, but it's very easy, so once they start doing it, the information returned by the API is quite good. Better than the other APIs I considered.
Mike
UI Design
It's 10:01 Fri Aug 16 on my pebble as I start writing this...
Documenting and sorting out my mental design of the Food Trucks app UI. A lot of it is based on providing a similar UI to what I used for my BART app.
UI: On Pebble screen, 3 views:
1. Startup text to alert user if Pebble app is not responding, which, if responding gets replaced with
2. Menu of Food truck names and their locations, truncated, and when one is selected,
3. Scrolling text. Full details of the selected truck, including full name, location, ending time and other details such as phone #, type of food, etc.
Configuration screen: Shows list of supported cities. User picks one. Choice is remembered across Pebble runs and reboots.
Task Breakdown
Prototyping phase:
API example output is captured and JSON is analyzed. Use jsbin to write the necessary loops to iterate across trucks.
Filter out the unwanted data and extract the data needed for the menu and the details.
Decide on the format of the JSON to be sent to the Pebble watch.
Decide on the message sequencing between the watch and the javascript.
Code and debug the text layer in the main window to be used during startup.
Code the App Message interface in C. Use the text layer as a debugging screen.
Code the javascript so it sends mock menu data for a sunny day use case in the filtered format expected to be sent when the real data is connected.
Debug the C to Javascript interface.
Evaluate reliability and check for memory leaks.
Code the menu layer into the main window and display the received data in the menu.
Code the Scrolling Text Layer as a separate window pushed onto the main window.
Code the Javascript mock data for the details format.
Debug the interface and check for memory leaks.
Integration coding and testing:
Using Javascript prototype code from task 1 above, write the API call, analyze the incoming JSON and transform it to the expected data for the tested interface.
Debug using live data.
Write the configuration html and javascript.
Mock up edge and exception data cases and fix bugs.
Design icon and marketing materials.
If time permits, replace static arrays with malloc/free data.
Check and fix any memory leaks.
Release first version.
pebblemike said:
Prototyping phase:
API example output is captured and JSON is analyzed. Use jsbin to write the necessary loops to iterate across trucks.
Filter out the unwanted data and extract the data needed for the menu and the details.
Decide on the format of the JSON to be sent to the Pebble watch.
Decide on the message sequencing between the watch and the javascript.
Code and debug the text layer in the main window to be used during startup.
Code the App Message interface in C. Use the text layer as a debugging screen.
Code the javascript so it sends mock menu data for a sunny day use case in the filtered format expected to be sent when the real data is connected.
Debug the C to Javascript interface.
Evaluate reliability and check for memory leaks.
Code the menu layer into the main window and display the received data in the menu.
Code the Scrolling Text Layer as a separate window pushed onto the main window.
Code the Javascript mock data for the details format.
Debug the interface and check for memory leaks.
Integration coding and testing:
Using Javascript prototype code from task 1 above, write the API call, analyze the incoming JSON and transform it to the expected data for the tested interface.
Debug using live data.
Write the configuration html and javascript.
Mock up edge and exception data cases and fix bugs.
Design icon and marketing materials.
If time permits, replace static arrays with malloc/free data.
Check and fix any memory leaks.
Release first version.
Click to expand...
Click to collapse
In an ideal world, I would do the development in more or less the above order. But, as pointed out in the email sent to the 20 finalists there are early deadlines. I want to make this app available to all Pebble owners. This project won't need a companion app for Android or iOS, so I don't have to worry about Whitelisting. However, I will need to bundle the JS with a working API call by the end of next week. To that end, my goal is to start working on integration coding tasks 1, 2, 3, and 5 by Thursday, so I can post a beta on Friday.
This prompted me to consider what else I can accelerate. I decided to give the new CloudPebble Graphical UI Editor a try and see if it will build what I planned to do for prototyping tasks 5, 10 and 11. I may end up writing two applications. one that I can rapidly write and test code with, and the other where I assemble the tested code into the UI.
Update: I tried CloudPebble Graphical UI Editor, but it does not yet allow me to make either a SimpleMenuLayer or a ScrollLayer. It will be easier for me to build this myself.
bundle early, bundle often
FWIW - as I understand it, you don't need the javascript finalized (though that's certainly very good) - but you do need to have *a* bundled version of your javascript in place before they collect. It seems silly, but I've just published a barebones version of my app w/ javascript enabled that warns, specifically, that it's only published for javascript bundling. (Then again, the whole javascript pre-approval process in the walled garden that is IOS is pretty silly, IMO)
I don't think you technically need to make it public, you just need a published/ready version, but I went ahead and did so because I'm a paranoid type, and my free time is too limited to chance it. Once any version of your javascript has been published, I gather the updates in the future are made available on the order of minutes not weeks.
cynorg said:
FWIW - as I understand it, you don't need the javascript finalized (though that's certainly very good) - but you do need to have *a* bundled version of your javascript in place before they collect. It seems silly, but I've just published a barebones version of my app w/ javascript enabled that warns, specifically, that it's only published for javascript bundling. (Then again, the whole javascript pre-approval process in the walled garden that is IOS is pretty silly, IMO)
I don't think you technically need to make it public, you just need a published/ready version, but I went ahead and did so because I'm a paranoid type, and my free time is too limited to chance it. Once any version of your javascript has been published, I gather the updates in the future are made available on the order of minutes not weeks.
Click to expand...
Click to collapse
That's good to know, John,
Since the first 3 tasks of my prototype will get me to usable JS code for my integrated app, I'm not too concerned, even if it gets bundled and distributed.
But I thought that published/ready meant that Android uses would be able to download it immediately. I wouldn't want to publish anything that didn't work.
Mike
UPDATE:
Hey, everybody. Cherie just posted: "Submit your JS changes before 8/19/2014 11:59AM PST"
Progress Updates
Aug 15 2pm - Prototype task 5 is done. Github repository created. Stub checked in.
Aug 15 2:20pm - Prototype task 1 is done. jsonanalysis.js checked in.
Aug 15 3:00pm - Prototype task 2 is done. jsonanalysis.js updated.
Aug 15 4:00pm - Prototype task 3 is done. jsonanalysis.js updated.
Aug 15 7:00pm - Prototype task 4 is done. 3 unit tests passed. main.c updated.
That's it for today.
Aug 16 8:00am - Added assertions to debug and exercise app message sequencing, refactored unit tests. main.c checked in. Unit test output:
​I realized that task 6 depends on task 7 so, I'm starting 7 first.
Aug 16 8:30am - Prototype task 7 is done.
Aug 16 10:30am - Prototype task 8 is coded, but has timing issue
Aug 16 4:00pm - Prototype task 9 is done. I decided that the memory leak "Still allocated <42949" is bogus because the only allocations were 1 window and 1 text layer and both got deallocated. (removing either destroy results in a reasonable 2 digit number leak). I then implemented and am satisfied with Prototype task 10 being done.
Aug 17 8:30am - Did task 12 before task 11. Both needed to work at the same time anyway. Code checked in.
I am declaring the Prototype phase complete and moving on to integration. Will change my status from Testing to Alpha.
Aug 17 9:30am - Integration tasks 1 and 2 went smoothly. Real data looks like I expected.
Aug 17 noon - Integration task 3 is working, but I have to go off to play music with friends. Will try to put together what I need to publish a beta on the Pebble App Store either tonight or tomorrow.
Aug 17 10:40pm - Put together enough of integration task 5 that I could publish the app as a beta. Because of the all the unit testing, there should not be too many bugs. However, I will continue to build a lot of edge tests, add one more icon that shows up on the watch, and fix any bugs I find through my additional tests or get reported. Your comments, suggestions and bug reports are welcome. I also need to update my website.
Aug 19 9:30am - Found and fixed several bugs. Published a more stable 0.2 beta. See release notes.
Aug 19 10:00pm - Started coding integration task 4. What I'm doing for that is expanding on the function testRequestSceduleFor(city) in the javascript. Since I don't want to ship all this test code with the app, I created a test branch where I will put the additional code. Fixes will merged into master. I'll be testing handling of very long string sizes and very large number of trucks. I already know the C program will fail because I'll be sending more data than the fixed sizes I put in. Since I have time, I will convert to malloc/free to fix these failures.
Aug 21 7:30am - Completed all tasks except for releasing a 1.0 version and updating my website. API now has Checked source code of 0.3 into github. I consider this a release candidate.
Aug 22 7:00am - Website is now updated with this app. Banner for the app store was updated to 10 cities. Here are screen shots of the food truck icon on the pebble, the startup screen and the no food trucks are open yet message.
Aug 27 7:00am - Updated configuration from 10 cities to 13 cities. More will be added as truck data becomes live.
Sept 3 9:30pm - Bumped version number to 1.0 after giving a number of iOS users a chance to download and use the app. Finalized the marketing materials to match the number of cities supported.
AppMessage timing issue
I've just implemented the AppMessage code for my app which requires a rapid sequence of requests and responses that is always kicked off from the javascript side. It's working fine when all my logging is in place, so I disabled the log messages and now it gets stuck after the first round-trip message. The message sequencing for the test is as follows:
JS: send count of 30 to C
C: request item 0 to JS
JS: returns item 0 to C
C: request item 1, then both sides go idle. JS does not get the message.
I found that if I add a psleep(100) before each request in the C code, it will get farther, but will eventually stop at a different item number, for example:
Not sure why yet. The send / receive code in the C program is a slight variant of the todo list demo app in the 2.0 sdk, also similar to what's in the weather and quotes apps in the 2.2 sdk.
Code as it stands is checked into github.com/mikebikemusic/FoodTrucks
I'll probably figure it out while out doing errands today.
====================================================
Update: Searching through the pebble forums, I found a few others who had similar problems. One of whom said his solution was in the todo list demo app, without explaining what his fix was, which didn't help me much. There was mention in several places about waiting for an ACK, but never an example. I updated my SDK to 2.4.1, but the demo apps all looked pretty much like mine. So, I re-read the app_message API looking for a way to set a callback for an ACK and noticed that app_message_outbox_begin can return,APP_MSG_BUSY. I then coded a retry/timeout using psleep, and lo and behold, the code is now working. Looking back at the 3 SDK samples they will all do the same dumb thing: throw away the request if it can't be sent immediately.
A little experimentation and measurement and I found that sometimes the wait between outgoing messages to the JS can be up to 1 second. I coded up a stress test that ran for a number of minutes and kept running even through an incoming phone call conversation. I caught this screenshot right before stopping it (over 20,000 round trips without stopping):
Bogus memory leak report
I started to see the following during testing of starting and stopping my app:
[PHONE] pebble-app.js:?: JS: starting app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: app is ready: 1
[INFO] ocess_manager.c:291: Heap Usage for App <Food Truck: Total Size <13348B> Used <5692B> Still allocated <0B>
[PHONE] pebble-app.js:?: JS: stopping app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: JS: starting app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: app is ready: 1
[INFO] ocess_manager.c:291: Heap Usage for App <Food Truck: Total Size <13348B> Used <5248B> Still allocated <42949
[PHONE] pebble-app.js:?: JS: stopping app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: JS: starting app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: app is ready: 1
[INFO] ocess_manager.c:291: Heap Usage for App <Food Truck: Total Size <13348B> Used <5692B> Still allocated <0B>
[PHONE] pebble-app.js:?: JS: stopping app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: JS: starting app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
[PHONE] pebble-app.js:?: app is ready: 1
[INFO] ocess_manager.c:291: Heap Usage for App <Food Truck: Total Size <13348B> Used <5692B> Still allocated <0B>
[PHONE] pebble-app.js:?: JS: stopping app: 19177E4B-72D9-4B0C-B9D3-497C77488971 Food Trucks
Since only 24kb is available, 42949 makes no sense. It reports no leaks if my code also creates/destroys the scrolling window. It's almost as if I need to do a minimum amount of memory allocation before the leak detector works properly.
Release Notes
0.1 Aug 17 10 pm Published first beta to allow a working pebble-js-app.js to be bundled and to solicit user beta testing.
0.2 Aug 19 9:30 am Watch icon added. Changed startup message. Pre-build scroll window and its layers at startup. Bug fixes: Prevent multiple scroll windows when repeating select button quickly. Reset scroll to top when selecting details. Clear prior city's list when switching cities.
0.3 Aug 21 7:30 am Built javascript driven testing of C app. Used it to debug malloc/free code. The Javascript tests exercise the app with unrealistically large strings and large numbers of trucks coming from the API. In examining the API, I found that the developer added 5 new cities, so I added them also to the configuration screen. I will be doing live testing for all the cities before publishing an official 1.0 release.
Update: Aug 21 7:30 pm Of the 5 new cities I tested, only 1 had active trucks, so I removed the other 4 from the drop down. Fortunately, this is a simple server-side fix to hide the others until they are ready.
malloc/free challenge/solution
I ran into a little snag (which I eventually solved) during the conversion from using a fixed size array for the menu titles and subtitles to allocating them on the fly with malloc/free. I wanted to change the pointer directly in the menu_items.title without having to allocate a separate array of pointers. Problem was that title and subtitle are declared const, so free(menu_items.title) gets a compiler error.
I discovered that reinterpret_cast<> and const_cast<> are not supported by the compiler. Eventually I tried a simple (void *) cast, which did the trick. Then I refactored the code so that one bottleneck method took care of the free function and updating the pointer. I'm pretty proud of that code change. It's aware of the two string pointers that are not malloc'ed and provides an interface that prevents accidental leaks when my code dynamically changes the menu list.
Comments about developing using cloudpebble.com
I started writing pebble apps using cloudpebble soon after it first came out. I didn't have to install a dev system at home and I could make a quick bug fix at work, if necessary. I've since installed the development tools at home and used that primarily. I decided to give cloudpebble a second look for this competition. It's progressed a lot, but there are still some things on my wish list.
I find it a bit inconvenient when I have compile errors that I cannot see unless I open a second browser window to view source and errors side by side. A single button to flip back and forth between the compile logs and the current source code would really help.
Cloudpebble does not allow me to check in files unrelated to compilation, such as the configuration html. At one point, I tried to commit new code and I got an error (with no error message, just the word error). I figured out it was because of updates I had done to files unrelated to the compilation, but the only choice I had might have replaced all the new code I wrote with the previous commit. So I made a backup of my changes, updated the project and pasted back the changes.
Finally, as I had mentioned at the start of the challenge, the new code generation feature did not help me because I needed layers that were not supported yet. I ended up creating those layers while I was trying to track down the false memory leak report. I like doing that because now, if the app runs out of memory due to too many trucks in the menu, it won't fail to create the scroll layer for those that made it into the menu. Hmm, I need to put together a test case for that...
Feedback Anyone?
Android users can download my app from the Pebble store.
iOS users can get an advance copy here. The easiest way to load on iOS is to put the pbw file on your dropbox and, from dropbox, select the file and Open In Pebble.
Use the Reviews, Feature Requests, and Bug Reports tabs at the top of this development page. Also, search for "Food" in the Pebble store to find my app and tap the heart button on it. I see 5 already!
Adding another city
Looks like several more city's data has come online. I've added Hamilton (Near Toronto), Surrey, and Kitchener-Waterloo to the configuration. The other new city, Columbus, Ohio just has a few trucks using streetfoodapp.com. Only 2 of the 20 trucks registered with streetfoodapp.com in Columbus are promoting themselves this way.
If you live in Columbus, Surrey, or Kitchener-Waterloo that list just a few trucks, go tell your favorite food truck vendors to start publishing their schedule on streetfoodapp.com. If you live in a city not supported, click here to request your city
Feature creep vs planned development
It may seem like I've stopped working on my app now that it's feature complete and stable, but that's not entirely true. Yes, I've requested and am awaiting feedback from users, and I'm especially interested in seeing what happens when iOS users can see the app on their app store. That should happen any day now, since I met the Aug 19 deadline for JS bundling. I needed to publish another bug fix 2 days later, and one of the fixes I planned would have required a minor change to my JS. That JS fix was for an edge case that could only occur with the artifical data I supplied as a unit test that had a string size much larger than any in real data. If I updated my JS, iOS users would be delayed getting the other C code fixes. So, I chose to ship 0.3 with the original JS. It is interesting to note that when I reverted my JS manually, and published it, the dev-portal considered it a different version, so I pulled that release and reverted the JS to what I checked in to github. It turned out to be a whitespace difference. So, word of caution, the JS is compared byte by byte (or maybe a checksum).
Meanwhile, I have considered a few improvements. And I've experimented with one of them, which required further JS changes. The change will eventually go to the master branch, but rather than providing an improvement that nobody really cares or needs, I'd rather wait for feedback and act on that first, rather than announce future planned improvements. As features creep in, it's easy for the app to become more complex to use.
I'll give you one example. I'm on the west coast and when I look at the times reported for the Boston food trucks, the times are off by 3 hours. Should I fix it? Some would say, of course. But think about it. Are the real users who use this app going to be in a different time zone when they need to go out to lunch and open my app? Extremely unlikely. Both JS and the pebble watch API fall flat on their face when it comes to determining time zone differences, both dealing only with local time. I know how to compute that offset by calling another TZ API like I did for my Any Time Zone app. What I chose to do instead was contact the Food Truck API developer suggesting he provide all API users with a TZ offset in the data response. He has agreed to do so in a future API version. This is how planned development should work.
Mike
1.0 released
I posted my 1.0 build last night. It is available in both the Android and iOS Pebble App Stores for download.

tasker Additional Features

Yet in Tasker, you can create widgets and individual applications, and you can extend the functionality with plug-ins. There are plug-ins for voice control or remote control of the device, they are all available on the network, and they are inexpensive. With their help, you’ll even more improve your tablet or smartphone on Android.
Note that plug-ins are added to contexts and tasks – it all depends on what kind of chain of actions you want to create.
As you can see, the application’s capabilities are simply stunning, and it’s not for nothing that Tasker is called the best service for automation. Yes, at first, you need to understand the interface of the program but the elapsed time will completely pay for itself when you can fully configure the device for your own purposes. Therefore, the Tasker tool is definitely worth the installation and will significantly expand your knowledge of the system and your gadget.

Using Google Home as an auto reminder for Elderly parents living away & alone

I am interested in placing a google Home mini in my old parents home and have it remind them of tasks and activities they should be doing every day.
Once the time of the task is over, ask them simple canned questions like did you do it? did you go there? was the task completed? and based on the answer to log the results in a table I will create to follow up on them living the plan we put together.
Their daily plan will be in an online table list of activities I will be creating as an excel table on a weekly basis.
The initial challenge is to turn a task list into scheduled reminders that will be read out loud at the set times on their mini speaker.
The other Challenge is to ask if the tasks was completed and the score they gave to it and and log it in the table I will read daily.
Is someone here familiar enough with Google home to help create the solution?
Thanks in Advance
Dany
Hello, I think that your question is very interesting.
I don't have much experience with google home but what you are trying to achieve should be doable.
I think that you could schedule a custom routine (https://support.google.com/googlehome/answer/7029585?co=GENIE.Platform=Android&hl=en) that triggers a custom action (that will handle the conversation to acknowledge the task and store this information in your online excel table). The most tricky part is obviously the custom action. I think that you have at least 2 options here:
1) writing you custom action with the Action SDK (https://developers.google.com/actions/sdk/), mainly in Javascript creating a Node.js app running for example on Firebase (aka Google cloud).
2) using a platform called dialogflow (https://dialogflow.com/) to create the action without programming.
You can find some examples here: https://developers.google.com/actions/samples/github
Keep us posted!
If you are a programmer, you can develop a little software in python using a script that send programmaticaly voice to google home. I wrote a post on my blog www dot gioexperience com. Sorry but in XDA I cannot write links
On my blog you can see how to send programmaticaly in python voice command to google home without human interaction... also detect and erase alarms ecc ecc
www dot gioexperience com

Categories

Resources