What is the difference between React-Native-Windows and Electron? - electron

I'm using React Native to build Mobile Application but I get a request to build on both windows and suggested use react-native-windows. I'm very confused because react-native-windows too low questions on StackOverflow and I know Electron is very popular for build desktop applications. How do I should use for build Desktop application?

Electron.js use chrome engine for rendering UI. and use actual html elements for UI.
React-native-windows use native windows UI. so it's more performant and more light than electron.js
Both of them are Javascript Frameworks.

react-native-windows is Microsoft's framework for building native Windows apps.
Electron is a framework for building cross-platform desktop apps (Chromium WebView + Node.js).

Related

How to use Dart Flutter for desktop and mobile applications

Can you explain me how to use Dart flutter with just an ordinary desktop web site?
Let's say I have a website, which has a good responsive design, but I want to make it more handy for mobile users. So, I decide to use Dart, I create a server and then? Do I need to redirect users to f.e. m.mysite.com which is built on flutter widgets, but PC users will redirect to mysite.com? Also, there is an information that since June 2019 you can write desktop web application. What does it mean, we couldn't do that before?
As #Randal Schwartz noted, Flutter Web is in very early stages of development (alpha, I believe), meaning you should not roll with it in production. However, it is the only way to use Flutter to build websites. You can find it at:
https://flutter.dev/web
https://flutter.dev/docs/get-started/web
https://flutter.dev/docs/development/platform-integration/web
If you want to use Dart (not Flutter) in a website, you can try these. They are more mature than Flutter Web, but you'll lose "Flutter" features:
VueDart (https://refi64.com/vuedart/)
AngularDart (https://angulardart.dev/)
React-Dart (https://github.com/cleandart/react-dart) (This one is tricky!)
These are all ports of popular JS frameworks (Vue, Angular, and React) to Dart, so you can use them for responsive website design. Note that you might have to do some background research in the original JS framework, to fill in documentation.
Note: All of the above work on both Mac and Windows. Flutter Web/Dart frameworks are not platform dependent.
Flutter has primarily targeted the mobile platform. What is changing is that Flutter is also being developed for desktop and web applications. Not clear what you mean by "desktop web". Both desktop and web flutter are "not ready for prime time", but progress is being made rapidly.

Quality and complete PWA (Progressive Web Apps) with dart or/and AngularDart

Can I build a complete and quality PWA (Progressive Web Apps) using just dart language - or AngularDart - with no javascript prior experience?
Yes, you can build a PWA using AngularDart.
AngularDart is usually used for native apps and can be compiled into javascript. With tree shaking, type inference and minification, Dart can help you optimize your web app. Therefore it is suitable as a framework for Progressive Web App.
Here is another SO related post regarding PWA using AngularDart.
We need to get some documentation out for this, but we do have an example application:
Example: https://hnpwa.dartlang.org/
Source: https://github.com/dart-lang/angular/tree/master/examples/hacker_news_pwa

Ant Design antd vs antd-mobile for non-native mobile web development

Reading about Ant Design I am getting confused about which library to use for mobile web development. There are two libraries, antd and antd-mobile. While it is clear that antd-mobile supports react-native on iOS and Android, it is unclear which one is best suited for plain mobile (non-native / SPA) web development.
Reading the antd introduction you see statements like "Ant Design which is specially created for internal desktop applications, ...", while reading the antd-mobile introduction you will see "Support Web / iOS / Android platform (Based on React Native)"
From this I would think that ant is somehow not very suitable for web development other than web based desktop (i.e. Elektron) apps.
But trying to build a normal web app with ant-mobile I couldn't get it to work. For example the Button is showing but DatePicker is not. Switching to ant everything seems to work fine.
Am I right to assume that for any non-native mobile development you need to use ant instead of ant-mobile?
If so, what is this supported "Web" platform that antd-mobile is mentioning?
From my experience:
Antd:
Intended for full browser web only (or electron) development, they are no mobile first design, some cases you have to tweak to make you web page look good in mobile.
Antd-mobile:
Antd mobile exports 2 versions of components, the web one (which uses DOM) and the react native version (uses View, Text etc...)
Web version: You can think it's like jQuery Mobile, Sencha Touch etc, it's intended to build pure mobile web page/application, the application that you are going to see in a mobile browser. example, go and open facebook.com, amazon.com with a mobile browser (they look really different then the desktop one).
React Native version: You will use this to build a Mobile App (a hybrid app) that sits in Google Play store/App Store, an app that needs to be installed.
Hope it helps.
If I made mistakes please let me know.

Clojurescript: how to make a web app version coexist with desktop electron version

I have created a leiningen-based clojurescript webapp.
More specifically, I am using the re-frame template: https://github.com/Day8/re-frame-template.
I wonder if it is possible to compile this project into an electron-based desktop app? I noticed there are electron templates like https://github.com/Gonzih/cljs-electron, but I have no idea how to make the web version coexist with the electron version.
Is this even possible?
Update:
To make my question more clear:
How do you make the electron-based version and web-based version share the same code base? Is there any examples for doing so?
I've shipped re-frame apps that run in Electron, so this is certainly possible. We host our JS on the web, so we could serve our apps as webapps, we just choose not to. I didn't work on the Electron setup, but any ClojureScript/Electron template should get you started.
Your question about web versions coexisting with Electron isn't very clear. You can either serve your app from the web and treat Electron as a browser, or you could ship compiled ClojureScript and run it locally.

BlackBerry J2ME vs HTML Javascript framework like PhoneGap

A client wants a blackberry application for listening live radio for his radio station. We focused on iPhone development. I know Java language have done several projects. However haven't tried yet J2ME. Which do you recommend J2ME or HTML Javascript framework like PhoneGap or any other cross platform framework? What are the advantages and disadvantages of them? Thanks.
If you are comfortable with Java Swing or other Java UI programming then going with native is probably a great idea.
If you are more comfortable with HTML, JavaScript and CSS then use PhoneGap. If you are planning on deploying your application to more than one platform then definitely use PhoneGap. PhoneGap also allows you to write native BlackBerry Java code and integrate that with the HTML / JS code in case the specific APIs you need are not exposed.
With the imminent release of BlackBerry OS 6 things should get a lot better on that platform for both PhoneGap (since the browser is now WebKit based) and for native Java programming.
There are many other comparisons between PhoneGap and X on stackoverflow, though most other cross platform frameworks don't support BlackBerry.
J2ME: Blackberry supports this (and is fact still the BB's core), however it's a rapidly aging platform. You can't do many interesting things in BB without the proprietary APIs.
Phonegap: Haven't used it myself but I've heard so-so things about it. High footprint, lowest-common-denominator etc.

Resources