With the 1st of August, new apps and updates are required to include 64 Bit native code, if the app ships with them.
Since there is a native JavaFX renderer bundled within each of this kind of apps, we are affected by this.
The Android Devloper Blogs further details this.
As far as I can read from the docs and from example code, the current versions (both 1.x and 2.x) of the javafx-mobile-plugin don't ship builds for this.
Is there a timeline we might expect this to be included into the plugin/port?
Related
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.
Is it possible to create a new iOS app with exsisting sources?
I am working with xamarin in Visual-Studio. I've got a project, an app that runs on Android devices. But can I make a new project for an iOS app with those existing sources? I have a Macbook that I can use to do this. I also have a PC with windows 10 on it. So the hardware/software requierments shouldn't be a problem.
Getting to the point..
Is it possible to transform the project from an Android app to an iOS app without writing any code extra? And how can I accomplish this, any tutorials that I can watch/read?
The code language is C#. The programs that I am using are Visual studio and the xamarin extention.
I've read something about Platform Abstraction and Divergent Implementation on the xamarin ducomentation page, but this couldn't fully answer my question.
Short answer: NO.
Long answer:
There are a quite a few cross platform developing tools out there. Xamarin, like the one you are using, or Cordova. They simplifies the development by "A LOT" but you can't just convert one app to another without writing 0 code. Some of the libraries in one platform do not exist in the other. So, the long answer is that cross platform shortens the development cycle as you do not need to start from scratch on other platform, that does not mean it can completely convert.
P.S. Youtube is your friend, but the difficulty of the transformation solely depends on the scope of your project, as they vary a lot.
I second the other answers.
Furthermore, I'd like to propose to have a look at Flutter.
Flutter is based on Dart language . The framework and your application get compiled from Dart to the Android and the iOS target platform.
Flutter is a product of Google and likely to get the base development environment for Fuchsia, a new OS from Google.
My own experiments with Xaramin ended up kind of frustrating. The development was slow, several times problems with Xamarin itself or plugins made me stop the effort.
At the other side, I created an app with Flutter quite fast. While Dart and Futures might seem at first quite different compared to other concepts/languages, after some time things turn out to be very natural and well designed.
While Flutter originally was based on Material design, Google added an iOS theme using CupertinoWidget.
A simply great feature is the enormous quick development turnaround time: The app under development very ofter adopts within just a second your source-code changes. Flutter/Dart hot reloads changed classes often instantly.
Android Studio is a great and free IDE for Flutter development. Plugins enhance to IDE with Flutter development tasks.
If you have android application written in Java you can use Migeran Analyzer to understand how much % of the code could be reused between android and iOS: https://analyzer.migeran.com/
Once you have the % you can use Intel Multi-OS Engine (free product) to create cross-platform application in Java: https://software.intel.com/en-us/multi-os-engine. It will have module with cross-platform shared code, android specific code module and iOS specific code module
Since both iOS and Android use ICU under the hood and provide some functionalities provided by ICU in their own API, Is ICU important in mobile app development. I am looking for best practices in mobile app development considering a scenario where i want to develop cross platform(iOS, Android) apps. Will there be any benefit in compiling ICU for both iOS and Android ( One i see is similar API's in Code base of app) and using them instead of using ios/android API.
How do app developers who develop both for iOS and Android go about their g18n requirements.
Thanks
I am developing a cross-platform (iOS + Android) app that uses ICU very heavily.
According to the team that create the data for the apps neither the Android or iOS built in versions implement enough of the features for us to use it.
So I have had to compile it for iOS and Android.
In iOS this proved to be relatively easy, I forked: https://github.com/zhm/icu-ios and followed the instructions.
In android I had to use: https://github.com/android/platform_external_icu4c and build it using the NDK.
I had issues building because the default Android.mk files don't work correctly and there are settings in Application.mk that need to be set, neither of which are mentioned in the help files.
On top of that the NDK doesn't let the .dat file be included in the library, so I needed to also mmap that.
I would suggest that on an app-by-app basis you decide if you can live with the built in features or not, because building the full version for Android is not pleasant.
I'm looking for a list of cross platform framework which have support for building native libraries in C++. Most of my legacy code base is written in C++, and I'd like to deploy my applications with the native code on the phone instead of using a client/server model. Wrapping it with networking will introduce latency, reduce performance, and degrade the user experience.
I've looked at some of the basic ones like PhoneGap and Titanium, but I can't from their websites if they support native, or how well they support it. I've looked at JUCE which is a C++ framaework, but it's not clear how mature it is.
what i've found so far
Juce: open source, small
Moai: buggy documentation
Marmalade: stable, mature
wxWidgets: beta only
update
A couple of years later, and it looks like Qt has gotten to the point where it may be the top contender. Other platforms which have matured in that time include Unity, and Embarcadero.
Check MoSync, you can build mobile applications with C, C++, HTML5, JavaScript. Check their website to find bunch of technical information.
I'm trying to repackage an Android app for Blackberry, as suggested here. The app has a native (NDK/JNI) library in it. When I try to build for the App World, I get several errors of the following kind:
uses-access-native:impact=5:com.myapp.MyClass
So on the face, it looks like NDK is not compatible with Blackberry, period. However, I could not find any official word on that. The list of known issues says that Google APIs are not supported, but not a word about NDK. What's the official line, please? Did anyone ever repackage an app with an NDK library?
There is a note here: https://bdsc.webapps.blackberry.com/android/apisupport
Under 'Unsupported Software Features'
•Apps that utilize native code bundled into their APK file
My understanding is that it's not possible to do this - as per the link paulkayuk posted, and also:
http://developer.blackberry.com/native/documentation/bb10/porting_from_android_ndk.html
However this story popped up in the news this morning:
http://www.engadget.com/2013/02/07/skype-blackberry-android/
which references:
https://support.skype.com/en/faq/FA10251/is-skype-available-for-blackberry-devices?frompage=search&q=blackberry&fromSearchFirstPage=false
which says:
If you have a new BlackBerry smartphone powered by the BlackBerry 10
platform, you will soon be able to download and run Skype on these
devices. We are working closely with BlackBerry to ensure the Skype
for Android app runs great in the BlackBerry 10 environment.
My understanding is that Skype on Android has a big native library accessed via NDK, so you presume for this port to have happened they are in the process of opening up a way for Android apps running on blackberry to access native code. ie. sit tight and watch this space :-)