How does gboard app work in iOS? - ios

The gboard app available within app store for ios provides a custom keyboard that can be used to provide inputs to any text based application and runs smoothly with iMessages , messenger, whatsapp etc. It also provides advanced features like google contextual search within the keyboard that can be pasted across.
From an ios app development perspective, how does this work with other applications since iOS app development , cocoa touch architecture enforces application sandboxing where inter app communication is restricted. One can communicate only using url schemes or icloud, that too in a limited extent.
So how has been this application developed and which advanced features of cocoa touch has been utilised to develop such an app

Most likely it is a keyboard extension. Apple added this ability in iOS 8.
It is fully documented in the Custom Keyboard section of the App Extension Programming Guide.

Related

How to reduce my iOS app's bundle size?

I am working on an iOS app that integrates with multiple bluetooth devices (e.g. printers and barcode scanners). Each of the devices comes with it's own version of SDK and most of them just have objective-c/swift SDKs but not javascript SDKs.
Would like to find out what is the best way to reduce the app bundle size at the same time supporting multiple devices ?
Based on my investigations,
iOS doesn't allow downloading objective-c/swift code dynamically during runtime, hence the option of downloading the SDKs after the user having installed the app is ruled out.
Would like to get a feedback on the feasibility of the below solution. Also let me know if there is a better solution.
iOS version 8+ support embedded frameworks - Have separate iOS driver
apps for each of the supported devices which just installs the device
SDK as a shared embedded framework so that the parent app can
dynamically link to the shared embedded framework if one that matches
the connected device is available, otherwise force the user to
download the respective driver app.
This question has gone unanswered for a little while, so you may have already figured this out, but no, you cannot make shared embedded frameworks on iOS. Only Apple can do that. All of the frameworks you use must be either provided by Apple or embedded inside your app.

Can I integrate voice recognition feature in search widget in IOS as in google search bar?

Can I integrate voice recognition feature in search widget in IOS as in google search bar?
Apple Siri can only be integrated separately and not with the search widget??
Also for apple siri I got openEars offline framework which itself is 72 MB large making my app size huge. Any suggestions on this?
The dictation feature is ready to use when you install iOS 8. You don’t need to add a new keyboard, and it works in any iOS application. However, you can only activate voice dictation using the default Apple iOS keyboard – it doesn’t show up in third-party keyboards.
The feature also requires an Internet connection to work. What you dictate is recorded and sent to Apple’s server, and in turn it converts what you say into text on your device. The feature will also access the names and nicknames in your device’s address book for more accurate spelling of names.

Using twilio sdk for an iOS app?

I am planing to develop an VoIP iOS app and use Twilios SDK. I am making the choice to either use LiveCode, Appery.io, PhoneGap or build a native Objective C app. I am going to build the app for iOS, Android and HTML5 so the ideal would be to develope in JavaScript for all platforms, but as I understand the support for WebRTC is laking on the iPhone so the alternative for iOS is the native twilio SDK.
My requirements is:
be possilbe to use in iPhone 5 with iOS 7 be able to use twilio iOS
SDK´s voip functionality or twilio´s js SDK (if it is possible to
wrap a browser that supports RTC in the code?) be able to integrate
billing such as in-app payment or paypal with zooz or similar
communicate with REST API´s such as Amazon S3 or a node.js server
store temporary info in a SQLLite db when app is off line make fast
and responsive views (file listings etc) is very important
create cfuuid´s
I have seen several Twilio projects that use PhoneGap but none that are using LiveCode.
I have already built an iOS VoIP app in Objective C, but I want to be able to release it on several platforms also such as for Android and build a HTML5 app, without redoing everything.
This isn't really a programming question and should perhaps not be asked here.
You can create an external for LiveCode and quickly create an interface using the LiveCode IDE. This is probably a quick and easy way to make a working app. If you're starting with LiveCode but are experienced in Objective-C, creating an external won't be a problem for you.
LiveCode doesn't contain native iOS controls, which means that you have to emulate the GUI. If you use PhoneGap, you also will need to compile a plugin for PhoneGap using Objective-C, but you can use a framework, such as JQuery, to get the right GUI.
Either way, you will have to compile the SDK and you'll need to be quite profound in Objective-C.
LiveCode will meet all your requirements. However, Apple will deny your app if you use PayPal for in-app purchases. You'll have to use Apple's in-app purchasing feature. I believe this is possible in LiveCode now. I'm not sure how easy it is.
I'm not sure about file listings either. On iOS, you won't have complete access to all files on the phone. This isn't a LiveCode limation but a limitation of the OS.

HTML5 mobile app - when to simply use UIWebView and when to use PhoneGap?

I am a web developer who needs to build an HTML5 mobile app - which we will need to try and submit to app stores, including Apple's App store. Therefore, I need to somehow wrap my app into a native framework.
That being said, I don't have time to learn the nitty gritty of Objective-C and figure it all out.
I am trying to decide between using a service like PhoneGap, or simply creating a smaller native app with a webview that pulls up my mobile app from my site's server.
In this case, the only native hardware that my app needs to be in touch with are push notifications (probably through Urban Airship) and Geolocation (which can be accomplished via HTML5).
When is it wise to go with something like PhoneGap vs. simply creating a UIWebView, and vice versa? Which would you suggest in this case?
Apple is loyal enough to PhoneGap apps - almost no problems with approval on iStore. You should just follow Apple Human Guidelines and everything should be OK.
PhoneGap provides lot's of different and interesting features. Also it's cross-platform - works great on iOS, Android, WP7 etc. I think it's the best way to wrap your HTML5 and JS.
Talking about pushes - if you select phonegap, i recommend to look at pushwoosh service.

Enabling payments on the mobile web breaks our app in native iOS

Turning on "Enable payments on the mobile web" in the application settings prevents our application from showing up in the native Facebook app! Is this supposed to be happening?
We built the app in sandbox mode, and used FB.UA.nativeApp() to determine if we were in native. In the case that we are in native, we disable all of our Facebook credits buttons.
However, now our app is live and when we check the "Enable payments on the mobile web" box in the developer settings, the app disappears from native iOS and/or offers up an access error (everything fine in Android). As soon as we un-check the box, the app is back in action, but of course all of the credits buttons don't work in Android.
It seems strange that Facebook would keep us from using credits across all platforms with a single checkbox. Are we doing something wrong, or is this just what we have to deal with?
Looks like it's either/or.
"Accepting payments are different on iOS since Facebook Credits are not supported within iOS native apps.
On the mobile web (including mobile web apps linked from Android), you must use Facebook Credits.
On iOS, you must build a native app and use iTunes payments." https://developers.facebook.com/docs/credits/
You can't have an app that is native iOS and Android. (well you can, but as you saw, it's not going to work). You can have mobile Web that serves iPhone and Android, but the iPhone won't be native.
Thanks for the question, I was curious to implement, and wonder if this is a deal-killer for us, too.

Resources