Electron and Cordova for Windows build [closed] - node.js

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
Electron can allow to develop desktop applications (.exe) using JavaScript, HTML and CSS. It is based on Node.js and Chromium
It seem I could also do the same using Cordova but what Cordova couldn't do that Electron can (In term of desktop applications)?
I need to build an App that can do full screen, use AppCache (manifest) and store data using IndexedDB. It need to work well with Barcode Scanner and Serial Port communication (eg: https://github.com/voodootikigod/node-serialport)

Apache Cordova is a platform for building native mobile applications using HTML, CSS and JavaScript.
It seems like the main difference is that Cordova targets mobile platforms and apps first and foremost, while Electron is primarily focused on desktop platforms and apps. Cordova does appear to support Windows, Ubuntu, and OS X desktops to some extent, however they do mention the following in the OS X repository:
Note that the current focus of this cordova platform is to provide kiosk-like applications for OSX, that usually run fullscreen and have little desktop interaction. So there is no direct support for menus, dock integration, finder integration, documents, etc. Think of it as a mobile app running on a very big screen.
It also appears that Cordova's plugin system is not directly compatible with regular NPM packages and native NodeJS addons, so you will probably have to create some sort of plugin wrapper for node-serialport before you could use it in a Cordova app, or perhaps use an existing plugin.

Return on experience: I have built a mobile app with Cordova which is great for Android and iOS. Unfortunately when I wanted to deploy the app on desktop, I discovered a really poor support of these targets (missing basic plugins, limited configuration).
Conclusion: Electron seems to be better for desktop apps.

Related

best practises for working together on an android project [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
what programs, methods should you use if you want to program with a friend on an android project like a company does?
are there any built in methods? or should you use a third party platform?
Your two tags already address everything needed to synchronize development between multiple developers. Android Studio for the development and git/Github for sharing a codebase. If you don't know how to use git, Github has a good getting-started guide available.
Using git with Android Studio is very easy. Android Studio will usually auto-detect a git repository when you start out, and it has its own built-in version control tools (which are compatible with git). If you don't want to use the built-in tools, you can always use the command line git tools, or Github's desktop applications.
Beyond an IDE and a way to sync code, the rest is up to you. Professional development teams have tons of collaboration tools they use, but any good teams works because of the people, not the tools. You might check out Trello for tracking to-dos and project details, but there is plenty out there, and the right answer is to try things and see what works for you.
You don't need any third party software for this. It's time for you to learn version control. I use git for version control and github/bitbucket for hosting.
Once you have a repo hosted in either, you can add members in that repo.
You can then have a local working copy of the project, preferrably work on different branches based on features or issues. You can then review each other's work before merging to the main branch.
Android studio has built in plugins for git integration.
Now this is just a overview. Read Git scm documentation, set up some dummy projects and start exploring the features.

JavaFX - can it really be deployed in a browser? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I have done some research on JavaFX over the last year, and even built some basic desktop apps with it.
It's described as being used to create RIAs (Rich Internet Application).
http://en.wikipedia.org/wiki/Javafx
But can it really be deployed by a web browser? I have only deployed it via an executable JAR file.
How easy is it to deploy via web browser? Does it work? Does anyone have experience with this?
http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm
Update for the March 2018 Java Client Roadmap
I encourage readers interested in this question to review the following Oracle Whitepaper:
Java Client Roadmap Update
The above paper outlines the official Oracle position on related technologies (JavaFX/Swing/AWT/Applets/WebStart), the dates until which it intends to support those technologies and which of those technologies it intends to transition to open source development projects separate from the JDK and JRE.
Update for Java 9, Oct 2017
According to the Java 9 release notes:
Java Applet and WebStart functionality, including the Applet API, The Java plug-in, the Java Applet Viewer, JNLP and Java Web Start including the javaws tool are all deprecated in JDK 9 and will be removed in a future release.
So, for Java 9+, deployment of JavaFX in a browser using a Java plug-in will only be possible using deprecated technology. Oracle notes in another part of the Java 9 release notes:
Deprecates the Java Plug-in and associated applet technologies in Oracle's JDK 9 builds. While still available in JDK 9, these technologies will be considered for removal from the Oracle JDK and JRE in a future release. Applets and JavaFX applications embedded in a web page require the Java Plug-in to run. Consider rewriting these types of applications as Java Web Start or self-contained applications.
Note: Java Web Start isn't really an alternative as that is also deprecated (anyway, it's different from an application embedded and rendered within a browser page). Also note for those who wish to use Web Start, even though it has now been removed from Oracle JDK 11+, it is available as open source, info on this is at OpenWebStart.
As an alternative which offers similar functionality, consider something like jpro, which deploys JavaFX applications in a browser without a Java plugin (jpro is currently only in closed beta, so it is not a viable solution as of October 2017, but maybe someday in the future...).
For now, I would recommend that the best way to deploy JavaFX applications is as self-contained applications, running outside a browser.
Previous answer for Java 7 and 8
JavaFx - can it really be deployed in a browser?
Yes, JavaFX applications can be deployed so that they run inside a web browser hosted html web page.
The technology which allows this to occur is the Java Plugin. This plugin is currently a NPAPI based browser plugin solution. The Java Plugin is shipped with the Oracle Java 7 Runtime Standard Environment.
Not all browsers are supported, only those listed on the JavaFX Supported Configurations page.
How easy is it to deploy via web browser?
The easiest way to deploy a JavaFX project in a web browser is:
Create a new JavaFX project in NetBeans.
Develop a simple HelloWorld App.
Follow the instructions for Deploying your first JavaFX Application.
This is not difficult (in my opinion).
Alternatively, follow instructions on the detailed reference for Deploying JavaFX Applications (or use 3rd party tools). For many projects, using a tool other than the NetBeans IDE to perform packaging is a better approach. However, it is generally easier to let the NetBeans IDE handle deployment packaging tasks for you.
What follows is not related to answering the original question, but provides some opinions and information requested in comments on this answer.
Some Advice
There are pitfalls to deploying Java in a browser. I encourage you to do your own Google research on the subject.
In my mind, based upon the current JavaFX 2.x deployment model, for most application types that require a browser as the primary runtime container, using JavaFX is not an appropriate solution.
Examine the deployment and runtime requirements for your application. Based on your requirements, and knowledge of the JavaFX browser based execution model, decide if a browser based deployment using JavaFX technology is the correct mechanism for your application.
A couple of potential difficulties for browser embedded JavaFX applications
Some important browsers (e.g. Internet Explorer 10, iOS Safari and soon Desktop Chrome) don't permit execution of plugins using the NPAPI currently used by the Java browser plugin => some of your target users may be unable to use your application.
With a browser embedded application, you don't have complete control over the runtime on which your application executes (browser + Java runtime + plugin interface) => an application which was working when first installed may stop functioning as expected after an update to these runtime components.
Deployment Alternatives
If a browser based deployment model is not appropriate for your application, there are other ways to deploy JavaFX applications (e.g. WebStart, stand-alone jars and self-contained applications).
JavaFX - can it really be deployed in a browser?
No, not any more.
The answer used to be yes, as given in this answer, although even in 2013 when that was written the writing was on the wall. However, here in 2016 the answer is no, it cannot. Modern browsers essentially don't support NPAPI any longer (Firefox does for Java, but only until the end of the year), and NPAPI is required for the Java plugin.
As of 2016 you can use jpro without any browser plugin. And it even runs on mobiles.
Edit 1: The project is free for non-commercial or open source projects. A "hello world" can be found here
I found solution by chance here.
what was missing in my web project.
I must add this to web.xml file :
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>

Emulate/Simulate iOS in Linux [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I'm developing a web app that apparently is having problems in iOS devices. The problem is that I don't own an iOS device and I develop in Linux Ubuntu. I'm looking for a way to emulate/simulate this OS in Linux (especially the browser), but haven't found anything.
So far, what I've found is the iOS SDK's Simulator, but that is meant for the Mac. And also some emulator for Windows. Has anyone done this before?
The only solution I can think of is to install VMWare or any other VT then install OSX on a VM.
It works pretty good for testing.
On linux you can check epiphany-browser, resizes the windows you'll get same bugs as in ios. Both browsers uses Webkit.
Ubuntu/Mint:
sudo apt install epiphany-browser
BrowserStack.com
On this site, you can emulate a lot of iOS's devices online.
Run Ripple emulator(retired as of 2015-12-06) on Chrome
Run iPadian on WineHQ
Run QMole on Linux or Android
Run XCode on PureDarwin
Maybe, this approach is better, https://saucelabs.com/mobile, mobile testing in the cloud with selenium
You might want to try screenfly. It worked great for me.
As far as I know, there is no such a thing as iOS emulator on windows or linux, there are only some gameengines that enable you to compile same code for both iOS and windows or linux and there is a toolchain to compile iOS application using linux. none of them are realy emulator/simulator things. and to use that toolchain you need a jailbreaked iOS device to test binary file created using toolchain. I mean linux itself can't run the binary created itself. and by the way even in mac simulator is just an intermediate program which runs mac-compiled binary, since if you change compiling for iOS from simulator or the other way, all the files are rebuild. and also there are some real differences, like iOS is a case-sensitive operation while simulator is not.
so the best solution is to buy an iOS device yourself.

Create installation package in MonoDevelop [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
How do you beta test an iphone app?
How can I create an installation package for my iPad application so I can give it to my client so he can install it without my intervention?
There are a couple of ways to install iOS apps
Enterprise distribution
App Store distribution
Ad-Hoc via iTunes
Ad-Hoc via wireless
Excluding jailbroken devices, those are the only ways you can distribute an app.

IDE and Debugger for node.js [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am going to start building project in node.js (was working in PHP before), What is the IDE, Debugger and Helping Tools for node.js, to help improvement while coding ?
There are several IDEs which support Node.js natively:
Desktop-based IDEs
WebStorm - popular and extremely powerful IDE for coding web applications. $100 for commercial license, $50 personal, $25 academic, free for open source developers upon application approval. Can also debug Meteor.JS applications.
Komodo IDE
Cloud9 Local - You can install a local copy of cloud9 on desktop as well and work on a local directory as workspace, follow the instructions on github page. Be sure to disable incompatible plug-ins from config. It provides proper debugging as well.
Cloud-based IDEs
Cloud9 IDE - cloud-based IDE with native support for development of Node.js applications including debugging and other features.
Koding Koding offers you a free rootable VM with Node. Also you can work on the same code with your friends.
Other than these two you can use almost any code editor/IDE which simplifies JavaScript based development in general (for example with syntax highlighting, autocompletion or similar stuff) and use node with its built-in V8 debugger.
Microsoft just launch a cross platform IDE "Visual Studio Code" in Windows, Ubuntu and MacOSX. It could debug node.js. Check detail here.
Koding is another good choice. It comes preinstalled with Node.js, Vim and Emacs, has a great community of developers, among many other things. Another few notable features are:
Free virtual machine (VM) with Ubuntu, root access, apt-get, and many commonly used tools
Built-in Terminal with 256-color support
All languages, databases, and command-line tools are supported
Various file upload options such as Drag & Drop, Dropbox, Clone from Github, FTP and the ability to access them using SSH
Real-time code and terminal collaboration with integrated chat abilities
Visual Studio now supports full dev lifecycle for Node.js if you install the Node.js tools, linked below.
Allows for full debugging, intellisense, color coding, and more.
https://nodejstools.codeplex.com/
vim and unix are your IDE.
If you want debugging then there is node debug foo.js or ndb or node-inspector or use the V8 Debugger.
Another option could be Netbeans with the NodeJS tools (even though I'm not using it anymore these days since I've been using JetBrains products now to be honest).
What it gives you:
A Node project type
Clickable stack traces in the output window
A run with node action on Javascript files (and of course, the project)
Integration with Node Package Manager (npm) and a slick little UI for adding libraries
GUI for editing package.json files, and generating their standard contents
Ability to store machine-specific command-line arguments (excluded from version control if you use NetBeans' version control).
Ability to download Node's sources so the highlighted stack traces point somewhere
http://timboudreau.com/blog/read/NetBeans_Tools_for_Node_js
Also NetBeans 8.1 and 8.2 seem to have brought some features for Node.js developers (see here and here).
Eclipse is a good IDE for JavaScript.
This page https://portawiki.abnoctus.com/view/NodeIDE.html
details mixing eclipseJS with the google v8 debugger and a few node specific plugins
http://code.abnoctus.com/publish/binaries/node-launcher/
To build an IDE with support for editing JS with syntax highlights and some degree of code completion, executing node from the IDE, debugging in the IDE, unit testing with nodeunit and fetching dependencies via NPM.
I've tested several IDE's to develop and run node apps. But I'm feeling very confortable with Microsoft WebMatrix 2.0. It's a nice lightweight and free IDE that you can run Node. There's some templates for Express framework to get started. And you can run nodejs processes through IIS Express.
Nodeclipse has chromedevtools fixed for Node.js debugging.
Enide Studio 2014 comes with Nodeclipse, JSHint-eclipse, AngularJS and more plugins
(source: nodeclipse.org)
(source: nodeclipse.org)
http://www.nodeclipse.org/enide/studio/2014/
Personally, I'm partial to Cloud9's IDE though they've had a few issues lately with various upgrades, and the growing pains of online systems can be an issue.
WebStorm 4 is another option, though I haven't tried it, I did try the plugin in WS3, which wasn't too bad.
From Microsoft (of all places) there's WebMatrix 2 from Microsoft that seems to support Node.JS pretty well. I have discovered that you can actually edit node based js files within the Visual Studio 2012 beta and get intellisense/autocomplete for node scripts probably from webmatrix's developments. I've been using node as a build step for CSS/JS processing, and it's been working well for me.
Aptana Studio and others seem to be scrambling to add proper node support. Right now options are relatively limited, but getting better.
What framework are you using for the frontend? If you're already familiar with Node, you might as well try the open-source and increasingly popular Meteor.JS framework. Check out MeteorPad for literally a one-click IDE for Meteor apps.
You get a virtual machine with MongoDB on it and the Meteor server. A sample project is already loaded, and you can edit the server and client HTML, JS and CSS files. The resulting app runs in the right pane. Makes playing with Meteor super, super easy.
Node is a relatively new project so there is not widespread IDE support yet. However there actually is an online IDE called Cloud9 IDE that you might want to check out. Otherwise I suggest you use a local editor such as vim or emacs.
See how-to-debug-node-js-applications for more information on debugging.
GitHub's programmable text editor Atom has node.js integration.
Try Microsoft's https://code.visualstudio.com. Its awesome.
Facebook's Nuclide has a number of IDE-esque features including dynamic typechecking (via flow), in-code linking, auto complete, etc. It's based on GitHub's Atom so you can pick and choose Nuclide packages as you see fit.
WebStorm 3.0 does all this stuff.
It auto completes in a smart way, includes nice debugging and unit testing. It also include number of inspection for javascript, which is also pleasant.
Now RC version is available, but JetBrains assure that it'll be released soon.
I use IntelliJ's Webstorm: http://www.jetbrains.com/webstorm for it's advance auto-complete features and Node.js/NodeUnit templates.

Resources