Phonegap hybrid plugins testing - android

I'm starting a new big project in Cordova Phonegap and I have some doubts with using plugins.
Using my computer with Windows to build android's app and simulating it I'm hundred percent sure that it's working, but how can I know if the plugins in the iOS platform will work as well?
I've readed about PhoneGap Build™, but I'm not sure if it will bring versatility to the debugging process due to the need to 'deploy' the project to cloud whenever I want to debug a native apk version.
There's a tool that I can debug the development progress for both platforms (iOS and Android) in Windows, or whenever I want to test iOS platform I'll need to build an app in MacOS?
Thanks in advance

It depends what aspects of the iOS plugins you want to test: native or hybrid (JS)?
I.e. do you want to debug the Javascript running in the hybrid WebView - that of your own application and/or the Javascript layer of the plugins?
Or do you want to debug the native layer of the plugins (Android => Java, iOS => Objective-C/Swift)?
Bear in mind that any sort of deployment to an iOS device requires membership of Apple's iOS Developer program in order to be able to sign the app with valid credentials.
With regard to Phonegap Build, while it's possible to build an iOS app with Phonegap Build and receive the compiled .ipa (iOS equivalent to .apk), it's not easy to then directly connect an iOS device to a Windows 10 PC and connect a remote debugger to attach to the iOS Webview that your Cordova app is running in. I read that jsconsole offers one such free solution, but I've not tried it (there's a blog post about it, though).
One solution I have used is not free: Telerik Appbuilder is a paid product. It's Windows classic IDE allows you to build, deploy and debug the hybrid Webview of Cordova apps on an iOS device from a Window 10 PC using their cloud build service.
However, if you want to debug the native elements of iOS plugins, at this point your are going to need XCode (Apple's official IDE for developing iOS/OSX apps) and therefore the OSX operating system. But before you go out and buy a $1000 Macbook Pro, I would suggest one alternative that I use to develop both native and hybrid iOS apps on a Windows 10 PC: although it's not officially sanctioned by Apple, it's possible to run OSX inside a virtual machine using virtualisation software such as VMWare Workstation or Virtual Box - also known as a "Hackintosh". This allows you to use a Windows 10 host machine to run the OSX operating system and gain access to all of its features. By connecting an iOS device to a Windows 10 PC running an OSX, you can connect XCode to the device and use it's interactive debugger to debug the native elements of Cordova plugins. Also, you can use the Safari Browser's dev tools to connect to the iOS Webview and debug the JS layer.
I have used this method to develop and deploy both native and hybrid iOS apps to the App Store using a Windows 10 PC. However, bear in mind that a virtualised OS runs slower than a native one: I would recommend running the OSX image off an SSD with a high-performance PC: i7/32+Gb RAM/high-end GPU.

Related

React Native create a complete hybrid app on Windows with react-native cli

Is it possible to create a React Native app with react-native cli on a Windows PC and configure it for both Android and iOS on the Windows PC and then just build it on a macOS device for iOS? Do I need XCode for any of the iOS configuration or is it possible to do everything on a windows PC? I don't want to create any custom native libraries, only download some react-native ones.
I do not want to use expo because the apps built with expo are too big. But I don't have access to a mac device so I would like to be able to do everything on windows beside compilation and then just rent a cloud mac to compile for iOS.
If you are planning to distribute your application to the AppStore and/or test your app on an iPhone and/or iOS Emulator, you must use Xcode, which means you must have a Mac or a virtual machine that runs MAC OS.
Most of the configuration is pretty much done on your windows machine except some settings and app icon, splash screen, all these things require you to set it up via XCode. Hopefully it suffices as an answer.

Can I use Flutter to develop IOS in Android Studio?

Question 1. Can I develop for IOS using flutter only in Android Studio without Xcode on Max OS?
Question 2. If 'Question 1' is possible, is there a limit to the functionality?
I do not think it will work on windows OS.
When the operating system is Mac OS, is it possible to develop both IOS and Android?
Yes, You can develop Flutter apps (both iOS and android) on Android studio which is available for Windows, Linux and macOS, but to distribute iOS apps (created using Flutter), you would need Xcode (which is only available for macOS).
However, if you are on macOS, you can develop and distribute Flutter apps for both iOS and Android.
You can configure any IDE for your Flutter development (see this https://flutter.io/using-ide/) and to release/distribute apps for each platform, you can fall back to Xcode and Android studio.
See more info here: https://flutter.io/setup-macos/
You can develop the app completely on Windows or any other operating system. All you need is an IDE or editor (Android Studio or VS Code).
But to compile/release the app for iOS or for tests on the iPhone simulator, you will need a Mac with XCode installed.
The good thing is that the code you've written in Dart will (normally) work on iOS without any changes, so you can just develop on Windows (and test your app on Android), then ask a friend who owns a Mac if you can borrow it for a day to compile it for iOS.
As mentioned by other users, it's more than possible to completely build your app for use on all platforms with Windows, however Apple has opted to restrict iOS compilation to Apple devices only - you'll have to use a VM, a Remote Computer or a physical Apple computer if you'd like to compile your app for iOS

Is there anyway to run iOS or Android code on a desktop application?

I would like to use an iOS or Android SDK (e.g. DJI Drone SDK), but instead of running it on a mobile device to connect to the hardware, is there a way to build a desktop application (e.g. Electron based) and be able to run their SDK to interact with the hardware?
On Windows you can use Android Studio for run apps to Android .APK
Download it now https://developer.android.com/studio/index.html
Don't forget you need to know Java language to using Android Studio you can learn watch some tutorials on Youtube
On Mac you need to use Xcode
You can't run IOS Mac apps on Windows you can it with Virtual Machine like Vmware.
It's Xcode for download
https://developer.apple.com/xcode/
Don't forget you need to know Swift language to make an app on Mac for Mac and IOS
It is called DJI Assistant 2 but you still need your controller:
https://developer.dji.com/mobile-sdk/documentation/application-development-workflow/workflow-testing.html

Debugging a PhoneGap application

I am new to PhoneGap development and had just picked with the most basic approaches of it.
How can we debug an application developed using PhoneGap. Debugging the application built on phonegap over the browser is easy as we can see the browser console. But things change a lot when the same application is build using phonegap and packaged in the APK file.
I tried some Android Command Line emulator apps, but was not successful to see the logs.
While developing the android application I had used log.v and in phonegap I am using console.log.
How can I see the logs I am making in the application. Is there any way to get the logs for the application built by Phonegap.?
Debugging phonegap is nothing but debugging JS. we had a tough time doing so. but Weinre was very helpful for our (partially) purpose. just install weinre and have the code injected to your device index.html. now you can get what is happening through the device console in the webinspector. hope this helps you...
If you are starting with phonegap you should read this link:
http://cordova.apache.org/docs/en/3.5.0/guide_next_index.md.html#Next%20Steps
It include a lot of useful information about phonegap programming, debugging, etc.
Debugging
Debugging Cordova requires some setup. Unlike a desktop application,
you can't simply open dev tools on your mobile device and start
debugging, luckily there are some great alternatives. Safari Remote
Debugging
The first option is Safari Remote Debugging. This works only on OSX
and only with iOS 6 (and higher). It uses Safari to connect to your
device (or the simulator) and will connect the browser's dev tools to
the Cordova application. You get what you expect from dev tools - DOM
inspection/manipulation, a JavaScript debugger, network inspection,
the console, and more. For more details, see this excellent blog post:
http://moduscreate.com/enable-remote-web-inspector-in-ios-6/
Chrome Remote Debugging
Virtually the same as the Safari version, this works with Android only
but can be used from any desktop operating system. It requires a
minimum of Android 4.4 (KitKat), minimum API level of 19, and Chrome
30+ (on the desktop). Once connected, you get the same Chrome Dev
Tools experience for your mobile applications as you do with your
desktop applications. Even better, the Chrome Dev Tools have a mirror
option that shows your app running on the mobile device. This is more
than just a view - you can scroll and click from dev tools and it
updates on the mobile device. More details on Chrome Remote Debugging
may be found here:
https://developers.google.com/chrome/mobile/docs/debugging
It is possible to use Chrome Dev Tools to inspect iOS apps, through a
WebKit proxy: https://github.com/google/ios-webkit-debug-proxy/
Ripple
Ripple is a desktop based emulator for Cordova projects. Essentially
it lets you run a Cordova application in your desktop application and
fake various Cordova features. For example, it lets you simulate the
accelerometer to test shake events. It fakes the camera API by letting
you select a picture from your hard drive. Ripple lets you focus more
on your custom code rather than worrying about Cordova plugins. You
can find out more about Ripple here:
http://ripple.incubator.apache.org/
Weinre
Weinre creates a local server that can host a remote debug client for
your Cordova applications. After you've installed and started it up,
you copy a line of code into your Cordova application and then restart
it. You can then open a dev tool panel on your desktop to work with
the application. Weinre is not quite as fancy as Chrome and Safari
Remote debugging but has the benefit of working with a much greater
range of operating systems and platforms. More information may be
found here: http://people.apache.org/~pmuellr/weinre/docs/latest/
Other Options
BlackBerry 10 supports debugging as well: Documentation
You can debug using Firefox App Manager as well, see this blog post and this MDN article.
For more examples and explanation of the above debugging tips, see:
http://developer.telerik.com/featured/a-concise-guide-to-remote-debugging-on-ios-android-and-windows-phone/
In Android you can debug your app in eclipse logcat where all javascript and other errors will be shown in console.
But for ios you need to install phonegap console plugin to see errors. install below plugin from url.
https://github.com/apache/cordova-plugin-console
Hope this helps..
Thanks

Is it possible to develop IOS application without a Mac via Intel XDK/Phonegap?

I am planning to build an application for both Android and iOS, but from what I've heard, using Phonegap framework it's not possible to develop and deploy an iOS application only using Windows.
Is this true? Will I need a Mac for deployment? Any suggestions will help me proceed.
Regards
YES, It is possible to develop and test app for iOS using Intel XDK on Windows. However you still need a Mac when you are ready to submit app to Apple AppStore. But you can do development, create certificate and test on iOS device without a Mac.

Categories

Resources