This is a bit of an open-ended question, since I am just starting out on the project.
Problem: I have clients who cannot install web-browsers on their machines, and are stuck with IE6. The app we are selling them is a web-based app using a lot of javascript and jquery.
Solution: Implement a windows application that has a web-browser control based on webkit (since the regular webbrowser control is not going to support javascript and jquery), which loads the app.
I started doing research, and I found 2 controls:
https://code.google.com/p/open-webkit-sharp/
and
http://webkitdotnet.sourceforge.net/
I started off with the second one, and tried the sample app they built, only to discover that the version of webkit they used is really old and doesn't run our app right.
So my current solution is to compile webkit myself and include the newer version in the control and see how that works out.
Since this is a time-sensitive issue I thought I'd also ask for the experience of StackOverflow at the same time I am going down my route, to see if there is a simpler solution, or if there are any libraries or pre-built controls I could use that I missed in my search?
Thank you for any help!
Related
I'm acquiring an existing application written in ExtJS 4.1.2. It's a very large code base. The 4.1.2 application was built without CMD -- the sources are added directly to index.html.
Without having much of an ExtJS background, I have the following two questions:
1) Does it make sense to upgrade to 5.x first and then go from 5.x to 6.x? Or is it safe to go directly from 4.1.2 to 6.x?
2) Should a new project be created and manually copied over, or can I just update the sources, in theory, to point to the new extjs lib, and back peddle fixing all client code that's broken or no longer compatible?
I haven't followed the history of ExtJS much, so I'm not sure if upgrading two major revisions is even feasible with this framework.
What's the best approach if CMD isn't being used in the existing app?
I am using Ext.js in production, and we are currently doing a similar upgrade. We are on 4.1.1. Here is what we have done.
1) Does it make sense to upgrade to 5.x first and then go from 5.x to 6.x? Or is it safe to go directly from 4.1.2 to 6.x?
We chose to upgrade to 5.x then 6.x. The reasoning behind this is because 6.x was not considered stable(at the time), and we would have less bugs to deal with. The biggest jump is going to be moving from 4.1.2 to 5.x. Moving to 6 from 5 is easy. 5.x included new features and changes to the API. 6.x is mostly behind the scenes technical debt that merged sencha touch and desktop, which is signficant because now you can have one app for mobile and desktop. You could probably move directly to 6 since it is much more stable than when it was in beta.
2) Should a new project be created and manually copied over, or can I just update the sources, in theory, to point to the new extjs lib, and back peddle fixing all client code that's broken or no longer compatible?
We chose to go with the second one. We replaced the entire extjs lib, and tested all client code then fixed it. It has gone pretty smoothly. We did have the benefit of using sencha architect. Sencha architect keeps the javascript code is json meta data files. When you want to upgrade, it can do automated checks. We also had a lot of code outside of of architect projects that is similar to what you have, and there have only been a couple problems. It was a 50-50 split.
One way to assess the feasibility of the upgrade is how closely intertwined the code is with Ext.Js. We had a developer write a mini-framework that extended core Ext classes and overrode a lot of the core methods for stores and views. It also had a convoluted plugin framework that touched the Ext.Js internals. Overriding those methods made the code very fragile during the upgrade. Probably 60% of our effort went into fixing that framework. There were other pages that was closely intertwined with Ext.Js that took a lot of effort to migrate as well. Code that was much simpler, for example it just created a widget with some listeners, did not need many changes.
As I understand it, Sencha CMD is the official packager, minifier, and dependency manager for the framework. When you upgrade with Sencha CMD, it just replaces the main library, and it doesn't do much for fixing the actual javascript. Sencha architect is where you get a lot of bang for the buck in terms of time saving.
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.
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.
Iam developing a blackberry webworks application which is supposed to work on OS 5.0 and upwards.The app does use a fair bit of jquerymobile. The HTML's had already been developed and it was working well in the ripple emulator. But when I deployed it in an OS5.0 device, the load times were terrible. It took nearly a minute to load a page with some 3 images and a couple of tables (nothing was fetched from the server , all files were in the packaged application in the device). I even tried the pages on the native browser directly and its rendering capabilities were poor (css / jquery mobile etc came out horribly. Javascript was enabled in the device).
What I would like to know is, is native application/very basic html only way to get a decent experience on OS5.0? Is using fair bit of a javascript even feasible on OS5.0 HTML apps?
I even tried using a browserfield2 with caching but that too didnt make much difference.
Just wanted to see if things are indeed this bad in OS5.0 or if I missed something out. Any help/feedback will be greatly appreciated..
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..