A Productive Javascript/Phonegap Development Environment - javascript

I've been building Android apps for a few years now, and I've arrived to this working setup:
Intellij Idea IDE write/debug
Genymotion "Emulator"
Physical Device (only when needed)
Git
Ant (probably should move to Gradle) Release/Debug builds
And now I'm looking to form an equally productive environment for Javascript (Phonegap, etc), for Android/iOS/Win8Phone.
I want to avoid the "nice-text-editor-only" solution (I believe a full IDE is superior in productivity terms).
Any suggestions?

Try Brackets editor http://brackets.io/. It's a nice editor to code the web. Phonegap plugins also available for this editor. Just take a look at this editor. Make sure to download the version of Brackets with Phonegap Plugin compatibility.

For the Cordova/Phonegap app I developed, I used cloud9. In my workflow, I would first get things working in my browser, then occasionally do builds with Adobe's Phonegap Build service to work out the kinks on my mobile devices.
The nice thing about c9 is you'll have a public URL for the website you're developing so you can preview it in your device's browser, which is typically closer to the environment you'll get with Phonegap.
The weinre debugging tool, although slow if you're running it through http://debug.phonegap.com/, can really help track down problems when debugging on mobile devices.

Related

What is the Difference between Xamarin and Telerik Platform

This is going to be quite a hectic question and im hoping that you can all Bear with me.
Im having difficulty fully understanding some things about mobile App development.
So my Main question is : What is the difference between Telerik Platform and Xamarin ? Dose it just depending on what you are more comestible with, Like if you are a c# developer and know the .Net framwork, Then use Xamarin or is it alot more complex than that ? As i know that Telerik uses Javascript, so is it more of an open dev based mobile app ?
Which is better for the future of mobile development as i want to move in the right direction.
As an Extra: Has anyone heard of Dart ? i found out about it last week and haven't had much time to Read up on it, but it looks like a web based solution from google.
Dartlang
In Xamarin you can build native applications for Android and iOS system.
It is also possible to write them for Windows Phone.
Xamarin uses C# language.
Apps are created natively using Xamarin wrappers.
There are two options for creating apps in Xamarin:
1) Xamarin.Forms is best for:
Data entry apps
Prototypes and proofs-of-concept
Apps that require little platform-specific functionality
Apps where code sharing is more important than custom UI
2) Xamarin.iOS & Xamarin.Android are best for:
Apps that require specialized interactions
Apps with highly polished design
Apps that use many platform-specific APIs
Apps where custom UI is more important than code sharing
Telerik Platform is good for web developers who want to create mobile apps:
Here you can write html and javascript.
Remember also that your apps on iOS and Android will be displayed in WebView (browser). Only Windows Phone apps can be written in html and javascript natively.
Hope this will help.
Please also see this (I asked about Xamarin and Apache Cordova):
http://www.codeproject.com/Forums/13695/Mobile.aspx
All of the mentioned framework do the same thing in different ways, its totally depends upon your skillset and interest which framework you find easy to understand or find interesting.
Each of those have their market in which you can grow. below are some links may help you.
http://www.telerik.com/campaigns/build-mobile-apps-with-dotnet
https://forums.xamarin.com/discussion/13686/the-future-benefits-of-xamarin-over-other-options-and-mobile-apps-replacing-websites
Dart is a modern open source programming language that allows to write concise code
built-in support for async/await, Future (Promise), Stream (Observable), ...
Supports lots of platforms
Server with the Dart-VM (Windows, OSX, Linux)
in the browser after to-JS transpilation
Android and iOS by Flutter https://flutter.io/
embedded systems by Dartino https://dartino.org/
Dart can be transpiled to JavaScript (to-TypeScript is work in progress)
extensive high-quality standard libraries
dart:html library that for browser abstraction that makes most polyfills redundant
shipped with lots of tools
package manager
analyzer/linter
debugger and profiling tools
test runner
Dartium development browser
...
IDE support
easy integration using the IDE services the analyzer provides
Atom plugin
WebStorm/IntelliJ plugin
...

Protecting Apps with Apache Cordova MS VS Extension on App Stores

Just have a question about apps that are uploaded on the Windows Store, Andriod Store, and Apple Store. I have never built an App before for any of the three stores, but the Multi Hybrid Extension for Visual Studio seems to be a great start to cover all three Platforms.
How do I protect my code for apps that are uploaded to the three stores? The core development for the Apache Cordova extension is done in HTML5 and Javascript. On a regular HTML / Javascript website, the end user can simply right click and View Source of the page and see all the code I've written.
My question is, how is this protected for apps that are uploaded to the app store? Will someone be able to reverse engineer my application and get the code and simply re-sell it?
Thank you all for your time
You want to, develop once, deploy many. Then, you’ll want to use HTML5 to do it.
You can use Apache Cordova directly, but you’ll want to use a service like Telerik AppBuilder, Adobe Phonegap or Intel XDK.
Regarding your question, your best bet is to use a good JavaScript source code obfuscation service to protect your sources before publishing. There is no such thing as a 100% full proof solution when it comes to JavaScript obfuscation, but professional tools such as JScrambler can take you a long way. At least JScrambler I know that it supports Mobile and HTML5, which is good because they make sure the resulting code is compliant.
There are other tools, even free ones. But be careful though, there are tons of other tools that do obfuscation, encoding/packing or minfication that seem to provide protection, but are reversed in a few minutes. So, unless you really know how to tell the difference, I recommend that you rely on a professional service.

PhoneGap Build Service "Build in HTML5, CSS, JavaScript" claim

