Does Flutter Support iOS Features? - flutter

I am starting to work on one big project which includes Sirikit, Game Center, Fingerprint, health kit and home kit etc.
So my doubt is can I implement those features & other features which are provided by ios using the flutter..?

Flutter can't generate bitcode. So, it can't integrate features like Siri, interactive notifications, watchOS, tvOS, Today and other modern extensions.
It compiles like it was before 2015. Before iOS extensions. With same limitations.

Yes and no - you could definitely use some and probably all of those, but you'll have to write Platform Channels. I use fingerprint for example in my app.
There may exist plugins for some of the functionality - see the flutter packages page.

Related

Flutter Basics (write once, run anywhere?)

Hi stack overflow community,
I'm a novice programmer in high school and have never written an app for mobile devices before so please bear with me. If I was to write an app using Flutter, will I only be required to write the code once and then be able to distribute different versions of it (iOS, macOS, Windows, Linux, Android, etc)? Or will I need to make small changes for each version such as using XCode to create the iOS version and Android Studio for the Android version? I know this is such a basic question but I've spent a couple of hours looking this stuff up and I'm still confused. Any help would be nice.
Thanks,
Daniel
In a product development environment, after writing the cross-platform code with Flutter, there are some need-to-do tasks related to Native environment.
In the case of Android, there are several cases when you'll need to touch the Native level such as config Firestore settings, Social authentication (Login with Facebook for example), changing the launch icons/ splash screen of the app or publishing to app store, etc
For iOS, the same case apply as well. So I suggest you start with small steps to develop the app first, then when running into something that seems impossible with just Flutter code, there are tutorials and SO to guide you through. It might seem overwhelmed at first, but we are all on a journey, so no need to rush it ;)
You should make small changes too. For eg when adding launcher icons and splash screen you have to edit the respective native folders. When distributing for ios you need to manually customize its Runner from xcode. There are many library that support either android only or ios only. In that case if you need that feature you have to make changes in native code like java ans swift.
if you're creating your own native plugins, you will have unique code to write. But if you're just using things out of pub, almost nothing will require change (unless you are publishing to the store).

Compatibility of Flutter with Car Play and Android Auto

I developed an app on Flutter and I'm looking at a way to link it with Car Play and Android Auto. For my understanding Flutter is not compatible yet. Anyone know if it will be in the future (if yes, when we should expect this)? Is there any turnaround I can look into?
Flutter Apps are now compatible with Apple CarPlay!
flutter_carplay aims to make it safe to use apps made with Flutter in the car by integrating with CarPlay. CarPlay takes the things you want to do while driving and puts them on the car’s built-in display. Currently, it supports only iOS 14.0+.
Feel free to like, star, comment, share, and contribute to support more!
In pub.dev: https://pub.dev/packages/flutter_carplay
GitHub: https://github.com/oguzhnatly/flutter_carplay
Flutter has yet to have Car Play and Android Auto support as of this writing. As previously mentioned in the comments, it's best to keep track for its updates in this GitHub thread.
I got audio app working on carplay easily enough. Based on
https://pub.dev/packages/flutter_radio_player/example
And then using my apple developer account, setting entitlements to allow carplay, basically. I cam add details if requested. Also, I used a mac/xcode to check things worked etc.
Android auto I can't yet get working.. funny that!

GameAnalytics, validating in app purchases on Unity

