I am raising this to just get inputs from community if there is any lib which I can use for integrating Amazon's amplify services in KMM? Also I have searched but there is no specific SDK or lib for KMM as of now.
So any input would be helpful on this.
The Amplify team is currently investing in Flutter as a multi-platform offering. Support for Flutter had been one of our top feature requests. Amplify Flutter became generally available as of February 15th, 2021. Amplify Flutter currently supports iOS & Android. Customers have additionally expressed interest for Flutter on the Web and on the Desktop.
We don't currently have any plans to support Kotlin Multiplatform (or Multiplatform Mobile.) That said, we are an open source project, and love to see community contributions. You could build something on your own.
To do so, I'd start by defining a Kotlin-language API surface for the library. You can probably use the Kotlin-language facade for the Android library as a starting point. From there, you can add platform bindings to Amplify Android, iOS, and JavaScript.
As a final note: the Amplify products are intended as a front-end framework. Therefore, it's unlikely that we we'll ever prioritize a full multi-platform build. But if we see enough customer demand, we could potentially add more explicit support for Multiplatform Mobile.
Source: I am an engineer on the Amplify team.
Related
I am trying to incrementally migrate two existing mobile apps (Android and iOS) to Flutter. The incremental migration is required because these apps have a huge codebase.
Since the two apps have the same business requirements (they need to do the same things) I want to start unifying the business logic (and maybe the repository logic) to flutter first (not the UI).
I have seen that it is possible to create a flutter plugin, which let you create an API in flutter, implemented with native code in Android and iOS. The communication between flutter and native code is permitted using "platform channels" (https://flutter.io/platform-channels/).
My question is: It is possible to use the same thing in reverse? Writing the API in Android/iOS code, integrate flutter as a gradle module/CocoaPods pod and use "platform channels" for communication?
I am looking for a Multi-platform mobile app development framework.
Key features i require are:
Support for Background Services for synchronization
Database support
Which frameworks are better suite for these?
My research comparing React Native and Xamarin so far says that react native used more often in industry and has more developer support available but officially they only have 'headless-js-android' for Android for running services. Xamarin on the other hand has the support for running services on both platforms.
I need some guidance from someone who has worked with both technologies.
Thanks.
The following is a list of multi-platform mobile apps development frameworks:
Adobe PhoneGap: https://phonegap.com/
Appcelerator Titanium: http://www.appcelerator.com
Sencha Touch: http://www.sencha.com/products/touch
Ionic: https://ionicframework.com/
Sinpalm: http://www.simpalm.com/services/sencha-touch-development-developer
Check them out and let me know which one got your attention.
This is an oversimplification on the way they work:
They allow you to create a user interface with HTML5 and JavaScript.
Then, via JavaScript injection, they provide you with a standard API framework.
This JS API framework is a common interface to both Android and iOS. Therefore, you only focus on coding against the JavaScript API framework. Behind the scenes, they have libraries that will execute this API in the respective device.
Most of them allow you to use the database and other features provided by the respective OS (Android/iOS). You only need to check which supports the feature you need better.
I have to use the native Android/iOS Estimote SDKs in my Nativescript app. The Nativescript app is based on Angular/Typescript.
Also, I require the use of a lot of the advanced functionalities that the native Estimote SDK provides, rather than the simple plugins available for {N} to search and range for beacons.
I would like to know the process to follow to be able to to integrate these SDK classes seamlessly into my app.
Read the documentation at http://docs.nativescript.org/ specifically the section on plugins; http://docs.nativescript.org/plugins/plugins
In addition there are multiple blogs out there (like mine) http://fluentreports.com/blog which have many in-depth articles on creating plugins.
Is it Reccommended to use JNI and C++ Code to make a shared library code between IOS and Android ?
I'am asking this because i think it not just saves us plenty of wasted time for implementing same logic in both platforms but also we will have the speed of a C++ core Backing the logic-process of our modules.
Update :
I ask my question in another way :
is it recommended to share a C++ Library for core functions of Android And IOS versions of a similar app ? or it would be better to completely migrate the codes to a multiplatform language ?
Since I remember my needs back then, I know that hybrid apps were not an option, Also JNI is not used for making cross-platform apps but the best use is to drive hardware peripherals via native UNIX scripts for Android or run c++ code on Android. So if we omit PhoneGap, Appcelerator, Ionic etc we will be facing several cross-platform technologies that have attracted many developer attentions so far.
Xamarin:
The framework was founded by the same people who have created Mono, an Ecma standard-compliant, .NET Framework-compatible set of tools. Xamarin offers developers a single C# codebase that can be used to produce native apps for all major mobile operating systems.
Unlike many other frameworks, Xamarin has already been used by over 1.4 million developers from around the world. Thanks to Xamarin for Visual Studio, developers can take advantage of the power of Microsoft Visual Studio and all its advanced features, including code completion, IntelliSense, and debugging of apps on a simulator or a device. Xamarin Test Cloud makes it possible to instantly test apps on 2,000 real devices in the cloud. This is by far the best way how to deal with the heavy fragmentation of the Android ecosystem and released bug-free apps that work without any major issues.
But being honest I didn't enjoy my first time face-to-face meeting with Xamarin. There were so many bugs and also speed and performance problems were bothering.
React Native
React Native is developed by Facebook and used by Instagram, Airbnb, Walmart, Tesla, Baidu, and many other Fortune 500 companies. It is an open-source version of Facebook’s React JavaScript framework. Because React Native uses the same UI building blocks as regular iOS and Android apps, it’s impossible to distinguish a React Native app from an app built using Objective-C or Java. As soon as you update the source code, you can see the changes instantly manifest in an app preview window. Should you ever feel the urge to manually optimize certain parts of your application, React Native lets you combine native code with components written in Objective-C, Java, or Swift.
The ones I mentioned above are not the only options, but since now they are the most used frameworks between programmers. But beware that Flutter is being publicly announced by Google in Google IO and maybe it may be going to create a hit soon.
Here is our case:
We exposed some POCO types using OData by ASP.NET Web api, mainly the schema of models. What we want to achieve is share these schema with iOS and Android clients. I am not familiar with both iOS and Android developments, isthere any methods let us develop just like normal .NET application style, add something like ServiceReference to the project, so that we can use those models? Or some other ways to allow make use of those stuffs.
We just focused on latest version of iOS (iOS 7 / iOS 8), and Android 4.4+. Any shared experience is welcome.
The following libraries are both for OData V4 only.
For iOS, there is the ODataCpp library owned by the same team who implements the ASP.NET Web API OData at Microsoft that you can try out. It's recently open sourced and will have its first binary release soon. It supports iOS as a target building platform and iOS apps can be built using it.
For Android, there is the Apache Olingo Java Client. It's still under development but according to the recent communications on developer mailing list, its first V4 client release will be very soon. You can have access to the source code on it's Git repository. It's been tested for building Android applications.
Also, while not a server side native application, a strong stop gap is the library Odata4js, which allows you to Prototype PlainObject Models, and use data-driven js libraries to manipulate/work with the data. Javascript would work on both platforms until official APIs release, and OData4Js works very well with other major releases such as Angular, jQuery, etc.