Sencha Touch and Internet Explorer 10 - extjs

Sencha Touch is brilliant but IE cannot open websites which is developed using Sencha Touch.
I am not interested in using IE, but my opinion is not important since many others may use it.
Since Microsoft announces HTML-5 Support and I have worked with the great tools to make native apps even using HTML-5 and Java so it is obvious that IE 10 must support HTML5. But it seems sencha touch websites cannot be explored by IE 10 too, since I cannot explore Kitchen Sink (on sencha.com) using IE 10 however I can easily do this using Chrome.
Further to this problem, I want to make an web-site for a small company, is it right to use Sencha Touch to develop it or jQuery is a better choice? (I yearn for you say Sencha Touch :) since I am completely unfamiliar with jQuery)
I appreciate the time you are spending.
Sincerely yours,
PEYMAN MORTAZAVI

Call me old-fashioned, but when I see the Kitchen Sink demo failing in IE10, I blame the developers behind the demo, and not those behind the browser. IE10 is an oustanding browser that is worthy of our attention, and not merely for the fact that it will be used by millions upon millions immediately following its official release, but also because it's a great browser from a technical perspective.
If you're going to build a solution for your clients, you should avoid libraries that wish to distance themselves from supporting half of the market, meaning they don't actively develop with IE in mind. The excuses for not supporting IE simply aren't there today as your code won't require that much variance to work properly in the latest version of Microsoft's browser.
Use jQuery, jQuery Mobile, or jQuery UI. You can get some great UI from and with all of them, and you'll find excellent support in all major browsers.

I am porting my Sencha Touch 2.0 app to 2.2.1 in order to support IE10.
So I have first-hand knowledge in the effort.
all Sencha websites / apps build previous to 2.2.0 and by developers targeting webkit browsers will never work on ie10 reliably because a bunch of stuff had to be done to the core of Sencha Touch in order for ie10 to work. Everyone has to go back and do what I'm doing... line by line of CSS and a few JS changes as well (esp if you do canvas stuff)
Running an old "kitchen sink" which was not properly architected for 2.2.1 and tested on IE10 is not going to work either. I do not know how much time Sencha folks spent testing kitchen sink on IE10 ...but one would assume...
I think what has thrown Sencha for a loop is developers don't have time or money to build business apps twice - once on ExtJS for laptop/desktop and 2nd time on Sencha Touch 2 for tablet touch/gesture support. This is the strange land of SDK's because the tablet real-estate so closely resembles that of a small laptop -- ergo as long as your UX people a really good, they can architect an experience that crosses over from tablet to laptop pretty good by building one code base in Sencha Touch.
But oooops - Sencha figured we'd all be building to small phones - a market dominated by webkit browsers. If that were the case, then this argument of IE market share would not hold - we all know Windows Phone numbers. It's hard to fudge/spin that. What's causing the rub is the tablet-laptop screen size being so similar.
IMHO...

IE10 in the Windows 8 preview is the same version that is slated for the tablets and mobile devices they have been producing. Saying it is for desktop support is not a very useful statement. The problem is this is what Microsoft is about to spend a very large amount of money marketing and pushing to businesses. This is not a case of a tablet/phone library not supporting a desktop, but of a tablet/phone library not supporting a target platform that is about to have billions of dollars of marketing spent to deploy it.

Any mention of Internet explorer seems to evoke deep emotion in everyone! However IE is a fact of life.
I would suggest that you use Google Chrome Frame. The first time IE visitors arrive at your site you can alert the user to install Google Chrome Frame and redirect them. It's a bit messy for the first visit but after that it should be seamless.
As I understand it Google Chrome Frame no longer requires admin rights to install.
Obviously people should just install Chrome in the first place but nobody's perfect.

Sencha Touch 2 is not designed to work on IE10. If desktop support is important for you, then you should use Ext JS 4.

Chrome and Safari use WebKit which Sencha Touch requires in order to function.
Internet Explorer might be able to display Sencha Touch apps in the future:
http://www.appleinsider.com/articles/08/11/06/microsofts_ballmer_considers_using_webkit_within_ie.html
http://www.favbrowser.com/opera-firefox-and-internet-explorer-to-implement-webkit-prefixes/
But who knows?

I had spent a month getting a project to work with Sencha Touch, but had to choose a more accessable framework. The goals of the project were to work across as many browsers (desktop and mobile) as possible. The webkit preference for Sencha, while admirable in how it is achieved, made it unusable for my needs.
I am glad they changed their licensing since I tried it. That was the second stumbling point for our project.

Related

OnsenUI vs Ionic Framework

