EasyAR is a cross-platform AR SDK. The following OSes are supported
Windows 7 and above (7/8/8.1/10)
Mac OS X
Android 4.2 and above
iOS 8.0 and above
More about the latest version of Android and iOS,
EasyAR SDK is compatiable with Android 9.0 (Android P), the latest version of Android at the point of EasyAR SDK 3.0 release
EasyAR SDK is compatiable with iOS 12, the latest version of iOS at the point of EasyAR SDK 3.0 release
Generally, EasyAR do not rely very much on system APIs, so if there are newer version of Android/iOS release, EasyAR will most likely work smoothly on those systems.
Windows: x86, x86_64
Android: armv7a, arm64-v8a
About Android arm64-v8a¶
EasyAR provides arm64-v8a binaries starting from 2.1. You should decide whether to use it or not.
EasyAR 2.0.0 and previous versions do not provide arm64-v8a binaries, but that should not prevent you from building a general-purpose application for Android.
If the client Android system have 64bit subsystem available on arm64 chips, Android will check for the folder with the name of arm64-v8a and if that is available inside your apk, the system will use the 64bit binaries for all native libs.
So, there are two options for arm64-v8a binaries provided by EasyAR or other third parties or yourself,
Remove all arm64-v8a binaries, and remove the arm64-v8a folder. In this case you will lose an opportunity to optimize certain features with arm64 architectures, but all functions should still work, because almost all Android devices do not drop armv7 compatibility at this time. This choice will give you a benefit for smaller size of apk.
Make sure arm64-v8a binaries for EasyAR and all other libraries are available in your apk.
For EasyAR 2.0.0 and previous releases, you can only choose option 1) because no arm64-v8a binaries are provided by EasyAR. But for 2.1 and later versions, you should make your own choice with some trade-offs.
Please note if you are an Android ROM developer or working on system level or SOC level, or if you are working on some customized devices, the above description may not apply. And usually you would know better about your requirement.
For Unity, Android arm64-v8a is not supported by mono. We have put extra binaries for arm64-v8a in the Unity package, you can use that if you enabled IL2CPP.
These language bindings are provided by EasyAR SDK by default.
Windows: C, C++17, traditional C++, C#
Mac: C, C++17, traditional C++, C#
Android: Java (also works for Kotlin), C, C++17, traditional C++, C#
iOS: Swift, Objective-C, C, C++17, traditional C++, C#
As EasyAR has a C API, you can always write your own API bindings for other languages.
Swift API for iOS¶
EasyAR SDK Swift API for iOS is compatiable with Swift 4 and Swift 5.
At the point of EasyAR SDK 3.0 release, the latest version of Swift is Swift 5.
EasyAR SDK Swift API is provided in source code for the best compatibility.
3D Engine Support¶
More in future (build-in and external)
EasyAR supports Unity 5.6.5f1, Unity 2017.4, Unity 2018.4 and Unity 2019.1.
iOS: IL2CPP is supported since EasyAR SDK 1.0.
Android: IL2CPP is supported since EasyAR SDK 3.0.