I'm choosing a cross platform framework to create an app, React Native would be my first choice because I'm already proeficent with React and it will allow full code sharing with my Deno based back-end but here a problem arises, I don't have a Mac and it seems that the oly way to develop React Native apps without a Mac is by using Expo, sadly it can't be an option for me since I need have very strict privacy requirements to follow and by these the telemetry which Expo apps sends to Expo team is not acceptable.
Considering that my app would use very few device native features (just CRUD operations on application local storage and QR code reading) which are already covered by cross platform modules it would be possible to write my app on a Windows laptop, debug it on an Android device, build it using a free CI/CD platform which includes Linux and Mac agents to get working Android and iOS packages with can be distributed to the respective stores?
As you can see in React Native documentation, you can write code for both platforms on Windows machine, but for building an publishing IOS application, you must use Mac machine
A Mac is required in order to build your app for iOS devices. Alternatively, you can refer to our environment setup guide to learn how to build your app using Expo CLI, which will allow you to run your app using the Expo client app.
Read doocs here: Running On Device
Related
Can you publish an app made with android studio to iOS platforms? Is there a compiler that lets you compile your Android Studio app to and iOS platform working app?
It is not practical to run Android apps on iOS or the other way round.
Each operating system of each platform has different native components. The native Android or iOS app development requires using different programming languages, design interface, navigation, integration process.
The Android system uses the instruction set of the Java virtual machine called ByteCode. iOS, on the other hand, implements the compiled code.
Running Android apps on iOS is not possible because of the following factors:
Different lifecycle of apps in the system.
Different lifecycle of app screens within the app itself.
Different approaches regarding data access.
It is misleading to be told to use some kind of service or program to transfer your app to another platform with just a few clicks. Online tools like an Android to iOS converter do not work.
The only exception is the case if your app has been developed cross-platform from the beginning. There are some web-based libraries and frameworks which can help you develop hybrid apps. You can also have a look at flutter & xamarin but the app must be all done in that framework.
As far as I know, there is no something that can do that. Android is very different from IOS. If you want, there are a lot of tools that you can develop with them apps for both Android and IOS, with one codebase.
Some of these tools:
React Native
Flutter
Xamarin
PhoneGap
Apache Cordova
But if you will use one of these tools, instead of Android Studio for Android and XCode - It will not have the same performance as if it was written with Android Studio and XCode.
The reason for that is because the platform-specific tool (Android Studio / XCode) can talk directly with the Operating System, while the cross-platform tool (React Native / Fultter etc.), cannot talk directly with the Operating System.
Hope I helped you!
You can do this with Flutter.
https://flutter.dev/
They are different from writing standard android apps, and use Dart rather than Kotlin/Java.
It does have a good tight integration with Android Studio however.
I developed an android application with cordova and I want to convert it to iOS as well. Before starting my project I heard that we are able to convert same project with multiple platforms using cordova. But now I don't know how to convert my project to IOS. Can any one suggest good tutorial OR examples to do it.
And also mention what are all prerequisites to convert my android application to IOS using phone gap.
Suggest me some tutorials with examples.
First, you'll need an actual Mac computer. I suggest a MacBook Air, as they are cheaper than an iPhone. Then purchase an Apple developer license (USD 100/year) if you plan to submit this app to the App Store. Finally, you can migrate your Cordova source code to Xcode to compile the iOS version as explained in this guide:
Build Cordova iOS app from Visual Studio for Windows
The artice explains how to create a new app in Xcode and then export your source code from the Windows PC to the Mac. You can safely ignore all references to Visual Studio if you aren't using it, because it's not needed: Just follow the steps from the For your iOS app section.
I am currently learning mobile app development by using react native. I am using 'EXPO CLI' to simulate the code on my device/emulator. However, after reading the react-native official documentation, I realize that the steps required 'Android' folder in my project that does not exist because I did not run 'npm run eject'.
May I know is there any source on how to install my app into my device locally?
(Meaning no longer running the app through EXPO).
I'm trying to run a Chrome App on Android Mobile using the instructions from:
developer.chrome.com/apps/chrome_apps_on_mobile
From above URL, I could run the calculator app fine in Android Emulator 5.0.1 fine. No issues.
github.com/GoogleChrome/chrome-app-samples/tree/master/samples/calculator
Chrome App Calculator on Android Screenshot
Then I tried running the "Native Client" App on Desktop from example api directory of nacl_sdk:
developer.chrome.com/native-client/sdk/download
nacl_sdk comes with few examples including demo and core api examples. All examples works fine on Desktop. Out of them I took 'file_io' api example which runs fine after compiling (make). I took that folder and used the following command to create cca cordova app:
cca create FileApp --copy-from=/path/to/file_io/manifest.json
Then cd to FileApp and cca prepare
After that ran Android eumlate command:
cca run android --target=avd5
It processed everything fine, and I see no errors building this cordova app like calculator app. But, after 'LAUNCH SUCCESS' when the app launched the Android emulator crashed. The emulator windows closed.
I started the Android Emulator from AVD Manager, and after booting up Android I tried starting the 'File I/O' app, which in result showed me the message
"Unfortunately, File I/O has stopped." Screenshot
Does that mean the PNaCl/NaCl apps still are not supported on Android OS?
The NaCl app contains the .pexe file.
Is there any step in between I could be missing?
I'd really appreciate any help in this regard to test if I could run Native Client Apps on Android OS just like the Chrome Mobile Apps using Apache Cordova examples work.
Native Client (NaCl) isn't supported in Chrome for Android (and by implication the Chrome/Chromium based WebView).
See: http://developer.chrome.com/multidevice/faq
Q: Does Native Client work on Chrome for Android?
A: It does not, and we have no plans to announce at this time.
But then the OP read at: https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/faq.md#is-nacl--pnacl-supported
Q: Is NaCl/PNaCl supported [in Cordova]?
A: No. However, you can still compile and use native code
by writing a custom Cordova plugin.
And unfortunately the word native is an overloaded word with different meanings depending on context, so the OP started asking about the Android Native Development Kit (NDK).
The Android NDK which uses Java Native Interface (JNI) for C/C++ code to communicate with the Android Java framework. Typically Android apps only use the NDK if there is need to port existing C/C++ libraries or have a computational performance requirement like physics modeling or image processing.
When Cordova is referring to 'native code' its referring to code written in Android Java which would need to be bridged via a Cordova plugin to the JavaScript side.
And of course why to use any of the above frameworks/APIs depends on what the OP wants to do.
I'm looking for a way to develop a native android application ( with no server to run agents in ) . Is there a way to run an agent inside android and not like the jade fpr android tutorial chat application , where the platform is installed on server ?
Consider another Java-based agent platform such as Janus, where you can deploy and run agents without the need for a central server/container.
See this page: First Janus on Android Tutorial