I want to start developing a mobile hybrid app using angularjs, css3 and html5. Was searching for a framework and found these two. Both are looking very nice however I was not able to get a good comparison between both of them. Can anyone please list down pros and cons for both.
A comparison between them in terms of scalable, out of the box components, speed and compatibility with Angular and devices targeted will be very helpful
One year has passed since both frameworks were released. Onsen UI is currently in stable 1.2 version while Ionic is in the last release candidate state.
I have worked with both of them so let me give you a short overview, I also wrote a much larger blog article, you'll find it at the end of this answer.
I won't go into much details about the core framework; if you have a previous AngularJS knowledge you will easily transition to Ionic or Onsen UI.
Both frameworks are built around AngularJS and they heavily depend on directives, you can also easily build your custom directives. Onsen UI also features a jQuery support (unnecessary if you ask me).
Both frameworks support Android 4+, iOS 6+ (some features are available on Android 2.3), Onsen UI also officially supports Firefox OS and desktop browsers. Ionic don't have an official desktop support, but it will still work (it will not be pretty, imagine ).
Ionic currently don't support Windows Mobile platform (it will have it in the future); Onsen UI support is currently in development (since November 2014).
Both frameworks support some kind of splitview feature so they can be used for table development.
Both frameworks have a distinctive beautiful looking flat UI. I prefer Ionic over Onsen UI look and feel, but this is a matter of personal taste. Both default themes look iOS 7 like.
Onsen UI supports native looking themes for Android and iOS. Ionic framework uses the same theme for all platforms, but some features will depend on the platform (for example tab look and feel)
Both frameworks have a working theme builder.
Ionic supports SASS while Onsen UI is built around Topcoat CSS library.
Both frameworks have a large widget support (directives)
Onsen UI has a better documentation. It is separated at two different locations. First one is “Components” where you can see different directives and each one has a working example you can use and replicate. Second part is a “Guide” where you are guided through the application creation process.
Ionic has a disorganized documentation (heavily fragmented). It lacks a real “getting started” tutorial, even if you have previous AngularJS experience. It shows you pieces, but not how to connect them correctly.
On the other hand Ionic has much larger community so you will easily find problem solutions.
Ionic framework has a great official forum + large StackOverflow community. At the same time, Onsen UI uses only StackOverflow as a help center (I would call this a fail).
Onsen UI has an HTML5 IDE called MONACA IDE (great tool), Ionic IDE is currently in production; you can participate in beta test.
Ionic has a growing 3rd party plugin community (for example date picker); I couldn't find any 3rd party Onsen UI plugin
I wrote a much larger article covering Ionic / Onsen UI changes, find it here.
Since both frameworks are pretty new and not very popular (yet!), I don't think anybody has taken the time to do an extensive comparison between the two. I don't even think the final set of out of the box components is determined by the developers themselves yet, active development is still going on.
As for compatibility, hybrid apps run in the native browsers of the devices where they are installed on. Both frameworks need CSS3, so old phones will never be supported by either of the frameworks.
The OnsenUI-tag here on StackOverflow is the only support OnsenUI offers (currently), and at the moment of writing there are 0 questions/answers. Ionic has a very active forum on their website + some questions/answers here on SO.
I think having an active community backing up a framework will eventually lead to a better framework. Therefore I'd go for Ionic. Personally, I find Ionic's standard-design more appealing as well, but you should judge that for yourself.
Ionic
more lean to Angular style like routes,controllers and template and it's structure is kind of complicated in first hand.
command like "ionic start myApp tabs" still don't available in onsenUI
Material Design like "Cardboard" are available
OnsenUI
simpler structure, easy to start
couple with Monaca IDE, some of features are only available only if you use Monaca. otherwise you have to create things by yourself.
supported ios8 design recently
Ionic has a more mature feature and CSS component set and out of the box. Injectable delegate services, representing the UI elements (directives) gives you more control over UI/UX interactions. The development community is (currently) very active and it's gaining traction.
I cannot properly speak to speed/performance between the two but know both are optimized for mobile.
As I develop more, I will report back with comparisons. Good luck.
Just started using ionic after some time native development. Must seriously say it has some great cli features! For example you can start your project from a gist in my opinion this is nice to have for poc's
Havent been able to test everything but what i've seen really impresses me!
It's well documented in there own way, active community and it keeps getting better.
Just wanted to share my thoughts for what it's worth
Im working in Ionic Framework during 1 year with a real project, i have created a game with Ionic, its very special because hybrid app is not best choice if you want create game. When you develop a game you need performance !
However if you develop simple game with few animation, its good.
Here is my game in playstore, its a memory game "Memory Party" :
https://play.google.com/store/apps/details?id=fr.jhaccoun
Why Ionic is a good choice :
very very very good documentation (tutorial, forum, article,...)
stable (ionic 1), you can find many apps in store
Easy to develop (ionic come with many tools to help the developer, you can develop and test in live in your phone without deploy thanks live reload
Many cordova modules are available
you don't need mobile skills, just angularjs, html, css...
Ionic provide beautiful components and you can custom the components if you like
I found Ionic the best for some reasons, like their community support and the documentation. I am still evaluating the onsen from a long time but still havent found the one unique thing that will drift me towards it compared to Ionic

tumblr mobile not working with prettify.js

So I wired in Prettify.js and Prettify.css into my new Tumblr blog. It works out great in chrome, IE, and Firefox but I was astonished when I went to my Android Phone and suddenly the code inside ... looks like an atrocity.
I was about to go digging but figured before I spend hours trying to solve a problem someone else already fixed I would see if my ol' Stack Buddies have anything to say on the matter.
aquamoogle.tumblr.com
Any solutions will be greatly appreciated and if none are posted I'll likely toss up a solution by the end of the weekend.
Clarification EDIT This is viewing the post through the Tumblr Android application. I don't think it has anything to do with phone version but because someone is bound to ask it's a Motorola Droid Bionic running Android 2.3.4
Alrighty, since nobody came along with this one I'll throw the answer out there. The Tumblr application after decompiling it off the APK does not use a standard web frame. This means that javascript execution is not embedded in the view for the mobile application.
Sucks I know... Another possible solution would be to use straight CSS for formatting but alas this doesn't even work in the mobile version as the CSS sheets are overridden with mobile style sheets for more compact formatting.
So this one goes down as "unsolvable" due to the mobile application not operating within the same boundaries as the web driven blog does.
If someone does by chance have a solution to this that will work however, I would be interested in hearing it but at this time I don't have a valid solution. But, it's good to know.

Is it better to start with Sencha Touch 2, or Sencha Touch 1.x?

I've recently built a demo application using PhoneGap, and I chose to try JQuery Mobile as a UI framework. It was... okay. I'd like to try out Sencha Touch now and see if I like it better.
As of now (mid-December '11), it appears that Sencha Touch 2 has been released as a preview, and has significant improvements in performance (which is a key ingredient for me). However, it's missing some features, and doesn't seem to have many demos / tutorials yet on the Sencha website.
In the valuable opinion of SO's seasoned Sencha Touch developers (and by seasoned, at least in the mobile realm, I mean that you've at least played with it for a week or so), would you recommend I start with Sencha Touch 2 from the get-go, or go through the motions of learning 1.x and just upgrading to 2 later on? What are the advantages / disadvantages of using "preview" versions of this and other frameworks, particularly when working within the ever-shifting world of mobile development?
Thanks for any input!
I created a few proof of concepts for my company in jQuery Mobile. While I personally love jQuery, jQM was not ready for a production environment if you wanted a slick, responsive, bug-free user interface. That was in the v1.0RC3 days. It is a stable release at the moment but I still feel the same way, hopefully future versions will address the shortcomings. I made this decision after running a number of benchmarks, a focus group and a pilot program(6 ppl). All said and done, I decided to evaluate ST.
Sencha Touch has the best UI, IMO. However, there is a strong learning curve with this framework. API documentation is complete and while there are tutorials lurking here and there, there is NOTHING that spells out the ST framework from start to finish. I often find myself searching in the depths for a brief glimpse of an explanation with no resolve. I find it frustrating that the Sencha team hasn't addressed this. I hear a lot about brushing up on EXTjs first as that is the placenta of ST's birth. (yes, I just said that) Truth is, if one has to learn another framework to utilize the one you are interested in, just to understand how it works, its a major fail. I'm not learning EXTjs just for ST...
For Sencha Touch, you should be versed in MVC, object oriented programming, debugging web technology and have a solid understanding of JavaScript.
Now the real question is 1.x or 2.x. Situations like this are highly debatable. Resource and cost analysis should be done on both versions to show how your development time increases if you were to port 1.x code to 2.x and any other overhead associated with learning curves, etc. So instead of give you my biased opinion, I'll just tell you what I did for my company (7k + employees).
My project needed to be at a certain milestone by a certain date and I certainly can't deploy something that isn't in production status. Simply meaning I cannot use a beta for anything substantial. As ST2.x is in the PR3 stage, it isn't ready for production. Not to mention a lot of key features of ST are currently missing from the ST 2.x release, though will be added in future releases as they progress to production stable.
I developed my app in 1.x because it was stable, has numerous examples and documentation available so I could produce an app TODAY. If I started in ST2, I wouldn't be able to finish the app. The API is not frozen, lacking full documentation, sparse examples, limited community resources and missing features. I can't wait for ST2(going to be great!) but can't risk my project over it.
Bottom line... if you need an app today, go with ST1, if you can hold off for another few months and have the time to make updates to your app as the ST2 API is frozen and features are added back in, then I would go that route. Cheers.
I would suggest learning Sencha Touch 2. I wasted a lot time working with Sencha Touch 1. Just before giving up - decided to try Sencha 2 - devel release 4. Much much easier to work with and learn.
Good luck
JRS

ExtJS vs Sencha Touch for RIA

I'm trying to bootstrap a Rich Internet Application, which will have a complex canvas (think: Visio), and should work according to these principles:
it would run in a browser
it would run on a tablet (Android or other)
supports complex drawing, drag & drop etc.
runs on its own (eg. without a server component) happily
can leverage conventional & touch UI as needed - user can draw a line with a mouse or using the touchscreen
I was thinking about using a Javascript framework and found ExtJS, whose demos I quite like and checking the API docs it seems it supports all the low level GUI stuff I need (think: Ext.draw package, especially Ext.draw.Sprite).
But then I also found Sencha Touch, which seems to be leveraging the same technology stack, only for the mobile. However the API is much more limited (no Ext.draw available), and only runs in Webkit browsers, as far as I can understand. But it supports touch-based interaction.
Is there a way to create an app that works in a browser but can also be "compiled" to native mobile/tablet code (eg. with PhoneGap)? Or is this just a dream and these two cannot mix at the moment?
PS. checked the other similar questions but they seem to be quite out of date.
Short answer: it is currently just a dream I'm afraid.
Long answer: Sencha Touch and ExtJS share a lot of underlying logic and are somewhat similar, but I would say you'd only be able to reuse 50% of your code, at most, when trying to port one to the other.
jQuery Mobile and jQuery UI share similar issues at the moment - they have both created nice mobile UI frameworks, which only support webkit browsers, meaning there's no easy way of developing rich apps that run in desktops and on mobile platforms. Hopefully these projects will merge their mobile and desktop frameworks at some point in the future to allow us to create apps that can be deployed across both without a massive rewrite. There will always be differences in the way mouse and touch screen events work but I wish that was the only thing we had to consider.
Extjs is for desktop application, while Sencha touch & touch charts are for mobile, eg. tablet or Android.
#JunkMyFunk is right, you'd only be able to reuse 50% of your code at most.
The definition of class is not the same between Extjs and sencha touch which means currently you can't mix Extjs with sencha touch, the namespace will conflict if you do that way.

Most widely used Mobile app development technology

In mobile development world, which is the best programming language/technology that we can use so that almost the same code that will run on all versions. I know it is little bit of a broad question and the most probable answer is Java. If I want to provide support for maximum number of devices(android, Iphone and other high end classes only), how many different code bases I should have?
Thanks,
GL
[...] that we can use so that almost the same code that will run on
all versions [...]
All modern mobile smartphones / devices support HTML 5 / CSS / Javascript.
PhoneGap Augments these basic tools with the rest of the functionality you'd need.
Projects like jQuery Mobile are gaining a lot of traction as well.
I'd start there.
I wouldn't say it's "The Most Widely Used" technology... at least not yet... but I have a hard time believing anyone wouldn't agree things are going that direction.
UPDATE: For anyone who hasn't seen PhoneGap before - this (free) product will take your HTML / CSS / JS, and package them up inside a native application (which includes some shims to startup your app, and augment it with access to camera / files / gyro / etc from javascript). Your app works offline, and can be deployed through all of the available standard app stores.
If it's a web app, then you can develop using a highly adaptive layout, HTML 5, CSS, and the JS library of your choice, and you'll be fine.
If you are running native apps, you're pretty much stuck: Java for Android, Objective-C for iOS.
Regarding HTML5/CSS3, even if it is possible to reuse 90% of codebase (mostly non-rendering JS), there are significant differences when it comes to graphical presentations. Even, if you think that because Androids and Iphones use Webkit, so they should have roughly similar capabilities, they are quite apart.
Just to give a few examples: CSS3 3D transforms are mostly not supported on Android phones (Android 2.3), Audio tag implementation varies between Android and Iphone (Androids do not use buffering and streaming, while Iphones do).
And just do not get me started on how Androids lie about dimensions and aspect ratio. It is a bloody mess.
We have not tested latest Windows mobile phones, but until IE10 is shipped, support for HTML5 in windows world is abysmal.
To conclude, currently, there is no technology, "that we can use so that almost the same code that will run on all versions." HTML5 is 'almost' there, but will take perhaps a few years for Androids to catch up and Webkit to get the required speed and functionality to be able to compete head-on with native apps.

Resources