The PhoneGap build service says you can build an app in HTML5, CSS, and JavaScript. However, The phonegap.js is not available for each device (latest download PhoneGap 1.8.1 does not have one for Bada or iOS). So I think the build service is meant to save us from creating the shells for each environment, but I fail to see how the PhoneGap API is supposed to work.
I thought the idea too was that you could build one code base for each environment. I know there are quirks, but why is there a separate phonegap.js file for Android, WebOS, etc.?
The lack of documentation has me confused.
In my experience, there are separate files for each but when using phonegap build if you want to include a universal file for the build there is a way, put <script src="phonegap.js"></script> in your index.html file and don't include any js files, you actually don't even need the phonegap.js file, when I did this and ran it through phonegap build it attached the appropriate .js file to the appropriate build and I suddenly could use the phonegap API's for all the builds I was testing
The phonegap framework is made for specific Mobile Operating Systems. The reason why there are so many is because each framework is for each type of operating system. Like for games, most only work for Windows and some for mac, but very little support for Linux based systems. Phonegap creates APIs for using the camera and other functionalities of the operating system.
Phonegap has their tutorials to show you how to install for iOS and Android. I have not developed for newer systems.
Many people use jQueryMobile to develop with PhoneGap to create a nice simple mobile application.
I hope this helps.
Whilst there are different phonegap.js files for each device, they are very similar (I found this out because I accidentally copied it from an iOS project to the Android one a few times). The differences are important but they do pretty-much work as-is.
The main reason they differ is that they just expose the underlying functionality provided by the Phonegap device-native code (Java, OC etc), which IS device-dependent. The Phonegap devs just take care of hiding that from you. All of the phonegap.js files expose the same functionality, they just connect sometimes to different places 'on the inside'. Hence the differences.
Most source 'you or I' would write for a Phonegap app is device-independent as a result of the above.

Developing a cross-platform self-contained HTML application

I am thinking of building an application, kind of like TiddlyWiki in the sense that everything is self-contained in an HTML file, or at least in a bundle where a user won't have to install anything. It works on just about any browser, and on mobile phones (Android and iPhone), and in some browsers (e.g. Firefox), manages to save to the local filesystem without a plugin (albeit, it launches many security warnings, but there are other solutions for that). Other browsers happen to use a Java plugin to bypass this restriction.
Are there any technologies that exist that make this possible? HTML5's web storage sounds like it would be almost perfect, except that the data would be tied to the browser.
Any assistance would be appreciated (even if that just means editting / retagging the question to get more folks looking).
Whats about the fileapi: http://caniuse.com/#search=fileapi
I am just adding a relevant comment with this but not exactly an answer...
When you are saying that you want to develop application which contains everything... Then I would like to add about Titanium, PhoneGap, and others (Corona)...
This softwares provides JavaScript base which will be running on all the mobiles (if mobile applications), desktops (if desktop applications) and so on.... But Titanium (as i am working on it) works on the SDK of all the other languages for development...
Now TiddlyWiki, what i have understood from the link is that it is creating a web application or something like that which will work on all the other mobile devices. But this is NOT Good always, Since some application needs to be a NATIVE environment (which is supported by Titanium). Native applications will be much more faster than any other developed applications..

Desktop application development with Javascript and HTML

I am looking for Titanium Appcelerator alternatives for Desktop application development with HTML and JavaScript. I want to convert a web app to a desktop application. Hence, there will be a lot of server interaction. Appcelerator was a good choice, but it looks like the company is no longer interested in the Desktop SDK. Also, ajax request from Appcelerator does not retain cookies.
I read that Adobe Air can be used for desktop app development, but I don't want to use flash.
How good is XULRunner? Will it allow features like Growl notificaiton and creating tray icons?
Will I be able to develop applications using mostly Javascript and HTML in Qt?
I started looking into Titanium for desktop dev. I liked the concept but not the implementation. I then stumbled upon chromiumembedded and have been mostly very happy with it. It's basically a web browser control based on chromium.
http://code.google.com/p/chromiumembedded/
It's written in C++ so you can do all the low level OS stuff you want(Growl, tray icons, local file access, com ports, etc) in your container app, and then all the application logic and gui in html/javascript. It allows you to intercept any http request to either serve local resources or perform some custom action. For example, a request to http://localapp.com/SetTrayIconState?state=active could be intercepted by the container and then call the C++ function to update the tray icon.
It also allows you to create functions that can be called directly from javascript.
My biggest challenge has been debuging. It's very difficult to debug javascript directly in CEF. There's no support for anything like Firebug that I am aware of.
Appjs (appjs.org) looks very promising.
You could also check Bowline which is another alternative: http://bowlineapp.com/.
Although it's not officially intended for general-purpose use, a number of people have had success using brackets-shell for HTML/JS desktop apps. It embeds Chromium (CEF) and adds APIs for menu bar management and file IO. It also embeds an instance of Node.js so you get access to all its APIs for launching processes, etc. It's MIT-licensed and available for Mac & Win, with a Linux version currently making rapid progress.
As I mentioned, it's not officially a general-purpose app shell, but someone wrote a detailed blog post about how to customize brackets-shell for your own uses.
I notice that the other answer about Titanum says CEF is hard to debug. I'm not sure if that's true in Titanium, but in brackets-shell it's easy to debug JS – you just open http://localhost:9234/ to load a full instance of the Chrome Developer Tools (including breakpoints, profiling, etc.).
TideSDK is a continuation of the old Titanium desktop http://www.tidesdk.org/

Categories

Resources