It was quite some time silent around here. We was really busy with upgrading our frameworks, build processes and deployment tools to ExtJs 5. Awesome experience, much cleaner code, faster UI, and tons more.
But what i want to talk about is already about ExtJs 6 today. My impressions from the SenchaCon 2015 Roadshow in Karlsruhe, where i’m just arrived home from.
Sencha already announced, that they merged ExtJs and SenchaTouch into a single framework. Something the folks are waiting for a long time now. But from a developer and UX/UI understanding hard to solve. If you ever tried to solve running a single application on different platforms with different behaviour, you may know what i’m talking about.
Sencha seems to go a similar way like Apple’s iOS universal strategy. Having shared source for models and controllers and platform dependent views. First hand a good idea. But Apple uses this for similar platform approaces and they are just two of it: phone and tablet. Sencha has to manage this for a third one: desktops. Other may also think about TV’s as fourth option or even the new wearables like the Apple Watch, Sports bands, …
In my opinion, Sencha doesn’t solve this quite well. They moved old ExtJs views out in a new folder structure called classic now. It is intended to also solve issues with lagecy browsers for a short to mid term solution until everybody will support Html5 well. The duplicated view structure under modern represents the views which was the old SenchaTouch part (or better the new Html5 stuff). They are fully done with Html5/Css3 features.
Sencha is now supporting a way to build hybrid Apps in a form that you can decide which build configuration using the classic toolkit (ExtJs view style) and which one uses the modern toolkit (SenchaTouch view style). The core is mostly based on ExtJs5. I guess touch events are now much better supported at least. Migration may be a bigger pain for SenchaTouch apps as it looks for ExtJs5 apps i guess.
Have a closer look to the build and file structure shows, that hybrid means, you can only build two platform variants. Other ways has to be solved by responsiveConfig and platform configs. No chance to really build different app behaviour for desktop, tablet and phone (only two of them can be really different). That you can already solve in an SenchaCmd5 workspace yourself with ExtJs5 and SenchaTouch 2.3. One of the speakers said: „you have to cleanly decouple your code anyways for that“. So if you already wisley decided to decouple your businiss logik into a separate package(s), you can easily provide this already today. For sure, ExtJs6 will also bring other new cool stuff you won’t miss.
Some other cool things was shown there too. There will be a nice plugin for JetBrains IDE’s like PHPStorm, WebIDE, … to manage ExtJs sources right. Nice code completion, SenchaCmd intergration, …. other IDE’s should follow.
Fashion is a from scratch sass-compiler written in pure javascript by Sencha. It replaces the necessity of ruby, which seems to be a big pain on Windows (i don’t know, never developed on such a thingy). Because it is pure javascript, it will compile in a phantomjs backend and also bring up instant updates in development. So you can change a value in scss files and within seconds the css will be replaced in your open page magically. Really nice for theme building. BUT it will add another proprietary piece to the puzzle. For sure you can see and check the javascript source within SenchaCmd, but if they put it out as opensource isn’t clear yet. Also how compatible it will stay to default sass. Compass is also no part of it. They add some funcitonality to it, but not all. The coolest thing is, that you can now easily add functionality yourself written in javascript instead ruby. At least you should know this language better. Keep in mind that the instant update of css is only working, if you develop and use the webserver started internally by SenchaCmd. It is really damn fast. If you need slicing it also not need a second run for slicing anymore.
They also provide a new standalone inspector. This one works well together with all browsers. Instead having it as another browser-slowing-down-plugin it is a standalone application communicating with opened browsers. It nicely presents what you have on your page, live changes/updates possible. They even think about updating your source based on changes made in it or hopefully get out a changelog at least. So you can play around and after some trial and error you will know what changes you have to make in your code.
Nevertheless it looks again as a cool improvement. Worth to spend some time on and migrate as fast as possible. The beta should be available from today on. So go ahead playing and have fun.