I have experience in iOS native develop. I am new to react native. before to start what are language i must be familiar?. like Java Script
I clearly depends on what exactly do you want to do.
Only React Native? Then it is just a mix of JavaScript and Node.JS. You don't specifically use HTML, but CSS helps because it uses the same concept and classes.
Do you want to also have a custom package? You will need some basic knowledge in Android/Java and iOS.
Do you want to add Unit Testing / Automation? Jest, which is basically JavaScript and Appium for example. The latter supports varios languages but you might want to tart with Python because you can run that in Cloud services for automation.
Then, are you going to build the backend too? NodeJS, Java, Net, PHP, Python, etc, etc, etc.
Related
as we know Appium has functionality to generate script for Mobile Testing. actually I want to to add this functionality in project. is it possible using java.
You have to implement the functionality by yourself, probably build a full app.
Appium-Desktop is s Node.js application, if you are familiar with js you can get idea for implementation from source code
The scenario:
For both iOS and Android, capture a "call-end" (hangup) event.
Use the captured event to trigger an options window.
What would the differences be to do this using Ionic, React Native, NativeScript, and Flutter?
Implementing a feature for Ionic, ReactNative, and Flutter are more or less same. You must probably write a plugin where you will have to implement the feature in native languages (Objective C / Java) and interface them with JavaScript for Ionic & ReactNative / Dart for Flutter.
But it's quite different with NativeScript as it has a JavaScript runtime that has 100% access to all device apis. You may write a plugin if you are willing to reuse the code or just directly access any api within your project using just JavaScript. If you use TypeScript, life will be even more easier with the typings for all the native apis.
Here is a video that briefly discusses the differences between these platforms.
I want to create automatic tests for an application written in react native. I want to test only logic (not the UI).
Jest seems to be great solution for unit or even integration tests which will be run on a computer. But I would like to test the application on a real device. I have a component without UI that does some logic, wireless communication with other devices etc. I need to test that communication especially, which cannot be done without a device.
Are there any frameworks or standard solutions to do such thing?
Ok, I did my research about testing react native applications.
At the moment ReactNative doesn't provide a platform independent test framework that could run integration (not UI) tests on real device. In fact there is a RCTTestRunner but it's functionality is limited and it works only for iOS devices.
Functional tests
There are multiple functional test frameworks. These tests mainly depend on UI components and are used for black-box testing of user interactions. There are two mature cross platform frameworks that could be used for that: Calabash and Appium. Appium seems to be better solution as it's a single tool for both platforms (Calabash is actually set of two projects for iOS and Android). Also Appium supports multiple languages (JavaScript, Python, Java, ...) when Calabash supports only Ruby.
There is also a Cavy project that looks promising but uses React ref generating functions in a hacky way and needs multiple modifications in the application code.
But all of that is intended to do only UI testing.
Workaroud solution
The solution which I used to test logic of the application (without being influenced by UI changes) is following. I created special version of the application (by creating new target) which have replaced the main UI component with test one. That test component runs on the top of the application. It is just triggering tests and displaying the logs. These logs are then read and parsed by functional test framework to produce the report.
Both frameworks are (hybrid) mobile app frameworks which try to access the native UI components with the JavaScript API provided by the different platforms like iOS and Android. They don't use any HTML and CSS for the UI design like e.g. Ionic do and they are not wrapper frameworks but actually a kind of cross-compiler frameworks. That's what i found out. BUT I didn't get the actual differences between these two frameworks. Why should i prefer one of these? Are they doing exactly the same job?
best regards, Tom
I know this is quite old, but I'll give my answer for the benefit of anyone else arriving here.
Full disclosure, I worked for Appcelerator from 2012-2019.
In short, they're both quite similar.
You write a specific flavor of JavaScript that includes custom objects
Your JavaScript code gets compressed, minified, etc. so it becomes the input to an interpreter that gets shipped with your app
When your app runs, it launches the interpreter which starts executing your code
At this point, JavaScript is being run in "native land", so the interpreter can act as a bridge between your JavaScript code and the native SDK
The result is a native app with access to features of the underlying platform
A "native app" shouldn't simply be defined as an app that runs natively, because that would make a PhoneGap app a native app.
A "native app" should be defined as an app that runs and behaves natively. That means, an app that abides by the native OS' ui/ux guidelines.
MAIN DIFFERENCES?
I'd have to say that the main difference is its internal design. Appcelerator started in 2007, when "mobile" was very young.
React Native was launched in 2015.
In 2015 mobile was already in full swing, and mobile OS' were pretty mature, so I infer that React Native's design benefits from all lessons learned by Appcelerator (and others).
As for which one is better, I'd say React, because Titanium is now dead.
I am trying to understand the "write once deploy anywhere" feature of Kony Studio. What about native code? I know that Kony added JavaScript support in V5 but as I understand it that is just for the Web-based app portion. Am I correct to assume that native code is still written with Lua and then generated for each platform? Do they convert Lua to Java, Objective-C and C# for the 3 main platforms? When debugging are you looking at Lua or the native language? - Thanks.
Kony embeds the google v8 js engine along with the native app. This will interprets the js code to native at runtime.
JavaScript is still used for scripting against the Kony API. LUA is not necessary for native apps. Remember that the API is an abstraction layer to the underlying native SDK - Kony is not a code gen tool.
Added to we can choose the developing language from javascript or Lua. If we choose Lua then instead of V8 engine it will be Lua Virtual machine that which is doing the interpretation.