I am interested in Progressive Web App and it has several advantages as mentioned at the below site
https://developers.google.com/web/fundamentals/getting-started/your-first-progressive-web-app/
One of them is that Progressive Web App is Discoverable.
Actually I don't understand it 100%.
It means we can search progressive web app by googling.
I have three questions like below.
How we can search Progressive Web App by googling. Is there any keyword?
Because progressive web app does not belong to any app store. Seems like it should be searched by googling and needs any group or category for all them.
Which item of W3C manifests help it identifiable as “applications”
How service worker registration scope allows search engines to find them
Discoverable - Are identifiable as “applications” thanks to W3C manifests and service worker registration scope allowing search engines to find them.
It all depends on the search engine.
Google can load pages and run the javascript inside them, this means it can index content that you render on your pages as long as all the URL's are discoverable.
There are a couple of things to watch out for though, not all search engines render JS, so you need to make sure you have a solid server render story for your content. Not every search engine supports API's like promises (for example) so you will need to make sure that your app has the correct polyfills in place to function correctly.
I don't know of any search engine that uses or understands the manifest right now.
If you are worried of users not finding your PWA in Google or in any other search engine, you also have to consider the marketing side of this. Its just like any other website or campaign that you launch. You dont just launch your site/campaign and keep your fingers crossed that the users will find it by Googling it. You have to gain traction from social media and blogs to let your users know that you have this wonder PWA in the internet. From there, I am sure your PWA will gain enough traffic to be seen in the search results
Related
I have a Google Nest Hub Max and I want to increase its capabilities for a custom need:
"Hey Google, add xyz to my work planning"
Then I want to make an HTTP call to my private server
The private server returns a text
The text is displayed in the Google Nest Hub Max screen + speak-out.
How can that be achieved?
Originally I thought that this will not be difficult. I've imagined a NodeJs, Java, Python or whatever framework where Google gives me the xyz text and I can do my thing and return a simple text. And obviously, Google will handle the intent matching and only call my custom code when users say the precise phrase.
I've tried to search for how to do it online, but there is a lot of documentation everywhere. This post resumes quite well the situation, but I've never found a tutorial or hello world example of such a thing.
Does anyone know how to do it?
For steps 2. and 3., I don't necessarily need to use a private server, if I can achieve what the private server does inside the Smart Home Action code, mostly some basic Python code.
First - you're on the right track! There are a few assumptions and terminology issues in your question that we need to clear up first, but your idea is fundamentally sound:
Google uses the term "Smart Home Actions" to describe controlling IoT/smart home devices such as lights, appliances, outlets, etc. Making something that you control through the Assistant, including Smart Speakers and Smart Hubs, means building a Conversational Action.
Most Conversational Actions need to be invoked by name. So you would start your action with something like "Talk to Work Planning" or "Ask Work Planning to add XYZ'. There are a limited, but growing, number of built in intents (BIIs) to cover other verticals - but don't count on them right now.
All Actions are public. They all share an invocation name namespace and anyone can access them. You can add Account Linking or other ways to ensure a limited audience, and there are ways to have more private alpha and beta testing, but there are issues with both. (Consider this an opportunity!)
You're correct that Google will help you with parsing the Intent and getting the parameter values (the XYZ in your example) and then handing this over to your server. However, the server must be at a publicly accessible address with an HTTPS endpoint. (Google refers to this as a webhook.)
There are a number of resources available, via Google, StackOverflow, and elsewhere:
On StackOverflow, look for the actions-on-google tag. Frequently, conversational actions are either built with dialogflow-es or, more recently, actions-builder which each have their own tags. (And don't forget that when you post your own questions to make sure you provide code, errors, screen shots, and as much other information as you can to help us help you overcome the issues.)
Google's documentation about how to design and build conversational actions.
Google also has codelabs and sample code illustrating how to build conversational actions. The codelabs include the "hello world" examples you are probably looking for.
Most sample code uses JavaScript with node.js, since Google provides a library for it. If you want to use python, you'll need the JSON format that the Assistant will send to your webhook and that it expects back in response.
There are articles and videos written about it. For example, this series of blog posts discussing designing and developing actions outlines the steps and shows the code. And this YouTube playlist takes you through the process step-by-step (and there are other videos covering other details if you want more).
I am new to Chrome App development. I was going to create a simple RSS reader as a helloworld project, but now, after reading docs, I am not sure that this is possible. The problem is, by the Content Security Policy for Chrome Apps it is forbidden to use domain in url_handlers without proving that this is your domain.
It makes retrieving RSS from sites impossible.
But there are references to some sandbox technology in the docs, and Chrome Apps can use low-level sockets. Can I somehow use it to get RSS from any site?
This question is difficult to answer because its topic is so broad.
But to answer if it's possible. Yes it is possible. You'll see that there are already RSS reader applications out there, go and check the webstore and even "reverse engineer" them to study it up if you want.
I also did some RSS reader for a few clients before.
I hope I can give you sample codes to you now but its better if you start looking into main documentation and sample apps.
You should read on XHR to access pages
https://developer.chrome.com/extensions/xhr
You may encounter a lot issues in tackling this project.
You need to consider that websites may load slow and your app should provide some UI for loading and some timeout to give up after a few seconds.
Webpages will redirect, so you should handle if you are going to follow it or not
Sometimes link is 404, or sometimes its not XML
You need to cache things, you may need servers help for this
It's a tough project to do but don't get discouraged.
It is still a fun and challenging one and you should go for it still!
Have fun coding!
While brainstorming about six years ago, I had what I thought was a great idea: in the future there could be webservice standards and DTDs that effectively turn the web into a decentralized knowledgebase. I listed several areas where I thought this could be applied, one of which was:
For making data avail. directly from a business's website: open hours, locations, and contact phone numbers. Suggest a web service standard by which businesses have a standard URL extended off the main (base) URL for there website, at which is located a webservice. That webservice as well has a standardized set of services for downloading a list of their locations, contact telephone numbers, and business hours.
It's interesting looking back at these notes now since this is not how things have evolved. Instead of businesses putting this information on only their website then letting any search engine or other data aggregator to crawl it, they are updating it separately on their website, their Facebook page, and Google Maps. Facebook and Google Maps, due to their popularity, have become the solution to the problem I though my idea would solve.
Is the way things are better than the way I thought they could be? If so then why doesn't my idea fit the reality? If not then what's holding my idea back from being realized?
A lot of this information is available via APIs, that doesn't mean that it doesn't get put other places as well, through a variety of means. For example, a company may expose information via an API, and their Facebook app might use that API to populate a Facebook page.
Also, various microformats are in use that encapsulate some of this information.
The biggest obstacle is agreeing on what meta-information should be exposed, how it should be exposed, and how it should be accessed.
I'm thinking about doing a mobile version of our website. Some people says it's a good idea to let mobile websites have their own domain name (ie m.domainname.com) as oppose to the same app handling both mobile and desktop requests. What are some pros and cons of these two approaches?
My technology stack is ASP.NET MVC2 + MySQL.
This is more a strategic issue for your business. A lot of the larger vendors seem to use a suffix because it allows the end browser to be sure it is viewing the correct version of the site.
So for example, if I am using my smartphone to view a site - sometimes I will be redirected to the subdomain because there is code that determines through the session exactly what browser (and version) I am running. The redirect will then cause me to go to the new site. A problem arises when a situation arises that the code wasn't written to deal with. If I connected with a bespoke browser - how would the site determine that I was on a smartphone? Sure there is additional metadata that can be gathered - but what happens if my bespoke browse purposefully conceals that information (perhaps because it is not designed to view general web pages)?
The subdomain prefix gives the consumer a choice. They can view the normal site in their smartphone - and risk that the web pages may render incorrectly, etc.. Or alternatively they can enter the subdomain and view the site using the correct CSS for a smaller screen, alternatives to flash, and other technologies that smartphones require to view a site correctly.
If you want to play it safe - use the subdomain approach like we do. The big companies all seem to adapt this approach so why try to go against the grain. Remember - 99.99% of development is just doing something someone else has done before you (more or less) so learn from their mistakes.
How can I develop 'Search Engine Friendly' web app in GWT? Take an example of StackOverflow itself, it's a web app and should be SEO friendly allowing users to search from search engines. If someone wants to develop same app in GWT. How can one make it SEO friendly?
GWT contains a single HTML file. How can we allow its inner content to be visible in SE?
Any suggestion or comment, will really help. Thank you.
Make it crawlable ... this could be helpful http://code.google.com/web/ajaxcrawling/
As someone who has done this before, I want to warn you. If you are going to do a small application and want to be searched by google, great. http://code.google.com/web/ajaxcrawling/ will work. If you want to build a tool that includes bing, then you will be out of luck. You are better off breaking up your navigation with HTML and embedding your GWT in one of the pages.
Until all search engines can handle this, you will spend precious resources trying to work redirection and carefully reviewing search engine results.
When building an SPA, you don't have to do anything specific for Google anymore. Google's AJAX crawling scheme has been deprecated been Google.
You just have to make sure your website serves your users well, and that it is convenient to use. Google will crawl it in a way relatively close to your user experience.
Should you want to do more, however, you can use Prerender. I would recommend checking that article:
https://moz.com/blog/optimizing-angularjs-single-page-applications-googlebot-crawlers