Mobile app SDK : where to look? what to choose? - ios

I'm a software engineer looking for a multi mobile platform SDK (Surface Pro, Surface RT, iOS) to develop an application for merchant navy.
To make things short:
the mariners are application users and will carry a device all day long (12h) on their vessel in order to fill their daily check list.
The check list is uploaded to application on the mobile device at start of day.
To get this daily check list, the end user will connect the mobile device to onboard computer (USB,Wifi,Bluetooth?)
When the day is done, the end user will connect back to onboard computer and start pushing back the user data to a local database or storage.
Any tips would be appreciated on what mobile technology and SDK I should start on.

Look at MS visual studio - create a hybrid mobile -HTML5 / JS (AngularJS) along with WINJS to target mulitple devices

Related

Communicating with Google Home and Google Assistant with the Application We Developed Instead of the Smart Home Device

I work for a company that develops a smart home device.
The company is developing an android application for smart home devices it has developed/designed.
In addition, he wants to control the smart home devices he has developed with the Google Assistant.
We currently cannot use "Custom intents" for the "Voice-enable your Android app" feature. I wish we could add google assistant feature directly to our software independently (without any google home or nest affiliation)... (https://developers.google.com/assistant/app/custom-intents)
custom intents; It is not specialized for Smart Home and is not used in local languages ​​such as Turkish.
We are focusing on the Google Assistant feature for Smart Home. (https://developers.google.com/assistant/smarthome/overview)
Scenario 1: There is a way that Google communicates with the developer cloud via Access Token. (https://developers.google.com/assistant/smarthome/concepts/fulfillment-authentication)
Scenario 2: There is also a second way. Here google assistant is communicating with a google home or google nest device (rather than developer cloud).
(https://developers.google.com/assistant/smarthome/concepts/local) Obviously something strange is going on here. Google Assistant; It says it will contact google home. Is it the google home app installed on the phone he's talking about here, or a google home app like a speaker? Because at https://developers.google.com/assistant/smarthome/concepts/local#supported-devices, a speaker is shown as google home. If it's not talking about the google home app on the phone, or if it can't communicate with the google home app on the phone, it's not much use to us. Because the user may not have a physical google home product/device.
Neither of these scenarios fits exactly what we want to do. What we want to do is exactly this; Google Assistant should neither communicate with our cloud (to avoid lag) nor should it communicate with a google nest device (because the user may not have such a device). It should communicate directly with our app installed on the user's phone. Google Assistant or Google Home; should tell our application the purpose to be fulfilled. Let's send the request sent to us by google assistant or google home to our device or cloud (whatever options are possible).
Is there such a feature in the local home SDK of Google Assistant? Or is there another way google assistant can communicate directly with our app?
Because it is frankly very strange that google home or assistant try to communicate directly with a smart device when our app is installed on the user's phone. It can communicate with our cloud server, but why can't it communicate with our application installed on the phone?
Google assistant or google home; can communicate directly with our application installed on the phone while registering the first account instead of our oauth 2 server. Google is linking to our app instead of using oauth 2 directly. Our app connects to oauth 2 and gives a token to google. In other words, the user can make a sync with our local application on his phone. https://developers.google.com/assistant/smarthome/develop/implement-app-flip#implement-app-flip-in-your-native-apps
But I also think that in order to control smart devices, the user would have to communicate with our application installed on his phone.
Is there a way to this?
The platform does not support a way to directly control a smart home device through an app installed on a phone. Counter to your scenario, there are times when a person wants to control their device when their phone is not around.
Local Home SDK integrations are in addition to an existing cloud integration. This base cloud integration is needed in the cases that a person is not at home.

Alexa skills kit interaction from my iOS app

After reading Alexa Skills Kit docs, i have some doubts. What is meant by Alexa-enabled device here?(My custom home automation device support Alexa api or how to change my hardware to support Alexa api?).
This Alexa-enabled device will communicate with Smart Home Skill API and then AWS Lambda Skill adapter communicate with real device.
I am able to create Alexa skills (may be custom skills or Smart Home Skill). How to communicate with this skills from my ios app?
Any device with a microphone, a speaker and a network connection can interact with Alexa.
The developer portal is https://developer.amazon.com/alexa-voice-service
A good code base to start with a raspberry pi is https://github.com/alexa/alexa-avs-sample-app
Alexa Voice Service is currently only available in US. We are working hard at making it available for our customers in UK and DE.
I believe it's any device with Alexa Voice Services, which right now would mainly be the Echo and Echo Dot: https://developer.amazon.com/alexa-voice-service/what-is-avs
But in the US you can theoretically Alexa-enable any capable device with a microphone and speaker. It's launching later in the UK and Germany.
There are several Amazon products that qualify as Alexa-enabled. Some of them are the Echo, the Echo Dot, the Fire Tablet, in its latest versions at least, but might be available in older versions through software update, not sure. The Fire TV and the Amazon Tap are also Alexa-enabled.
To your point, only Amazon products are Alexa-enabled. I must say that there is a way to run some sort of SDK, perhaps with Alexa Voice service, and enable a Raspberry Pi or any other capable hardware to act as an Alexa-enabled device.
Of course, that doesn't include the iPhone. To interact with Alexa from your phone, you'd have to create an intermediary backend, be that in a Lambda function or in your own server.

How to detect Tablets in ASP.NET MVC Application

In ASP.NET MVC application how can I detect whether the user is using the Tablet device or the Mobile device?
Please I am looking for a no media queries solution.
There is nothing built-in for ASP.Net (you can test Request.UserAgent, but you need to know more info about specific device), you could detect the device client-side(with the help of something like web.wurfl.io) then parametrize your controllers, otherwise, if you are looking for a pure server-side solution, you could try WURFL => Wireless Universal Resource FiLe
WURFL is a Device Description Repository (DDR), i.e. a framework that
enables applications to map HTTP requests to a description of the
capability of the mobile device that requests the page. In this
regard, WURFL pre-dates the time when the DDR term was coined and
could arguably be caracterized as the first DDR. In the last year,
WURFL role has expended from being a DDR for mobile devices to being a
framework to detect every HTTP client worth recognizing.
Thanks to WURFL, mobile web sites and application can:
programmatically abstract away devices differences
avoid the need to modify applications whenever a new device ships
avoid the need to track new devices on the market
WURFL is a global database of all devices and the API to tap that
information programmatically.

How to sync multiple clients with a cloud database not platform specific

I'm sure our scenario is not unique but with the rise of varying platforms such as iOS, Android, Windows Phone and of course Windows, Mac, etc. there can be varying clients all sharing the same data. Our cloud database is SQL Server 2008 R2 and we are building an app for multiple devices. Even if just on iOS, we still have a single user with multiple devices (iPhone and iPad).
We need to build a sync system so a single user can keep Device1, Device2, and Cloud (SQL Server) in sync. Can anyone suggest a system for going about this? I can only imagine that we'll have to get a list of UniqueID's (GUID) and row versions (and/or LastUpdatedUtc time stamps) and pass a list to the cloud, do a compare with the cloud's data, then apply updates, return changes required for that device, and do this for each device. Is this the proper way to handle this? Then how do you build such a system that performs well?
I'm open to any suggestions on building a sync system, again for the scenario of one user, multiple devices (cloud, device1, device2).
Thank you.
have a look at the Sync Framework Toolkit
you should find samples there for WP, iPhone, HTML5, etc...

Ipad credit card reader: Getting the card data from the native app into a webview to send via standard http post

I"m starting work on an iOS application that will have an ipad work as a kiosk to purchase food and apparel.
Also we'll be setting the app up as a html5 webview with all the credit card processing happening on our own platform offsite. So the app opens, the user(checkout clerk) is presented with mobile site version of items for sale and they tap on then items to add them to the basket.
When finished a card is swiped and that information is sent from the native app to the html form which then posts the information to our credit card processor.
So my two questions are
1) What good credit card readers exist that work with the ipad and support sending unencrypted card data into a native iOS app.
2) How do I get the data from the native app into the html page to post it to our servers.
1) If you process unencrypted credit card data you need to be PCI-DSS certified. Providers such as payworks exist to help you get around this requirement.
2) You could package your Web Application as native app and integrate one of the existing iOS / Android SDKs.
Disclosure: I am a software engineer at payworks.
I implemented the app using an iMag card reader by idtech which plugs into the old iphone 30 pin connector. The documentation isn't great but their development kit does come with an example program to install on your iOS device, that you can use as an example.
I've also implemented it using the Shuttle card reader by idtech, which plugs into the audio jack similar to square and other popular platforms. This can also be purchased with a development kit and works on both iOS and Android platforms and works with newer iOS devices that don't have the old 30 pin connector.
The second question is quite a bit longer to explain, so I'll just say it depends on the device you're using, the firmware on it, and the documentation. Typically there will be some service running listening for card swipes and a notification will occur when a card is swiped that your app will have to listen for.
Not a card reader per se, you may want to check out card.io, as used by the PayPal iOS SDK.

Resources