I'm setting up for the first time GameAnalytics in my Unity3D project.
I'm try to figure out if there is a way to validate in app purchases for both android and iOS from it.
In the docs I found http://www.gameanalytics.com/docs/ga-data#business-event. I understood that you need to work with native sdks to get this feature, am I right?
Could it be an option to configure from the dashboard an android and an iOS game and then changing the keys in unity with precompilator instructions? (like #if UNITY_ANDROID)?
I am an SDK developer # GameAnalytics.
Yes.
There is a way to make the GA servers validate Android and iOS IAP purchases in business events. From Unity.
Short story
You need to send the receipt in the business event after the purchase.
You can read our complete Unity tech guide in the Github Repository.
Regarding IAP validation you should read this section.
https://github.com/GameAnalytics/GA-SDK-UNITY/wiki/Business%20Event
About the keys
You should create a game for Android and iOS in our tool at go.gameanalytics.com
Inside the Unity Editor you can add platforms (Android / iOS) and then add specific keys to each.
You can read more about the in-editor settings in the wiki docs as well. Including how to login and select games directly in the editor.
Let me know if you have any issues. You could also file a support case with our friendly support staff.
When you install the Game Analytics unity package, you are essentially installing the native libraries for each platform (Android, iOS, ...) located in the Plugins folder.
If you want to target multiple platforms in your code with an API like Game Analytics, I recommend you use the preprocessor tags as you mentioned since the functions from Game Analytics are platform specific.

What is the utilities of the airplay sdk as we have xcode?

Though we can develop the i-phone application in the X-code
Why we need to use the Airplay-sdk?
can anybody differentiate between them?
I use Airplay SDK (see www.immortalcode.com) and it works well. Their code has been evolving, but it is pretty solid now. The big advantage for me is to be able to keep my source code in C++, and to be able to use a single code base for multiple platforms. I have built multiplatform games (iPhone, Android, bada, Windows) all from Visual Studio on Windows. The main caveat with Airplay SDK is that you may not get access to all the functionality you would normally have on a given platform. In particular, you probably won't get the native UI look and feel, and you may not have important options like using the ad provider of your choice. My understanding is that they've recently made strides in opening up the full range of native APIs on iPhone and Android, but still I think there will likely be problems when it comes to certain highly platform dependent stuff. Again, working with certain ad providers comes to mind as the main example.
You don't need to use the AirPlay SDK. You can write an iPhone app without it.
Airplay is a cross platform development solution allowing you to write applications for iOS, Android and other smart phone and tablet devices.
It differs from Xcode in that Xcode is an Integrated Development Environment (IDE) with support for writing (mainly, but not only) Mac OS and iOS applications.
Airplay is a Software Development Kit (SDK). It is not in itself an IDE. You still need to use an IDE in order to write applications, and it appears that Airplay works with both Visual Studio on Windows and Xcode on Mac OS X.
It appears that Airplay uses C++ as it's main language, providing access to iOS APIs through a wrapper of some kind. It also appears to have its own UI library, meaning your app will look the same on all devices, but not the same as other apps written natively for each respective platform.
Airplay SDK is a C/C++ programming environment that supports multiple mobile platforms. It consists of several wrappers to native libraries for various mobile OSes and consoles ( Iphone, Android and Symbian amongst them ) and of a cross compiler ( gcc under the covers ) that integrates with Visual studio ( on Windows) and Xcode ( on Mac ). The wrappers provide an uniform programming interface among all supported operative systems. Basically you develop on your desktop and then you deploy on multiple platforms with a single click. The SDK is fair complete covering 3D and 2D graphics, a basic UI framework, sound and resource managment facilities for example. The main drawback is that multithread is not supported and that it may be problematic to use native features of a given OS. Also the GUI system doesn't provide out of the box the same elegance and look and feel one can found on the Iphone or Android. On Android, Iphone and Windows there is an extension mechaninms that allows one to link native libraries. I am using it to develop a 2d platform with Iphone and Android as the main targets. I found that the programming model proposed by Airplay suits a videogame very well but it may be inconvenient for GUI-heavy applications. However the framework is extremely solid and works well and I haven't found bugs so the code is well tested. If you are planning to develop a multi-platform game you should definitely give it a try. If you need to have more control on what happens under the covers and you would like to use native features I would also consider COCOS2D-X (http://www.cocos2d-x.org/) as an alternative.
The project is still immature and has a few bugs but I have tried it and I found it extremely promising. Moreover you have full source code: if you find a bug or need an extension you are free to provide your own solution.
Marmalade / AirPlay SDK will be providing access to native UI's in a forthcoming release. Check out their road map at http://www.madewithmarmalade.com/marmalade/releases-and-roadmap

Multiplatform development options

I have an application (actually a game) that I'm close to starting work on for iOS and the web, however I'd like to DRY up my code bases as much as possible so that I don't have to maintain so many aspects for platform portability. So essentially my two requirements are to run on iOS and the web, but I wouldn't mind it if I could also deploy it for Android as well.
What options exist?
If possible, which I am doubting at the moment, I have considered using Cappuccino (http://cappuccino.org/) to build out the app and then utilize NimbleKit for iOS compilation. Any ideas if this is possible?
What would work better if anything? Are there any frameworks in particular that would scale across platforms and mobile devices well + allow it to easily run on the web?
Also, Flash comes to mind, would that perhaps be best if developed properly such that it will compile over and not utilize non-compatible iOS functions?
The recently released monkey development framework deploys to both iOS and Flash:
http://www.monkeycoder.co.nz/
It's so new that I wouldn't necessarily recommend it, but it has a great pedigree: the creator made Blitz3D and BlitzMax before, and those were great game development tools.
That said, I would strongly recommend a combo like Corona for iOS and Flash for web, so that you're using optimal tools for each platform.
Check out Unity 3D. Works for iOs, Android, Web, Mac, and Pc. Not free for the mobile platforms, but it's worth a try.
You should try Titanium (it's free). You can use javascript and HTML5 to build your game and it can be compiled for iOS and Android. Since you will be using web standards to code, your application can be deployed for the web with few (or no) modifications.
You can use this project as a start point.