Browser <-> Client Hardware API? - api

Are there any initiatives to implement/agree upon a standard API for connectivity between web browsers and client hardware.
Example: The iPhone has a GPS/Camera/Accellerometer in it. It'd be very cool if my web app could communicate with them (rather than me having to write a thick ObjectiveC application).

The closest thing I've seen to that is the Android phone API, which lets your programs access its hardware (relatively) painlessly. Google's pushing for it to become the new standard, but its hardly the same thing as a web-app (which, by most definitions, runs entirely in your browser?).

The upcoming version of FireFox has an API to read your lat/long off a GPS device.

To add to my own question; Yahoo provides a geolocation service called FireEagle that could act as a mediator and provide similar functionality.
In essence the phone communicates with a central Yahoo server updating its location. Your web app can then determine your approx location from that central server.

Related

Minimal cross-browser web-push services/libraries for saas product

I am looking for services/libraries to send notifications on browsers, for a SaaS product(would be installed on many websites). I have following needs
API access to send push notification from server individually. (dont need segmentation, channels, analytics... all those things)
Simple setup in minimal time, not different code for different browsers.
Support for as many browsers as possible. (I saw some services support safari too)
Not very costly, given that I dont need complex features, just 1-1 send via API.
I have tried few of services, no libraries. and my comments are
FCM, pushcrew: doesn't support safari.
onesignal: looks like their privacy policy says they will collect data of my visitors and use it make their profile and use it serve them better ads.(it is like selling data)
roost: little bit expansive just for notifications(offers many other features)
izooto: limits on number of websites + very costly just for notifications.
You can try Pushpad (I am the founder).
It offers a REST API and libraries for Ruby, PHP, Node.js, Python and Java
It has features explicitly designed for web apps. For example you can easily target specific users in a safe way
It offers a unified interface to all browsers and web push services
It supports all the browsers that currently support the Push API and also supports APNs for Safari
We don't collect and resell data - it's a key point for Pushpad
We support multiple websites and subdomains
Pricing is based on the number of notifications sent

Is MBaaS specifically for Hybrid applications or can also used for Native Applications?

I am researching MBaaS (Mobile Backend as a Service) and what its purpose is, for school. So far I gathered that it is basically a resource that developers can use so they can create the back-end code one time, rather than separately for each device - this way the focus can be more on the front-end of the development.
So my initial thoughts would be that this tool can be used only in the creation of Hybrid apps, however I'm having difficulty finding information to back that thought up. So can MBaaS be applied to Native apps also?
If the sense of meaning I've gathered about what MBaaS is used for is wrong, making my original question void or not applicable, a thorough but simple explanation, of what exactly MBaaS does would be very much appreciated.
MBaaS is a service that can be used by all – companies that are big to start ups and solo developers.
Mobile app development remains fun when it is about designing user interfaces, engineering social communication among users or bringing in stickiness. The Backend infrastructure plumbing is too time consuming and less rewarding. Worrying about database scaling, thread locking, persistence, user registration handling, messaging and pushing notifications is not fun. They are necessary evils that have to be taken care of to launch an app. The Baas paradigm has definitely made app development much easier and fun. Hence MBaaS services definitely present a powerful case for quick adoption.
Built.io Backend is an MBaaS provider. It is client platform agnostic. It provides platform-specific SDKs (iOS as well as Android) for native app development, and Xamarin and JavaScript SDKs for hybrid app development.
Coming back to your question. MBaaS can be used to develop native as well as hybrid applications. The services is not limited to a platform or any other technology.
PS: I am employee at built.io

Google Analytics in iOS Embedded Framework conflicts with hosting app?

I am building an iOS 8 Embedded Framework which will be available to our clients to integrate into their own apps. I need to track events occurring within the code of the framework, so I have added the google analytics sdk to the framework.
However, if our client is also using the google analytics framework, I run into duplicate symbol erros.
As a workaround, I have use the Google Analytics Measurement Protocol, and built the url myself for tracking events.
It was working for a while, but then stopped - I believe the issue had something to do with the Anonymous client Id parameter which needs to be properly generated unique for each device (I was using a constant value being sent every time to google's servers) ? I think?
Do I need an objective-c equivalent of creating the anonymous client id?
I've also had a look at a Cocoa Wrapper for Google Analytics Measurement Protocol but its a bit outdated, and unfinished.
How do I handle this properly and professionally? I need to track google events without causing a headache for hosting applications of my framework?

IBM worklight for developing static websites

I am new to Worklight and am currently doing proof of concepts to understand the features and strengths of the platform to create mobile web apps, hybrid apps and native apps.
Can IBM Worklight also be used for developing static information websites for multiple mobile devices?
Even if all you want to do is serve dynamic content form your server to the mobile device there are some advantages to use Worklight, for example by wrapping your site in a hybrid shell you can gain the presence in application stores (Apple iTunes and Google Play).
You can check "Module 45.1 – Worklight App as a Container For Server Generated Pages" ftp://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v505/Module_45_1_-_Worklight_App_as_a_Container_for_Server_Generated_Pages.pdf for more information about how to do it.
If you will not use your static site as the resource of the content but will use the Worklight application you will have a few advantages
1) Will work offline
2) Faster response time (no round trips (HTTP requests) to get the whole HTML, CSS, JavaScript, images)
At the end of the day Worklight application are for applications, where there is a interaction between backends and the client and usage of device capabilities (like location, camera, etc.) and not only static content.
Can it be used to create static sites? Yes. Is that a good use of the software license? Probably not. There is a lot more power in Worklight than just creating a static site. I would suggest really understanding responsive web design and using that to create your mobile friendly sites.

Can I create a Hangout "client" program? (kind of Google TalkAbout)

As stated in the Google Talk for Developers site, you can use the provided APIs to build a client that connects to the Google Talk service.
I would like to know if it's possible (or it will be in the near future) to build a similar client to the google hangouts.
What we pretend is to build something similar to cloud print, that provides printing services to the cloud, but for audio/video streaming: a camera and microphone would replace the
printer.
Thanks a lot.
Talk and all the XMPP stuff is going to be put down soon.
The new Hangouts infrastructure is proprietary. It only has API to integrate Hangouts into web pages and applications, but no API or protocol to create an alternative Hangouts client software.
https://github.com/tdryer/hangups is a library that does exactly that, with a command-line client for Linux.
https://github.com/xmikos/qhangups is a PyQt-based cross-platform app that aims to provide an open-source alternative to the Chrome-based official desktop app. Unfortunately it's not working at the time of posting, but the author is investigating the issue.