I have to develop an app with Windows, MacOS and Chrome OS support – at the very least. Chrome OS is an important requirement because this app is intended to be used in schools – where Chromebooks are a kind of a big deal. As you may know, Chrome apps are being deprecated on Windows, MacOS and Linux, so that leaves us with two choices for web-based "native" apps: Electron and NW.js.
Since I'm developing this app from the ground up, and not converting any existing web code, I feel inclined to choose Electron for this particular project. However, I can't find any reliable / complete / concrete answers regarding if Electron may be used for developing Chrome OS apps. I found this release note which states:
Electron now provides builds for Linux on ARMv7. It runs on popular platforms like Chromebook and Raspberry Pi 2.
However, officially, Electron only supports Windows, MacOS and Linux, which leads me to think that this Chromebook support might be somewhat limited, which, in turn, leads me to think that NW.js might be a better choice for this project.
My concrete questions are: Has anybody successfully created a Chrome OS app with Electron? Are any of these apps easily installable by regular users? (12 year-old kids) Or do they require some kind of Linux-like hack to get them running?
You must use Chrome Apps for software on Chrome OS. Also, Google has not announced any intention to remove Chrome Apps from Chrome OS. You will need NW.js or Electron on Windows, Linux, and Mac.
However, this does not require completely separate codebases. NW.js has native support for Chrome Apps, and there is a partial polyfill for Electron.
There are some differences you need to account for, such as the lack of autoupdating and installation from the Chrome Web Store for NW.js/Electron.
Well now Google allows users to install Linux applications. So if you want to target Chrome OS you can start by building for Linux which you can do with Electron.
You can use Ionic, they can run on ios, android and electron; mentioned in this docs page.
So, basically you can use the electron to make the Windows, MacOS version (and Linux if you want) , and then use the Ionic to make the android app as chromebooks supports android apps.
I have never used Ionic before, I have used electron, but from reading a little bit of the docs, it looks like a good option to release across multiple platforms, more than you want.
Related
I want to know whether google is planning to support any other platforms other than iOS and Android for Cross platform development using Flutter.
Like React native windows for React native does flutter have framework that would support windows phone development?
Nobody can answer this question except Google, however it seems very unlikely that anyone would put effort into Windows Phone when even Microsoft are not:
Of course we'll continue to support the platform.. bug fixes, security updates, etc. But building new features/hw aren't the focus. 😟
https://twitter.com/joebelfiore/status/917071399541391360
As for:
support any other platforms other than iOS and Android for Cross platform development using Flutter
This is not officially supported, but lots of people in the community are interested in running Flutter on desktop and have been playing around with it. Maybe in future it'll cover more platforms even if they're not official or from Google.
https://github.com/google/flutter-desktop-embedding
A job we are doing right now has windows phone compatibility as a requirement.
My suggestion is to look into exporting Flutter to Web and then making a windows app which is just a full screen webview and loading the flutter web app in the app's internal webview.
I am new to mobile development, working on my first app for both iOS and Android. I was under the impression that I can develop it through Ionic once (on my Linux system) and deploy it for both, but recently found out I need to develop on a Mac for iOS?
Like this guy said to someone equally unimpressed:
https://stackoverflow.com/a/38117802/8494414
Also stated here:
https://stackoverflow.com/a/40779188/8494414
My question is, at which stage do I need a Mac? Can I do all the development on my system and then just deploy with a Mac? Did I need to do something special from the get-go to support iOS? I am already rather deep in the process, but should I be considering a different framework?
I do find it strange that this knowledge doesn't seem very explicitly available.
Thank you for any help!
If you want to do a build for the iOS platform you will always need a macOS based operating system with xcode installed at some point. You can do all the coding on your linux machine as the hybrid part will be the same for all platforms. But if you want to test or deploy the iOS version of your app you will need either a mac or you will have to use some third party service where you can upload your sourcecode and you get a ready for install .ipa back. Ionic itself offers a service like that: see Ionic Package Service
As joshmorony said on his blog:
In order to compile an iOS application using Cordova, you need the iOS
SDK, which is only possible if you have a Mac and XCode. This is not
an issue for Android because the Android SDK can be installed on both
Windows and Mac. If you are not using a Mac, you simply can not create
iOS builds.
you can also use some virtual machines but they can be illegal and I don't recommend them
I don't know can I ask a simple answer here?
Can Windows 10 IOT support electron app build with nodejs and javascript/typescript?
Somewhere I read it support Linux ARM, but how about Windows 10 IOT?
I'm fairly sure the answer is no.
For Windows 10 IoT you'll need to develop apps using the Universal Windows Platform SDK.
I'll delete this answer if we find out otherwise.
I have been looking for an answer to this question for some time and mostly all explorations have led me to pages where the "fairly sure answer is no" is the usual response due to reasons blah blah.
Strangely enough, according to this post (and quite an old one):
Compiling Electron Apps for the Windows Store
https://www.microsoft.com/developerblog/2016/05/08/compiling-electron-apps-for-the-windows-store/
You can pack your electron app and use it on Windows IoT.
Will do some packing and update if any of this works.
You can run ARM apps on Windows IOT that are not UWP applications (sort of, but probably not supported yet):
Make a web app and do this:
https://carlos.mendible.com/2017/03/21/step-by-step-running-aspnet-core-on-raspberry-pi/
Then, make a UWP app with a web view to the app you just made:
https://learn.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/web-view
I'm a longtime Windows desktop developer (25+ years) who has been doing native Blackberry 10 mobile development for 18 months. For my next app I have to hit as many mobile platforms as possible and have decided on Cordova (NOT PhoneGap) for the job.
I have successfully built and deployed a test app on Blackberry 10 and Android with the Cordova CLI. Now I need to get the workflow for iOS figured out before I start actually coding the real app so I can test on all platforms as I go along. I have OSX Mavericks running in a VMware VM from Windows 8.1 and have Xcode installed on OSX. I'm only slightly knowledgeable in OSX, but I know that I must use it to build for iOS. What I'm trying to figure out is how much duplication of effort I have to expend within OSX to build for iOS. I suspect the challenges would be the same if I was using a physical Mac to package and test for iOS so hopefully there are others out there who have figured out the cleanest way to do this.
Can I use Cordova on Windows to create the iOS project and source or do I have to create a duplicate project platform using Cordova on the Mac and keep duplicate source code there too? If I can do all that from Windows, do I just copy it over to Mavericks after every Cordova build and use Xcode to package and run it in an emulator? If anyone out there is running OSX in a VM for this like I am, is it possible to map a host path into OSX so I don't have to recreate the platform source at all after I build it from Windows? I'm assuming there is not way to automate the whole thing from Windows Cordova like there is for the Android and Blackberry platforms, am I wrong?
My desire is to do ALL coding in Windows and only use Maverick for the final bundling for iOS. After 25 years of pro development I'm not used to being a complete newbie and I'm not crazy about it. LOL
Learn Mac OS X. I know you feel out of sorts in this environment, but honestly -- it's not that difficult. In fact, I made the transition from Windows 7 rather than upgrading to Windows 8, and I was comfortable very quickly. (Far more comfortable than I am with a Windows 8 laptop others in my family use.)
Remember that Mac OS X is a Unix underneath (BSD). This means that if you are in any way familiar with Linux or Unix but are put off by working with the Mac GUI, you can almost always fall back to the terminal. (In my not-so-humble opinion, Mac OS X makes for a very nice *nix machine!)
Your VM should be able to share drives across the network, just like it would if it were a real machine (Apple supports SMB reasonably well). This way both environments could point to the same Cordova project without having to worry about copies. (You can copy the projects around, but it would be easier, in my opinion, just to share across the network. Less risk of accidentally doing something stupid.)
The only things that require a Mac are:
Creation of certificates / provisioning profiles (and there are ways around this on Windows, but it is not supported)
Submission to the app store
Remote debugging using Safari (You can use Weinre to come close, but it doesn't support breakpoints and such)
Local compilation of your code (and there are other toolchains available that do this on other OSes, but again, not supported by Cordova).
Running the app in a simulator
The above means that you can develop your app on Windows and only run to the VM for compilation / submission. With the advent of the Phonegap Developer app (http://app.phonegap.com), you can skip the (re)build step during development and testing as well (as long as you use only core plugins).
Note: I know you indicate you are using Cordova and NOT PhoneGap. What's nice is that, ATM, the Phonegap Developer App works just fine with Cordova projects (whereas PG Build often requires config.xml to be moved and plugins to be handled differently). It does require the PhoneGap CLI to be installed. As long as you are using core plugins, it definitely saves time by eliminating the rebuild steps.
The Cordova project can be created on any platform -- but I know there was a time when adding the iOS platform to your project (cordova platform add ios) would check that all pre-reqs were met, but I'm not sure if that is still the case. It can't hurt to try. But if it is required, use a network share and add the platform on the VM. Keep in mind that the platforms should be thought of as build artifacts -- your app code should live in the root www, which doesn't depend on the added platforms.
Do not rely on the iOS Simulator to tell you anything about how the app works or performs on a real device. The simulator has all the power of your desktop (processor speed, memory, etc.) and lacks many on-device features as well. I suspect the visual performance of the iOS Simulator will be horrid, since it will rely on the GPU as routed through the VM. (Frankly, it's not always great on a real Mac.) You really, really, really must have a real device to test on. (Again, the PhoneGap Developer App can ease the pain of repeat deployments for testing.)
We have a couple of Blackberry apps and are now trying to prepare them for BB 10. These apps are made in Java via Eclipse and/or RIM IDE tool. However, when I went to https://developer.blackberry.com/platforms/bb10, I saw that there is no even a mention of Java SDK. Take a look at image below.
So how am I supposed to update Blackberry app to BB 10? Any ideas?
You have to decide what to do with your applications. If you have an Android version, one option is to repackage the APK to a BAR using the provided tool set so that it will run under the Android player. There are many good Android applications that provide an acceptable or even good user experience this way. Another option is to port your BlackBerry Java application to Android (if there is no existing Android version) then package the Android version for the player. This would also allow you to market the application to Android users. The final option is to port the BlackBerry Java applications to the Native SDK, Cascades, HTML5 or Adobe Air.
The best way forward depends on how tightly integrated into the BB10 system you want to be. While there are facilities provided in BB10 that are the equivalents to those is BlackBerry OS, there have been significant changes required to enable the improvements everyone wants to see on the new platform. If you see BB10 as a significant part of your future business then porting to Cascades would be very worth while.